X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_stats.c;h=3ad236d2108c347f8eb778c52e7211442b8cc222;hb=7e0ffed050b62cc5dcf5d16c148185074bfd7d50;hp=87bc3ace254455680d813f7640ee6cedf2d22ad7;hpb=44a07d208fc11e9133c3d45a86c199dcf56f18a1;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_stats.c b/libmemcached/memcached_stats.c index 87bc3ace..3ad236d2 100644 --- a/libmemcached/memcached_stats.c +++ b/libmemcached/memcached_stats.c @@ -227,6 +227,11 @@ static memcached_return binary_stats_fetch(memcached_st *ptr, if (args != NULL) { int len= strlen(args); + + rc= memcached_validate_key_length(len, true); + unlikely (rc != MEMCACHED_SUCCESS) + return rc; + request.message.header.request.keylen= htons((uint16_t)len); request.message.header.request.bodylen= htonl(len); @@ -335,6 +340,12 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur memcached_return rc; memcached_stat_st *stats; + if (ptr->flags & MEM_USE_UDP) + { + *error= MEMCACHED_NOT_SUPPORTED; + return NULL; + } + if (ptr->call_malloc) stats= (memcached_stat_st *)ptr->call_malloc(ptr, sizeof(memcached_stat_st)*(ptr->number_of_hosts)); else @@ -343,11 +354,6 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur if (!stats) { *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE; - if (ptr->call_free) - ptr->call_free(ptr, stats); - else - free(stats); - return NULL; } memset(stats, 0, sizeof(memcached_stat_st)*(ptr->number_of_hosts));