Use ftok() for semget(), and only lower mode bits

vl32b
Hallvard Furuseth 10 years ago
parent 68f64aa104
commit e95d57f39c
  1. 5
      libraries/liblmdb/mdb.c

@ -4548,7 +4548,10 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
if (!env->me_wmutex) goto fail_errno; if (!env->me_wmutex) goto fail_errno;
#elif defined(MDB_USE_SYSV_SEM) #elif defined(MDB_USE_SYSV_SEM)
unsigned short vals[2] = {1, 1}; unsigned short vals[2] = {1, 1};
semid = semget(IPC_PRIVATE, 2, mode); key_t key = ftok(lpath, 'M');
if (key == -1)
goto fail_errno;
semid = semget(key, 2, (mode & 0777) | IPC_CREAT);
if (semid < 0) if (semid < 0)
goto fail_errno; goto fail_errno;
semu.array = vals; semu.array = vals;

Loading…
Cancel
Save