diff options
author | michael-grunder <michael.grunder@gmail.com> | 2020-10-17 18:46:21 -0700 |
---|---|---|
committer | michael-grunder <michael.grunder@gmail.com> | 2020-10-17 19:08:05 -0700 |
commit | b9b9f446feca0dda2148b5e3d541ff5e87627a31 (patch) | |
tree | f8bf29ed7f7d233e51f47ca5c08a095292040364 /hiredis.c | |
parent | acc917548dcfd91e5d56387ed58b5f408cdb810a (diff) |
Fix handling of NIL invalidation messages.
When CLIENT TRACKING is enabled, Redis will send an invalidation message
with a NIL payload to all tracking clients after a FLUSHDB is executed.
We didn't account for REDIS_REPLY_PUSH being a valid parent object to a
NIL payload, and were failing an assertion.
Additionally this commit adds a regression test for the logic.
Diffstat (limited to 'hiredis.c')
-rw-r--r-- | hiredis.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -257,7 +257,8 @@ static void *createNilObject(const redisReadTask *task) { parent = task->parent->obj; assert(parent->type == REDIS_REPLY_ARRAY || parent->type == REDIS_REPLY_MAP || - parent->type == REDIS_REPLY_SET); + parent->type == REDIS_REPLY_SET || + parent->type == REDIS_REPLY_PUSH); parent->element[task->idx] = r; } return r; |