From: Pieter Noordhuis Date: Thu, 16 Dec 2010 22:35:02 +0000 (+0100) Subject: Fix NULL-termination of variable data in redis-benchmark X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/53f1d81712ff66d0343647af2f15308ea7e89d30 Fix NULL-termination of variable data in redis-benchmark --- diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c index c44b0ae4..5e40c97b 100644 --- a/src/redis-benchmark.c +++ b/src/redis-benchmark.c @@ -195,6 +195,11 @@ static void readHandler(aeEventLoop *el, int fd, void *privdata, int mask) { exit(1); } if (reply != NULL) { + if (reply == (void*)REDIS_REPLY_ERROR) { + fprintf(stderr,"Unexpected error reply, exiting...\n"); + exit(1); + } + if (config.donerequests < config.requests) config.latency[config.donerequests++] = c->latency; clientDone(c); @@ -454,8 +459,9 @@ int main(int argc, char **argv) { c->obuf = sdscatprintf(c->obuf,"*%d\r\n$4\r\nMSET\r\n", 11); { int i; - char *data = zmalloc(config.datasize+2); + char *data = zmalloc(config.datasize+1); memset(data,'x',config.datasize); + data[config.datasize] = '\0'; for (i = 0; i < 10; i++) { c->obuf = sdscatprintf(c->obuf,"$%d\r\n%s\r\n",config.datasize,data); }