From eee878cbc5c6c02e2e3e4073d71de2c970305676 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 6 Jul 2016 19:05:44 +0200 Subject: [PATCH] redis_check_rdb_main(): create shared objects only if needed. Otherwise Valgrind will complain a memory leak under certain tests where RDB checking is invoked from within Redis. --- src/redis-check-rdb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/redis-check-rdb.c b/src/redis-check-rdb.c index 8da860a0..53fb67b8 100644 --- a/src/redis-check-rdb.c +++ b/src/redis-check-rdb.c @@ -332,7 +332,11 @@ int redis_check_rdb_main(int argc, char **argv) { fprintf(stderr, "Usage: %s \n", argv[0]); exit(1); } - createSharedObjects(); /* Needed for loading. */ + /* In order to call the loading functions we need to create the shared + * integer objects, however since this function may be called from + * an already initialized Redis instance, check if we really need to. */ + if (shared.integers[0] == NULL) + createSharedObjects(); server.loading_process_events_interval_bytes = 0; rdbCheckMode = 1; rdbCheckInfo("Checking RDB file %s", argv[1]);