diff --git a/src/kits/app/r5_message.cpp b/src/kits/app/r5_message.cpp index 46ced99264..53fd8e7aef 100644 --- a/src/kits/app/r5_message.cpp +++ b/src/kits/app/r5_message.cpp @@ -284,6 +284,8 @@ unflatten_r5_message(uint32 format, BMessage *message, const char *flatBuffer) status_t unflatten_r5_message(uint32 format, BMessage *message, BDataIO *stream) { + message->MakeEmpty(); + TReadHelper reader(stream); BMessage::Private messagePrivate(message); BMessage::message_header *header = messagePrivate.GetMessageHeader(); @@ -360,6 +362,9 @@ unflatten_r5_message(uint32 format, BMessage *message, BDataIO *stream) } else reader(dataSize); + if (dataSize <= 0) + return B_ERROR; + // name uint8 nameLength; reader(nameLength);