• NanXiao's avatar
    Update src/redis-benchmark.c · 9eb3a7bc
    NanXiao authored
    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).
    9eb3a7bc
redis-benchmark.c 22.3 KB