diff --git a/src/kits/app/Message.cpp b/src/kits/app/Message.cpp index 7ce543f3c3..62fec0e167 100644 --- a/src/kits/app/Message.cpp +++ b/src/kits/app/Message.cpp @@ -1367,8 +1367,14 @@ BMessage::Unflatten(BDataIO* stream) } result = stream->Read(fData, fHeader->data_size); - if (result != (ssize_t)fHeader->data_size) + if (result != (ssize_t)fHeader->data_size) { + free(fData); + fData = NULL; + free(fFields); + fFields = NULL; + _InitHeader(); return result < 0 ? result : B_BAD_VALUE; + } } }