X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Ffetch.c;h=d76f19b21ac5e175f5d4c1a033b5d6db83c6caf1;hb=a81bddebd55105aefa57af7cc87adbda3d1a022e;hp=7baac5449510a99b763e3fce4f9c0e8c0b7ebc90;hpb=e42302e08fa4d04cb21eaf7493f5f92b11169c03;p=awesomized%2Flibmemcached diff --git a/libmemcached/fetch.c b/libmemcached/fetch.c index 7baac544..d76f19b2 100644 --- a/libmemcached/fetch.c +++ b/libmemcached/fetch.c @@ -26,12 +26,19 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, if (key) { - strncpy(key, result_buffer->key, result_buffer->key_length); + if (result_buffer->key_length > MEMCACHED_MAX_KEY) + { + *error= MEMCACHED_KEY_TOO_BIG; + *value_length= 0; + + return NULL; + } + strncpy(key, result_buffer->item_key, result_buffer->key_length); // For the binary protocol we will cut off the key :( *key_length= result_buffer->key_length; } - if (result_buffer->flags) - *flags= result_buffer->flags; + if (result_buffer->item_flags) + *flags= result_buffer->item_flags; else *flags= 0;