* buf_{get,put}memNl never worked. It always wrote the length
big-endian.
* buf_getmemz never worked, because it used the wrong length to find
the terminator.
- if ((p = memchr(BCUR(b), 0, BLEN(b))) == 0) {
+ if ((p = memchr(BCUR(b), 0, BLEFT(b))) == 0) {
buf_break(b);
return (-1);
}
buf_break(b);
return (-1);
}
void *buf_getmem##w(buf *b, size_t *nn) \
{ \
uint##n sz; \
void *buf_getmem##w(buf *b, size_t *nn) \
{ \
uint##n sz; \
- if (buf_getu##n(b, &sz)) return (0); \
+ if (buf_getu##w(b, &sz)) return (0); \
*nn = sz; \
return (buf_get(b, sz)); \
}
*nn = sz; \
return (buf_get(b, sz)); \
}
int buf_putmem##w(buf *b, const void *p, size_t sz) \
{ \
assert(sz <= MASK##W); \
int buf_putmem##w(buf *b, const void *p, size_t sz) \
{ \
assert(sz <= MASK##W); \
- if (buf_putu##n(b, sz) || buf_put(b, p, sz)) \
+ if (buf_putu##w(b, sz) || buf_put(b, p, sz)) \
return (-1); \
return (0); \
}
return (-1); \
return (0); \
}