From 7b288f778e65abb60e343e9a846e8dbc2937c88d Mon Sep 17 00:00:00 2001 From: Ian Neal Date: Thu, 4 Nov 2021 13:29:47 -0400 Subject: [PATCH 1/2] Fix possible segfault if pmemobj_open fails Addresses #219 (https://github.com/pmem/redis/issues/219) --- src/server.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server.c b/src/server.c index eea72af499f..605ab006972 100644 --- a/src/server.c +++ b/src/server.c @@ -4015,14 +4015,15 @@ void initPersistentMemory(void) { if (server.pm_pool == NULL) { /* Open the existing PMEM pool file. */ server.pm_pool = pmemobj_open(server.pm_file_path, PM_LAYOUT_NAME); - server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); - server.pm_reconstruct_required = true; - + if (server.pm_pool == NULL) { serverLog(LL_WARNING,"Cannot init persistent memory poolset file " "%s size %s", server.pm_file_path, pmfile_hmem); exit(1); } + + server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); + server.pm_reconstruct_required = true; } else { server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); root = pmemobj_direct(server.pm_rootoid.oid); From a8295c467b0bbd64d0d2a5b37bec4c4dbe16a0db Mon Sep 17 00:00:00 2001 From: Ian Neal Date: Thu, 4 Nov 2021 13:33:25 -0400 Subject: [PATCH 2/2] Fix tab/space issue --- src/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.c b/src/server.c index 605ab006972..2723319a650 100644 --- a/src/server.c +++ b/src/server.c @@ -4022,8 +4022,8 @@ void initPersistentMemory(void) { exit(1); } - server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); - server.pm_reconstruct_required = true; + server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); + server.pm_reconstruct_required = true; } else { server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root); root = pmemobj_direct(server.pm_rootoid.oid);