X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_response.c;h=076b0a6fc2bd67a49c3d5d22e50f9405102c0553;hb=82a0e8be2e1002c6f173baf7c2dfdbb281ee2136;hp=b90d861d9f3f194c5505ecaea82bd5c0d9fc6601;hpb=46f12a5edfa0fc0382a9d25355b15d30f857b138;p=m6w6%2Flibmemcached diff --git a/lib/memcached_response.c b/lib/memcached_response.c index b90d861d..076b0a6f 100644 --- a/lib/memcached_response.c +++ b/lib/memcached_response.c @@ -43,7 +43,12 @@ memcached_return memcached_response(memcached_st *ptr, total_length++; WATCHPOINT_ASSERT(total_length < buffer_length); + + if (total_length >= buffer_length) + return MEMCACHED_PROTOCOL_ERROR; } + buffer_ptr++; + *buffer_ptr= 0; if (memcached_server_response_count(ptr, server_key)) memcached_server_response_decrement(ptr, server_key); @@ -51,7 +56,7 @@ memcached_return memcached_response(memcached_st *ptr, switch(buffer[0]) { - case 'V': /* VALUE */ + case 'V': /* VALUE || VERSION */ return MEMCACHED_SUCCESS; case 'O': /* OK */ return MEMCACHED_SUCCESS;