summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/module-pipe-sink.c8
-rw-r--r--src/modules/module-pipe-source.c6
2 files changed, 13 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;
diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c
index f8284c161..74ec0551a 100644
--- a/src/modules/module-pipe-source.c
+++ b/src/modules/module-pipe-source.c
@@ -243,7 +243,13 @@ int pa__init(pa_module *m) {
if (mkfifo(u->filename, 0666) < 0) {
pa_log("mkfifo('%s'): %s", u->filename, pa_cstrerror(errno));
goto fail;
+ } else {
+ /* 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;