diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index c8ea68dae4..2f3b12e0ed 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -337,7 +337,7 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer mess // grab the last trait versions for this avatar auto& lastProcessedVersions = _processedTraitVersions[avatarID]; - while (traitType != AvatarTraits::NullTrait) { + while (traitType != AvatarTraits::NullTrait && message->getBytesLeftToRead() > 0) { AvatarTraits::TraitVersion packetTraitVersion; message->readPrimitive(&packetTraitVersion); @@ -378,7 +378,7 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer mess } } - if (skipBinaryTrait) { + if (skipBinaryTrait && traitBinarySize > 0) { // we didn't read this trait because it was older or because we didn't have an avatar to process it for message->seek(message->getPosition() + traitBinarySize); }