about summary refs log tree commit diff
path: root/libevent
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2007-05-19 15:33:03 +0000
committerRichard Nyberg <rnyberg@murmeldjur.se>2007-05-19 15:33:03 +0000
commitf26afae21422a8d47af2087d8919c583816e4e19 (patch)
treee9c1952ffa8dc2a6dbc861257c697fed5995f955 /libevent
parent84ae36cd2bd2446e0bbf8d0f543a4e719180caaf (diff)
downloadbtpd-f26afae21422a8d47af2087d8919c583816e4e19.tar.gz
btpd-f26afae21422a8d47af2087d8919c583816e4e19.zip
Fix from libevent r353.
Diffstat (limited to 'libevent')
-rw-r--r--libevent/buffer.c9
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);