summaryrefslogtreecommitdiff
path: root/event_tagging.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-08-29 15:00:33 -0400
committerNick Mathewson <nickm@torproject.org>2014-08-29 15:00:33 -0400
commit9d6acdc551ea90afc79f0e2dbb81a350cc7944ee (patch)
treefce05a0d2273ca34660754552187e72faece1371 /event_tagging.c
parent9f3a8acfa8a0c2aaa31a85f75d3a81ff99563a87 (diff)
parent60f8f729d364304abefa25d029260555a5954077 (diff)
downloadlibevent-9d6acdc551ea90afc79f0e2dbb81a350cc7944ee.tar.gz
Merge remote-tracking branch 'origin/patches-2.0'
Diffstat (limited to 'event_tagging.c')
-rw-r--r--event_tagging.c6
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; \