X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_io.c;h=299d4390659616b21ebd8a4b4b050dc6df7603ca;hb=336c207e439cff2f6c4ae904c798c7f3f33b3e52;hp=05974ed5c5622637f99fbae2933ac0f488f6946f;hpb=f250762372cfc46d9d92814f1ea223b36b0b2a40;p=m6w6%2Flibmemcached diff --git a/lib/memcached_io.c b/lib/memcached_io.c index 05974ed5..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; @@ -120,7 +121,11 @@ ssize_t memcached_io_read(memcached_st *ptr, unsigned int server_key, break; /* 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; @@ -148,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);