From 74959a0f73a44cfe56d5fb95957021c55b0ae214 Mon Sep 17 00:00:00 2001 From: YaacovHazan <31382944+YaacovHazan@users.noreply.github.com> Date: Thu, 20 Apr 2023 09:49:19 +0300 Subject: [PATCH] Misuse of bool in redis (#12077) We currently do not allow the use of bool type in redis project. We didn't catch it in script.c because we included hdr_histogram.h in server.h Removing it (but still having it in some c files) reducing the chance to miss the usage of bool type in the future and catch it in compiling stage. It also removes the dependency on hdr_histogram for every unit that includes server.h --- src/latency.c | 1 + src/module.c | 1 + src/script.c | 2 +- src/server.c | 1 + src/server.h | 3 ++- 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/latency.c b/src/latency.c index a784be88e..3aaf16b5e 100644 --- a/src/latency.c +++ b/src/latency.c @@ -34,6 +34,7 @@ */ #include "server.h" +#include "hdr_histogram.h" /* Dictionary type for latency events. */ int dictStringKeyCompare(dict *d, const void *key1, const void *key2) { diff --git a/src/module.c b/src/module.c index 2197111c2..77256feae 100644 --- a/src/module.c +++ b/src/module.c @@ -58,6 +58,7 @@ #include "monotonic.h" #include "script.h" #include "call_reply.h" +#include "hdr_histogram.h" #include #include #include diff --git a/src/script.c b/src/script.c index 2a7721065..dd0bd3a58 100644 --- a/src/script.c +++ b/src/script.c @@ -130,7 +130,7 @@ uint64_t scriptFlagsToCmdFlags(uint64_t cmd_flags, uint64_t script_flags) { /* Prepare the given run ctx for execution */ int scriptPrepareForRun(scriptRunCtx *run_ctx, client *engine_client, client *caller, const char *funcname, uint64_t script_flags, int ro) { serverAssert(!curr_run_ctx); - bool client_allow_oom = caller->flags & CLIENT_ALLOW_OOM; + int client_allow_oom = !!(caller->flags & CLIENT_ALLOW_OOM); int running_stale = server.masterhost && server.repl_state != REPL_STATE_CONNECTED && diff --git a/src/server.c b/src/server.c index e117b43b3..71a15e2b8 100644 --- a/src/server.c +++ b/src/server.c @@ -36,6 +36,7 @@ #include "atomicvar.h" #include "mt19937-64.h" #include "functions.h" +#include "hdr_histogram.h" #include "syscheck.h" #include diff --git a/src/server.h b/src/server.h index b286b6803..222044ab9 100644 --- a/src/server.h +++ b/src/server.h @@ -53,7 +53,6 @@ #include #include #include -#include "hdr_histogram.h" #ifdef HAVE_LIBSYSTEMD #include @@ -92,6 +91,8 @@ typedef struct redisObject robj; #include "endianconv.h" #include "crc64.h" +struct hdr_histogram; + /* helpers */ #define numElements(x) (sizeof(x)/sizeof((x)[0]))