protobuf-c.c: Cast %lu args to unsigned long int

Resolves an ambiguity that %zu was meant to address, since %zu is not
present on all platforms.

Fixes #357.
This commit is contained in:
Ilya Lipnitskiy 2020-05-13 10:52:13 -07:00
parent 39cd58f5ff
commit e43ed4f01d

View File

@ -2132,11 +2132,13 @@ scan_length_prefixed_data(size_t len, const uint8_t *data,
// Protobuf messages should always be less than 2 GiB in size. // Protobuf messages should always be less than 2 GiB in size.
// We also want to return early here so that hdr_len + val does // We also want to return early here so that hdr_len + val does
// not overflow on 32-bit systems. // not overflow on 32-bit systems.
PROTOBUF_C_UNPACK_ERROR("length prefix of %lu is too large", val); PROTOBUF_C_UNPACK_ERROR("length prefix of %lu is too large",
(unsigned long int)val);
return 0; return 0;
} }
if (hdr_len + val > len) { if (hdr_len + val > len) {
PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %lu", val); PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %lu",
(unsigned long int)val);
return 0; return 0;
} }
return hdr_len + val; return hdr_len + val;