diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-08-29 15:00:33 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-08-29 15:00:33 -0400 |
commit | 9d6acdc551ea90afc79f0e2dbb81a350cc7944ee (patch) | |
tree | fce05a0d2273ca34660754552187e72faece1371 /event_tagging.c | |
parent | 9f3a8acfa8a0c2aaa31a85f75d3a81ff99563a87 (diff) | |
parent | 60f8f729d364304abefa25d029260555a5954077 (diff) | |
download | libevent-9d6acdc551ea90afc79f0e2dbb81a350cc7944ee.tar.gz |
Merge remote-tracking branch 'origin/patches-2.0'
Diffstat (limited to 'event_tagging.c')
-rw-r--r-- | event_tagging.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/event_tagging.c b/event_tagging.c index aef33783..64b100b8 100644 --- a/event_tagging.c +++ b/event_tagging.c @@ -207,6 +207,8 @@ decode_tag_internal(ev_uint32_t *ptag, struct evbuffer *evbuf, int dodrain) */ data = evbuffer_pullup( evbuf, len < sizeof(number) + 1 ? len : sizeof(number) + 1); + if (!data) + return (-1); while (count++ < len) { ev_uint8_t lower = *data++; @@ -320,6 +322,8 @@ do { \ \ /* XXX(niels): faster? */ \ data = evbuffer_pullup(evbuf, offset + 1) + offset; \ + if (!data) \ + return (-1); \ \ nibbles = ((data[0] & 0xf0) >> 4) + 1; \ if (nibbles > maxnibbles || (nibbles >> 1) + 1 > len) \ @@ -327,6 +331,8 @@ do { \ len = (nibbles >> 1) + 1; \ \ data = evbuffer_pullup(evbuf, offset + len) + offset; \ + if (!data) \ + return (-1); \ \ while (nibbles > 0) { \ number <<= 4; \ |