From c128190026efd36e8b472d8874f7f54c79ba3e06 Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 11 Sep 2017 11:06:53 +0200 Subject: [PATCH] Streams: fix handleClientsBlockedOnKeys() access to invalid ID. --- src/blocked.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blocked.c b/src/blocked.c index 3cf661aa..519a402c 100644 --- a/src/blocked.c +++ b/src/blocked.c @@ -311,9 +311,12 @@ void handleClientsBlockedOnKeys(void) { (s->last_id.ms == gt->ms && s->last_id.seq > gt->seq)) { - unblockClient(receiver); streamID start = *gt; start.seq++; /* Can't overflow, it's an uint64_t */ + /* Note that after we unblock the client, 'gt' + * is no longer valid, so we must do it after + * we copied the ID into the 'start' variable. */ + unblockClient(receiver); /* Emit the two elements sub-array consisting of * the name of the stream and the data we