Skip to content

Commit 7b288f7

Browse files
authored
Fix possible segfault if pmemobj_open fails
Addresses pmem#219 (pmem#219)
1 parent 4e622e7 commit 7b288f7

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/server.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -4015,14 +4015,15 @@ void initPersistentMemory(void) {
40154015
if (server.pm_pool == NULL) {
40164016
/* Open the existing PMEM pool file. */
40174017
server.pm_pool = pmemobj_open(server.pm_file_path, PM_LAYOUT_NAME);
4018-
server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root);
4019-
server.pm_reconstruct_required = true;
4020-
4018+
40214019
if (server.pm_pool == NULL) {
40224020
serverLog(LL_WARNING,"Cannot init persistent memory poolset file "
40234021
"%s size %s", server.pm_file_path, pmfile_hmem);
40244022
exit(1);
40254023
}
4024+
4025+
server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root);
4026+
server.pm_reconstruct_required = true;
40264027
} else {
40274028
server.pm_rootoid = POBJ_ROOT(server.pm_pool, struct redis_pmem_root);
40284029
root = pmemobj_direct(server.pm_rootoid.oid);

0 commit comments

Comments
 (0)