From c69adc26b90959d2bcc374fcc7bd7ccbddb61e1b Mon Sep 17 00:00:00 2001 From: Thulinma Date: Sun, 10 Dec 2017 18:21:43 +0100 Subject: [PATCH] Fixed shared memory master-mode re-opens causing SIGBUS errors in other parts --- lib/shared_memory.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/shared_memory.cpp b/lib/shared_memory.cpp index a0b44b90..8567fbdf 100644 --- a/lib/shared_memory.cpp +++ b/lib/shared_memory.cpp @@ -459,10 +459,6 @@ namespace IPC { return; } if (master) { - if (ftruncate(handle, 0) < 0) { - FAIL_MSG("truncate to zero for page %s failed: %s", name.c_str(), strerror(errno)); - return; - } if (ftruncate(handle, len) < 0) { FAIL_MSG("truncate to %lld for page %s failed: %s", len, name.c_str(), strerror(errno)); return; @@ -474,6 +470,10 @@ namespace IPC { return; } len = buffStats.st_size; + if (!len){ + mapped = 0; + return; + } } mapped = (char *)mmap(0, len, PROT_READ | PROT_WRITE, MAP_SHARED, handle, 0); if (mapped == MAP_FAILED) {