git-svn-id: svn://db.shs.com.ru/pip@783 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2019-04-18 17:37:34 +00:00
parent 6434d824dc
commit 5668dbcccb
2 changed files with 21 additions and 4 deletions

View File

@@ -375,8 +375,14 @@ std::ostream &operator <<(std::ostream & s, const PIByteArray & ba) {
PIByteArray & operator >>(PIByteArray & s, PIByteArray & v) {
if (s.size_s() < 4) {
s.clear();
v.clear();
return s;
}
assert(s.size_s() >= 4);
int sz; s >> sz;
int sz = 0;
s >> sz;
if (sz > s.size_s()) {
piCout << "[PIByteArray] Warning: operator >> wants too much data, discard!";
s.clear();
@@ -384,7 +390,9 @@ PIByteArray & operator >>(PIByteArray & s, PIByteArray & v) {
return s;
}
v.resize(sz);
if (sz > 0) memcpy(v.data(), s.data(), v.size());
s.remove(0, v.size());
if (sz > 0) {
memcpy(v.data(), s.data(), v.size());
s.remove(0, v.size());
}
return s;
}