Fix rz_buf_uleb128 when parse 0xffffffffffffffffUL (#3579)

This commit is contained in:
billow 2023-06-16 09:27:42 +08:00 committed by GitHub
parent d9a5cf3d28
commit c1f92b3349
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1360,6 +1360,10 @@ RZ_API st64 rz_buf_uleb128(RZ_NONNULL RzBuffer *buffer, RZ_NONNULL ut64 *value)
used++;
slice = byte & 0x7f;
if ((shift >= 63 && slice != 0) || ((slice << shift) >> shift) != slice) {
if (shift == 63 && sum == 0x7fffffffffffffffUL && slice == 0x1UL) {
sum = 0xffffffffffffffffUL;
break;
}
// uleb128 too big for ut64
return -1;
}