--- freem/src/shmmgr.c 2025/03/09 19:50:47 1.4
+++ freem/src/shmmgr.c 2025/04/04 19:43:18 1.6
@@ -1,5 +1,5 @@
/*
- * $Id: shmmgr.c,v 1.4 2025/03/09 19:50:47 snw Exp $
+ * $Id: shmmgr.c,v 1.6 2025/04/04 19:43:18 snw Exp $
* shared memory manager
*
*
@@ -24,6 +24,12 @@
* along with FreeM. If not, see .
*
* $Log: shmmgr.c,v $
+ * Revision 1.6 2025/04/04 19:43:18 snw
+ * Switch to using environment catalog to determine user and group for environment, and remove -u and -g flags from freem
+ *
+ * Revision 1.5 2025/03/24 02:56:50 snw
+ * Shared memory compatibility fixes for OS/2
+ *
* Revision 1.4 2025/03/09 19:50:47 snw
* Second phase of REUSE compliance and header reformat
*
@@ -48,7 +54,7 @@
#include
#include
-#if !defined(__OpenBSD__) && !defined(__APPLE__)
+#if !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(__OS2__)
union semun {
int val; /* Value for SETVAL */
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
@@ -92,7 +98,7 @@ short shm_init(const size_t seg_size)
shm_config->key = ftok (config_file, 1);
shm_config->pgsiz = pg_size;
- shm_config->seg_id = shmget (shm_config->key, shm_config->segsiz, 0660 | IPC_CREAT);
+ shm_config->seg_id = shmget (shm_config->key, shm_config->segsiz, 0770 | IPC_CREAT);
if (shm_config->seg_id == -1) {
if (errno == 22) {
fprintf (stderr, "shm_init: cannot get shared memory segment of %ld bytes\r\n\r\n", (unsigned long) shm_config->segsiz);