X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FPacket.cc;h=8cd45b53baff4e71a9e5ac5a4e3381ebb59972b4;hp=8862f29bc9ba918ef23fb4608d539681fbb4f90a;hb=e434d5eee9eaf196a5f4bb8c6118b6be3b84a421;hpb=19d555013569026c9e68784ea560cd2e5a21bc5e diff --git a/src/Moof/Packet.cc b/src/Moof/Packet.cc index 8862f29..8cd45b5 100644 --- a/src/Moof/Packet.cc +++ b/src/Moof/Packet.cc @@ -216,14 +216,16 @@ size_t Packet::write(const void* bytes, size_t size) size_t nBytes = std::min(size, mSize - mW); if (!mBuffer || nBytes < size) { - int numPages = 1 + size / PAGE_SIZE; - int newSize = mSize + numPages * PAGE_SIZE; + int nPages = 1 + size / PAGE_SIZE; + int newSize = mSize + nPages * PAGE_SIZE; char* newBuffer = (char*)realloc(mBuffer, newSize); if (newBuffer) { mBuffer = newBuffer; mSize = newSize; + nBytes = size; } + if (!mBuffer) return 0; } memcpy(&mBuffer[mW], bytes, nBytes); mW += nBytes;