summaryrefslogtreecommitdiff
path: root/src/lib/shm_ap_rbuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/shm_ap_rbuff.c')
-rw-r--r--src/lib/shm_ap_rbuff.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c
index a855ed8f..6ee2936c 100644
--- a/src/lib/shm_ap_rbuff.c
+++ b/src/lib/shm_ap_rbuff.c
@@ -20,10 +20,12 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <ouroboros/shm_ap_rbuff.h>
+#include <ouroboros/config.h>
+
#define OUROBOROS_PREFIX "shm_ap_rbuff"
#include <ouroboros/logs.h>
+#include <ouroboros/shm_ap_rbuff.h>
#include <pthread.h>
#include <sys/mman.h>
@@ -34,6 +36,7 @@
#include <unistd.h>
#include <stdbool.h>
#include <errno.h>
+#include <sys/stat.h>
#define SHM_RBUFF_FILE_SIZE (SHM_RBUFF_SIZE * sizeof(struct rb_entry) \
+ 2 * sizeof(size_t) + sizeof(pthread_mutex_t) \
@@ -80,6 +83,12 @@ struct shm_ap_rbuff * shm_ap_rbuff_create()
return NULL;
}
+ if (fchmod(shm_fd, 0666)) {
+ LOG_DBGF("Failed to chmod shared memory.");
+ free(rb);
+ return NULL;
+ }
+
if (lseek(shm_fd, SHM_RBUFF_FILE_SIZE - 1, SEEK_SET) < 0) {
LOG_DBGF("Failed to extend ringbuffer.");
free(rb);