From 7f5b2948ccda7a0f671676f3a96654dce8077caf Mon Sep 17 00:00:00 2001
From: Nir Soffer <nirsof@gmail.com>
Date: Thu, 9 Jun 2011 14:41:57 +0300
Subject: [PATCH 4/4] Fix race codition when checking for the special "end of buffer" ptr

Signed-off-by: Nir Soffer <nirsof@gmail.com>
---
 buffer.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/buffer.c b/buffer.c
index 76f4aaf..eb02784 100644
--- a/buffer.c
+++ b/buffer.c
@@ -1352,7 +1352,7 @@ evbuffer_search_eol(struct evbuffer *buffer,
 	int ok = 0;
 
 	/* Avoid locking in trivial edge cases */
-	if (start && start->pos >= buffer->total_len) {
+	if (start && start->_internal.chain == NULL) {
 		it.pos = -1;
 		if (eol_len_out)
 			*eol_len_out = extra_drain;
@@ -2481,7 +2481,7 @@ evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len,
 	ev_ssize_t len_so_far = 0;
 
     /* Avoid locking in trivial edge cases */
-    if (start_at && start_at->pos >= buffer->total_len)
+    if (start_at && start_at->_internal.chain == NULL)
         return 0;
 
 	EVBUFFER_LOCK(buffer);
-- 
1.7.3.5

