From 413064a95645ab569c2adae4e422cc6aefdf8304 Mon Sep 17 00:00:00 2001
From: Sander Vrijders <sander.vrijders@ugent.be>
Date: Wed, 25 Apr 2018 15:46:43 +0200
Subject: lib: Fix bad unlinking of old shared memory

A previous commit tried to stat the shared memory file in case it was
already there, but stat does not seem to work for shared memory
files. This simply omits the O_EXCL attribute upon creation of the
shared memory file, since pids are unique anyway.

Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
---
 src/lib/shm_flow_set.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/lib/shm_flow_set.c b/src/lib/shm_flow_set.c
index ca3a1a87..d2107fc3 100644
--- a/src/lib/shm_flow_set.c
+++ b/src/lib/shm_flow_set.c
@@ -84,20 +84,16 @@ struct shm_flow_set * shm_flow_set_create()
         mode_t                mask;
         int                   shm_fd;
         int                   i;
-        struct stat           st;
 
         sprintf(fn, SHM_FLOW_SET_PREFIX "%d", getpid());
 
-        if (stat(fn, &st) != -1 && unlink(fn))
-                return NULL;
-
         set = malloc(sizeof(*set));
         if (set == NULL)
                 return NULL;
 
         mask = umask(0);
 
-        shm_fd = shm_open(fn, O_CREAT | O_EXCL | O_RDWR, 0666);
+        shm_fd = shm_open(fn, O_CREAT | O_RDWR, 0666);
         if (shm_fd == -1) {
                 free(set);
                 return NULL;
-- 
cgit v1.2.3