From 6dbf098bc70f995c56118dc2022bdf0c1ba21449 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 21 Jan 2025 15:25:36 -0400 Subject: [PATCH] MT#55283 safeguard against incorrect usage If keyspace notifications are not configured at all, bail with an error when there is an attempt to add a new keyspace or remove one. We get a segfault otherwise. Closes #1902 Change-Id: Ie47cf5f7762792aabe38476739f0dcf9927787ce --- daemon/cli.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/daemon/cli.c b/daemon/cli.c index 5b1df4093..95c5cf2e4 100644 --- a/daemon/cli.c +++ b/daemon/cli.c @@ -1150,6 +1150,11 @@ static void cli_incoming_ksadd(str *instr, struct cli_writer *cw, const cli_hand unsigned long uint_keyspace_db; char *endptr; + if (!rtpe_redis_notify) { + cw->cw_printf(cw, "Keyspace notification feature has not been configured.\n"); + return; + } + if (instr->len == 0) { cw->cw_printf(cw, "More parameters required.\n"); return; @@ -1180,6 +1185,11 @@ static void cli_incoming_ksrm(str *instr, struct cli_writer *cw, const cli_handl unsigned long uint_keyspace_db; char *endptr; + if (!rtpe_redis_notify) { + cw->cw_printf(cw, "Keyspace notification feature has not been configured.\n"); + return; + } + if (instr->len == 0) { cw->cw_printf(cw, "More parameters required.\n"); return; @@ -1214,6 +1224,11 @@ static void cli_incoming_ksrm(str *instr, struct cli_writer *cw, const cli_handl static void cli_incoming_kslist(str *instr, struct cli_writer *cw, const cli_handler_t *handler) { GList *l; + if (!rtpe_redis_notify) { + cw->cw_printf(cw, "Keyspace notification feature has not been configured.\n"); + return; + } + cw->cw_printf(cw, "\nSubscribed-on keyspaces:\n"); rwlock_lock_r(&rtpe_config.keyspaces_lock);