已合并
告警修复 #5576
已合并
王旭创建于 13 天前
1 个文件变更+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;