已合并
告警修复 #5576
王旭创建于 13 天前
告警修复 #5576
已合并
共 1 个文件变更+6-4
Mwifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_p2p/wifi_p2p_dns_sd_service_response.cpp+6-4
| @@ -86,9 +86,10 @@ bool WifiP2pDnsSdServiceResponse::FetchDnsName(std::istringstream &istream, std: | |||
| 86 | if (t > (istream.str().size() - static_cast<unsigned char>(istream.tellg()))) { | 86 | if (t > (istream.str().size() - static_cast<unsigned char>(istream.tellg()))) { |
| 87 | return false; | 87 | return false; |
| 88 | } | 88 | } |
| 89 | - std::unique_ptr<char[]> ptr = std::make_unique<char[]>(t); | 89 | + std::unique_ptr<char[]> ptr = std::make_unique<char[]>(t + 1); |
| 90 | istream.read(ptr.get(), t); | 90 | istream.read(ptr.get(), t); |
| 91 | - dnsName.append(ptr.get(), 0, t); | 91 | + ptr[t] = '\0'; |
| 92 | + dnsName.append(ptr.get(), static_cast<std::string::size_type>(istream.gcount())); | ||
| 92 | dnsName.append("."); | 93 | dnsName.append("."); |
| 93 | } | 94 | } |
| 94 | t = istream.get(); | 95 | t = istream.get(); |
| @@ -138,9 +139,10 @@ bool WifiP2pDnsSdServiceResponse::ParseData() | |||
| 138 | if (!istream.eof() && istream.get() == ';') { | 139 | if (!istream.eof() && istream.get() == ';') { |
| 139 | std::string svrName(""); | 140 | std::string svrName(""); |
| 140 | unsigned char svrNameLength = static_cast<unsigned char>(istream.get()); | 141 | unsigned char svrNameLength = static_cast<unsigned char>(istream.get()); |
| 141 | - std::unique_ptr<char[]> ptr = std::make_unique<char[]>(svrNameLength); | 142 | + std::unique_ptr<char[]> ptr = std::make_unique<char[]>(svrNameLength + 1); |
| 142 | istream.read(ptr.get(), svrNameLength); | 143 | istream.read(ptr.get(), svrNameLength); |
| 143 | - svrName.append(ptr.get(), 0, svrNameLength); | 144 | + ptr[svrNameLength] = '\0'; |
| 145 | + svrName.append(ptr.get(), static_cast<std::string::size_type>(istream.gcount())); | ||
| 144 | mSvrName = svrName; | 146 | mSvrName = svrName; |
| 145 | } | 147 | } |
| 146 | return true; | 148 | return true; |