Merge remote-tracking branch 'origin/patches-2.0'

This commit is contained in:
Nick Mathewson 2014-08-29 15:00:33 -04:00
commit 9d6acdc551
2 changed files with 8 additions and 0 deletions

View File

@ -2485,9 +2485,11 @@ evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t fd,
/* XXX(nickm) Don't disable this code until we know if /* XXX(nickm) Don't disable this code until we know if
* the WSARecv code above works. */ * the WSARecv code above works. */
void *p = evbuffer_pullup(buffer, howmuch); void *p = evbuffer_pullup(buffer, howmuch);
EVUTIL_ASSERT(p || !howmuch);
n = send(fd, p, howmuch, 0); n = send(fd, p, howmuch, 0);
#else #else
void *p = evbuffer_pullup(buffer, howmuch); void *p = evbuffer_pullup(buffer, howmuch);
EVUTIL_ASSERT(p || !howmuch);
n = write(fd, p, howmuch); n = write(fd, p, howmuch);
#endif #endif
#ifdef USE_SENDFILE #ifdef USE_SENDFILE

View File

@ -207,6 +207,8 @@ decode_tag_internal(ev_uint32_t *ptag, struct evbuffer *evbuf, int dodrain)
*/ */
data = evbuffer_pullup( data = evbuffer_pullup(
evbuf, len < sizeof(number) + 1 ? len : sizeof(number) + 1); evbuf, len < sizeof(number) + 1 ? len : sizeof(number) + 1);
if (!data)
return (-1);
while (count++ < len) { while (count++ < len) {
ev_uint8_t lower = *data++; ev_uint8_t lower = *data++;
@ -320,6 +322,8 @@ do { \
\ \
/* XXX(niels): faster? */ \ /* XXX(niels): faster? */ \
data = evbuffer_pullup(evbuf, offset + 1) + offset; \ data = evbuffer_pullup(evbuf, offset + 1) + offset; \
if (!data) \
return (-1); \
\ \
nibbles = ((data[0] & 0xf0) >> 4) + 1; \ nibbles = ((data[0] & 0xf0) >> 4) + 1; \
if (nibbles > maxnibbles || (nibbles >> 1) + 1 > len) \ if (nibbles > maxnibbles || (nibbles >> 1) + 1 > len) \
@ -327,6 +331,8 @@ do { \
len = (nibbles >> 1) + 1; \ len = (nibbles >> 1) + 1; \
\ \
data = evbuffer_pullup(evbuf, offset + len) + offset; \ data = evbuffer_pullup(evbuf, offset + len) + offset; \
if (!data) \
return (-1); \
\ \
while (nibbles > 0) { \ while (nibbles > 0) { \
number <<= 4; \ number <<= 4; \