mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 10:37:35 +02:00
AvatarData: Fix avatarDataByteArray max size computation
The previous size calculation did not take the presence of the hand controller section into account. This could sometimes result in a buffer overrun of the network buffer as identified in a debug build. https://highfidelity.atlassian.net/browse/BUGZ-526
This commit is contained in:
parent
2b90d841b7
commit
2fa16719cf
1 changed files with 11 additions and 11 deletions
|
@ -302,6 +302,15 @@ namespace AvatarDataPacket {
|
||||||
const size_t AVATAR_LOCAL_POSITION_SIZE = 12;
|
const size_t AVATAR_LOCAL_POSITION_SIZE = 12;
|
||||||
static_assert(sizeof(AvatarLocalPosition) == AVATAR_LOCAL_POSITION_SIZE, "AvatarDataPacket::AvatarLocalPosition size doesn't match.");
|
static_assert(sizeof(AvatarLocalPosition) == AVATAR_LOCAL_POSITION_SIZE, "AvatarDataPacket::AvatarLocalPosition size doesn't match.");
|
||||||
|
|
||||||
|
PACKED_BEGIN struct HandControllers {
|
||||||
|
SixByteQuat leftHandRotation;
|
||||||
|
SixByteTrans leftHandTranslation;
|
||||||
|
SixByteQuat rightHandRotation;
|
||||||
|
SixByteTrans rightHandTranslation;
|
||||||
|
} PACKED_END;
|
||||||
|
static const size_t HAND_CONTROLLERS_SIZE = 24;
|
||||||
|
static_assert(sizeof(HandControllers) == HAND_CONTROLLERS_SIZE, "AvatarDataPacket::HandControllers size doesn't match.");
|
||||||
|
|
||||||
const size_t MAX_CONSTANT_HEADER_SIZE = HEADER_SIZE +
|
const size_t MAX_CONSTANT_HEADER_SIZE = HEADER_SIZE +
|
||||||
AVATAR_GLOBAL_POSITION_SIZE +
|
AVATAR_GLOBAL_POSITION_SIZE +
|
||||||
AVATAR_BOUNDING_BOX_SIZE +
|
AVATAR_BOUNDING_BOX_SIZE +
|
||||||
|
@ -312,17 +321,8 @@ namespace AvatarDataPacket {
|
||||||
SENSOR_TO_WORLD_SIZE +
|
SENSOR_TO_WORLD_SIZE +
|
||||||
ADDITIONAL_FLAGS_SIZE +
|
ADDITIONAL_FLAGS_SIZE +
|
||||||
PARENT_INFO_SIZE +
|
PARENT_INFO_SIZE +
|
||||||
AVATAR_LOCAL_POSITION_SIZE;
|
AVATAR_LOCAL_POSITION_SIZE +
|
||||||
|
HAND_CONTROLLERS_SIZE;
|
||||||
PACKED_BEGIN struct HandControllers {
|
|
||||||
SixByteQuat leftHandRotation;
|
|
||||||
SixByteTrans leftHandTranslation;
|
|
||||||
SixByteQuat rightHandRotation;
|
|
||||||
SixByteTrans rightHandTranslation;
|
|
||||||
} PACKED_END;
|
|
||||||
static const size_t HAND_CONTROLLERS_SIZE = 24;
|
|
||||||
static_assert(sizeof(HandControllers) == HAND_CONTROLLERS_SIZE, "AvatarDataPacket::HandControllers size doesn't match.");
|
|
||||||
|
|
||||||
|
|
||||||
// variable length structure follows
|
// variable length structure follows
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue