Otherwise we fail when processing a 64-bit length on a 32-bit platform:
an overlong 64-bit length gets truncated to a possibly-acceptable 32-bit
length in the implicit conversion to `size_t' in the call to `buf_get'.
Using `BENSURE' directly ensures that the comparison gets done with the
correct integer type.
{ \
uint##n sz; \
if (buf_getu##w(b, &sz)) return (0); \
{ \
uint##n sz; \
if (buf_getu##w(b, &sz)) return (0); \
+ if (BENSURE(b, sz)) return (0); \
*nn = sz; \
return (buf_get(b, sz)); \
}
*nn = sz; \
return (buf_get(b, sz)); \
}