shm: Don't force the shm files to be read-only

Forcing the shm file to be read-only makes shm_unlink() fail on OS X.
Thanks to Albert Zeyer for reporting the bug and investigating the
root cause.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=62988
This commit is contained in:
Tanu Kaskinen 2013-04-09 11:32:20 +03:00
parent b4342845db
commit d646d931dc

View file

@ -111,6 +111,7 @@ int pa_shm_create_rw(pa_shm *m, size_t size, pa_bool_t shared, mode_t mode) {
pa_assert(m); pa_assert(m);
pa_assert(size > 0); pa_assert(size > 0);
pa_assert(size <= MAX_SHM_SIZE); pa_assert(size <= MAX_SHM_SIZE);
pa_assert(!(mode & ~0777));
pa_assert(mode >= 0600); pa_assert(mode >= 0600);
/* Each time we create a new SHM area, let's first drop all stale /* Each time we create a new SHM area, let's first drop all stale
@ -151,7 +152,7 @@ int pa_shm_create_rw(pa_shm *m, size_t size, pa_bool_t shared, mode_t mode) {
pa_random(&m->id, sizeof(m->id)); pa_random(&m->id, sizeof(m->id));
segment_name(fn, sizeof(fn), m->id); segment_name(fn, sizeof(fn), m->id);
if ((fd = shm_open(fn, O_RDWR|O_CREAT|O_EXCL, mode & 0444)) < 0) { if ((fd = shm_open(fn, O_RDWR|O_CREAT|O_EXCL, mode)) < 0) {
pa_log("shm_open() failed: %s", pa_cstrerror(errno)); pa_log("shm_open() failed: %s", pa_cstrerror(errno));
goto fail; goto fail;
} }