]> git.saurik.com Git - redis.git/commit - src/redis-benchmark.c
Update src/redis-benchmark.c
authorNanXiao <xn212516@163.com>
Wed, 10 Oct 2012 09:08:43 +0000 (17:08 +0800)
committerNanXiao <xn212516@163.com>
Wed, 10 Oct 2012 09:08:43 +0000 (17:08 +0800)
commit9eb3a7bc6ba041ee8f14427a68087459fc8e66f9
tree7cec96c71840943ca253adb88a2818da03e90837
parent278304cc4d2a52cd22aa82b89991854a6b9b148e
Update src/redis-benchmark.c

The code of current implementation:

if (c->pending == 0) clientDone(c);
In clientDone function, the c's memory has been freed, then the loop will continue: while(c->pending). The memory of c has been freed now, so c->pending is invalid (c is an invalid pointer now), and this will cause memory dump in some platforams(eg: Solaris).

So I think the code should be modified as:
if (c->pending == 0)
{
clientDone(c);
break;
}
and this will not lead to while(c->pending).
src/redis-benchmark.c