diff options
Diffstat (limited to 'src/modules/module-pipe-sink.c')
-rw-r--r-- | src/modules/module-pipe-sink.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c index fc01206b6..5d3e1a7d6 100644 --- a/src/modules/module-pipe-sink.c +++ b/src/modules/module-pipe-sink.c @@ -466,9 +466,15 @@ int pa__init(pa_module *m) { pa_log("mkfifo('%s'): %s", u->filename, pa_cstrerror(errno)); goto fail; } - } else + } else { u->do_unlink_fifo = true; + /* Our umask is 077, so the pipe won't be created with the requested + * permissions. Let's fix the permissions with chmod(). */ + if (chmod(u->filename, 0666) < 0) + pa_log_warn("chomd('%s'): %s", u->filename, pa_cstrerror(errno)); + } + if ((u->fd = pa_open_cloexec(u->filename, O_RDWR, 0)) < 0) { pa_log("open('%s'): %s", u->filename, pa_cstrerror(errno)); goto fail; |