diff --git a/src/ae.c b/src/ae.c index 98ff7a8ee..6ddccdf7e 100644 --- a/src/ae.c +++ b/src/ae.c @@ -86,6 +86,8 @@ aeEventLoop *aeCreateEventLoop(int setsize) { void aeDeleteEventLoop(aeEventLoop *eventLoop) { aeApiFree(eventLoop); + zfree(eventLoop->events); + zfree(eventLoop->fired); zfree(eventLoop); } diff --git a/src/ae_epoll.c b/src/ae_epoll.c index fc6d9ccdd..cac10d67f 100644 --- a/src/ae_epoll.c +++ b/src/ae_epoll.c @@ -13,7 +13,7 @@ static int aeApiCreate(aeEventLoop *eventLoop) { aeApiState *state = zmalloc(sizeof(aeApiState)); if (!state) return -1; - state->events = zmalloc(sizeof(epoll_event)*eventLoop->setsize); + state->events = zmalloc(sizeof(struct epoll_event)*eventLoop->setsize); if (!state->events) { zfree(state); return -1; diff --git a/src/networking.c b/src/networking.c index f1c6627ce..bc807c4b9 100644 --- a/src/networking.c +++ b/src/networking.c @@ -997,8 +997,12 @@ sds getAllClientsInfoString(void) { listRewind(server.clients,&li); while ((ln = listNext(&li)) != NULL) { + sds cs; + client = listNodeValue(ln); - o = sdscatsds(o,getClientInfoString(client)); + cs = getClientInfoString(client); + o = sdscatsds(o,cs); + sdsfree(cs); o = sdscatlen(o,"\n",1); } return o; diff --git a/src/t_zset.c b/src/t_zset.c index ccf9962a1..99faae858 100644 --- a/src/t_zset.c +++ b/src/t_zset.c @@ -76,6 +76,7 @@ zskiplistNode *zslInsert(zskiplist *zsl, double score, robj *obj) { unsigned int rank[ZSKIPLIST_MAXLEVEL]; int i, level; + redisAssert(!isnan(score)); x = zsl->header; for (i = zsl->level-1; i >= 0; i--) { /* store rank that is crossed to reach the insert position */ diff --git a/src/version.h b/src/version.h index 2a7be04ac..d2ab9dea8 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define REDIS_VERSION "2.9.1" +#define REDIS_VERSION "2.9.2" diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 459784cd6..41c3557dc 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -34,6 +34,7 @@ set ::all_tests { unit/slowlog unit/scripting unit/maxmemory + unit/introspection } # Index to the next test to run in the ::all_tests list. set ::next_test 0 diff --git a/tests/unit/introspection.tcl b/tests/unit/introspection.tcl new file mode 100644 index 000000000..db21cbd05 --- /dev/null +++ b/tests/unit/introspection.tcl @@ -0,0 +1,5 @@ +start_server {tags {"introspection"}} { + test {CLIENT LIST} { + r client list + } {*addr=*:* fd=* idle=* flags=N db=9 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=client*} +}