X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_response.c;h=7402975f895761ade88c41864174b074e630c433;hb=3bd95102380ff8d9f2599f0965c09776344d0691;hp=b90d861d9f3f194c5505ecaea82bd5c0d9fc6601;hpb=46f12a5edfa0fc0382a9d25355b15d30f857b138;p=awesomized%2Flibmemcached diff --git a/lib/memcached_response.c b/lib/memcached_response.c index b90d861d..7402975f 100644 --- a/lib/memcached_response.c +++ b/lib/memcached_response.c @@ -42,8 +42,13 @@ memcached_return memcached_response(memcached_st *ptr, buffer_ptr++; total_length++; - WATCHPOINT_ASSERT(total_length < buffer_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;