X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_io.c;h=299d4390659616b21ebd8a4b4b050dc6df7603ca;hb=51ccc3f82cc9bab7cf05e3b07b8a8b319349bde0;hp=38580638d7f197c81d373373954cb299b8aabc98;hpb=b1d5d8be2237f04ccc99939399ebe7efad3f684e;p=m6w6%2Flibmemcached diff --git a/lib/memcached_io.c b/lib/memcached_io.c index 38580638..299d4390 100644 --- a/lib/memcached_io.c +++ b/lib/memcached_io.c @@ -83,6 +83,7 @@ ssize_t memcached_io_read(memcached_st *ptr, unsigned int server_key, while (length) { + uint8_t found_eof= 0; if (!ptr->hosts[server_key].read_buffer_length) { size_t data_read; @@ -118,7 +119,13 @@ ssize_t memcached_io_read(memcached_st *ptr, unsigned int server_key, } else if (data_read) break; - /* If zero, just keep looping */ + /* If zero, just keep looping unless testing, then assert() */ + else + { + WATCHPOINT_ASSERT(0); + found_eof= 1; + break; + } } ptr->hosts[server_key].read_data_length= data_read; @@ -146,6 +153,9 @@ ssize_t memcached_io_read(memcached_st *ptr, unsigned int server_key, ptr->hosts[server_key].read_buffer_length--; buffer_ptr++; } + + if (found_eof) + break; } return (size_t)(buffer_ptr - buffer);