diff --git a/src/rdb.c b/src/rdb.c index 4097768d..ff9168ec 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -1624,6 +1624,10 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { * we read more data. */ streamID cg_id; sds cgname = rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL); + if (cgname == NULL) { + rdbExitReportCorruptRDB( + "Error reading the consumer group name from Stream"); + } cg_id.ms = rdbLoadLen(rdb,NULL); cg_id.seq = rdbLoadLen(rdb,NULL); streamCG *cgroup = streamCreateCG(s,cgname,sdslen(cgname),&cg_id); @@ -1654,6 +1658,10 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { size_t consumers_num = rdbLoadLen(rdb,NULL); while(consumers_num--) { sds cname = rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL); + if (cname == NULL) { + rdbExitReportCorruptRDB( + "Error reading the consumer name from Stream group"); + } streamConsumer *consumer = streamLookupConsumer(cgroup,cname, 1); sdsfree(cname); diff --git a/src/redis-check-rdb.c b/src/redis-check-rdb.c index 71ac50d0..5cba89a5 100644 --- a/src/redis-check-rdb.c +++ b/src/redis-check-rdb.c @@ -85,7 +85,8 @@ char *rdb_type_string[] = { "set-intset", "zset-ziplist", "hash-ziplist", - "quicklist" + "quicklist", + "stream" }; /* Show a few stats collected into 'rdbstate' */