diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2007-05-19 15:33:03 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2007-05-19 15:33:03 +0000 |
| commit | f26afae21422a8d47af2087d8919c583816e4e19 (patch) | |
| tree | e9c1952ffa8dc2a6dbc861257c697fed5995f955 /libevent | |
| parent | 84ae36cd2bd2446e0bbf8d0f543a4e719180caaf (diff) | |
| download | btpd-f26afae21422a8d47af2087d8919c583816e4e19.tar.gz btpd-f26afae21422a8d47af2087d8919c583816e4e19.zip | |
Fix from libevent r353.
Diffstat (limited to 'libevent')
| -rw-r--r-- | libevent/buffer.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libevent/buffer.c b/libevent/buffer.c index 77efd0c..53c0bf8 100644 --- a/libevent/buffer.c +++ b/libevent/buffer.c @@ -431,13 +431,12 @@ evbuffer_write(struct evbuffer *buffer, int fd) u_char * evbuffer_find(struct evbuffer *buffer, const u_char *what, size_t len) { - size_t remain = buffer->off; - u_char *search = buffer->buffer; + u_char *search = buffer->buffer, *end = search + buffer->off; u_char *p; - while ((p = memchr(search, *what, remain)) != NULL) { - remain = buffer->off - (size_t)(search - buffer->buffer); - if (remain < len) + while (search < end && + (p = memchr(search, *what, end - search)) != NULL) { + if (p + len > end) break; if (memcmp(p, what, len) == 0) return (p); |