mirror of https://github.com/proxmox/mirror_qemu
bt: avoid unintended sign extension
In the case of a 4-byte length, shifting a value by 24 may cause an unintended sign extension when converting from int to size_t. Use a uint32_t variable instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>master
parent
624533e5a5
commit
e0df8f18f7
|
@ -42,7 +42,7 @@ struct bt_l2cap_sdp_state_s {
|
||||||
|
|
||||||
static ssize_t sdp_datalen(const uint8_t **element, ssize_t *left)
|
static ssize_t sdp_datalen(const uint8_t **element, ssize_t *left)
|
||||||
{
|
{
|
||||||
size_t len = *(*element) ++ & SDP_DSIZE_MASK;
|
uint32_t len = *(*element) ++ & SDP_DSIZE_MASK;
|
||||||
|
|
||||||
if (!*left)
|
if (!*left)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Reference in New Issue