diff options
author | antirez <antirez@gmail.com> | 2012-08-21 15:06:06 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2012-08-21 15:06:06 +0200 |
commit | 51ab89d8998e3f6844f72e020e53200e80fe52f7 (patch) | |
tree | 5b8b447605474347462a96d4e15f6eeea1241b84 | |
parent | 7f095053c6db41249248a6b4366ecd11572c96d0 (diff) |
Max depth of multi-bulk reply moved from 2 to 7.
Hiredis can handle multi bulk replies with a fixed (hardcoded) level of
nesting. This should be changed in the future in order to avoid
hardcoded limits. As a quick fix this commit moves the max nesting from 2
to 7, so that there are no problems when processing replies from the SLOWLOG
command, from Redis Sentinel, or generated by Redis Lua Scripts (that are
allowed to generate replies with any level of nesting).
-rw-r--r-- | hiredis.c | 6 | ||||
-rw-r--r-- | hiredis.h | 2 |
2 files changed, 4 insertions, 4 deletions
@@ -446,10 +446,10 @@ static int processMultiBulkItem(redisReader *r) { long elements; int root = 0; - /* Set error for nested multi bulks with depth > 2 */ - if (r->ridx == 3) { + /* Set error for nested multi bulks with depth > 7 */ + if (r->ridx == 8) { __redisReaderSetError(r,REDIS_ERR_PROTOCOL, - "No support for nested multi bulk replies with depth > 2"); + "No support for nested multi bulk replies with depth > 7"); return REDIS_ERR; } @@ -129,7 +129,7 @@ typedef struct redisReader { size_t len; /* Buffer length */ size_t maxbuf; /* Max length of unused buffer */ - redisReadTask rstack[4]; + redisReadTask rstack[9]; int ridx; /* Index of current read task */ void *reply; /* Temporary reply pointer */ |