From a3e7595ac179ca32bc5c876b25a4e80171c3d917 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Thu, 20 Jul 2006 00:21:50 +0000 Subject: Make -1 mean "current group/user" so that some platform dependent calls can be centralised. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1113 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/daemon/main.c | 2 +- src/modules/module-protocol-stub.c | 2 +- src/pulse/context.c | 2 +- src/pulsecore/core-util.c | 4 ++++ 4 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/daemon/main.c b/src/daemon/main.c index cf655ee0..948b2055 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -249,7 +249,7 @@ static int create_runtime_dir(void) { * per-user mode. We create the runtime directory somewhere in * /tmp/ with the current UID/GID */ - if (pa_make_secure_dir(fn, 0700, getuid(), getgid()) < 0) { + if (pa_make_secure_dir(fn, 0700, (uid_t)-1, (gid_t)-1) < 0) { pa_log(__FILE__": Failed to create '%s': %s", fn, pa_cstrerror(errno)); return -1; } diff --git a/src/modules/module-protocol-stub.c b/src/modules/module-protocol-stub.c index ecbc5676..36d7db89 100644 --- a/src/modules/module-protocol-stub.c +++ b/src/modules/module-protocol-stub.c @@ -254,7 +254,7 @@ int pa__init(pa_core *c, pa_module*m) { /* This socket doesn't reside in our own runtime dir but in * /tmp/.esd/, hence we have to create the dir first */ - if (pa_make_secure_parent_dir(u->socket_path, c->is_system_instance ? 0755 : 0700, getuid(), getgid()) < 0) { + if (pa_make_secure_parent_dir(u->socket_path, c->is_system_instance ? 0755 : 0700, (uid_t)-1, (gid_t)-1) < 0) { pa_log(__FILE__": Failed to create socket directory: %s\n", pa_cstrerror(errno)); goto fail; } diff --git a/src/pulse/context.c b/src/pulse/context.c index efc1685b..30a257fe 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c @@ -707,7 +707,7 @@ int pa_context_connect( char lf[PATH_MAX]; pa_runtime_path(AUTOSPAWN_LOCK, lf, sizeof(lf)); - pa_make_secure_parent_dir(lf, 0700, getuid(), getgid()); + pa_make_secure_parent_dir(lf, 0700, (uid_t)-1, (gid_t)-1); assert(c->autospawn_lock_fd <= 0); c->autospawn_lock_fd = pa_lock_lockfile(lf); diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 0e6501b8..595ef939 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -157,6 +157,10 @@ int pa_make_secure_dir(const char* dir, mode_t m, uid_t uid, gid_t gid) { return -1; #ifdef HAVE_CHOWN + if (uid == (uid_t)-1) + uid = getuid(); + if (gid == (gid_t)-1) + gid = getgid(); chown(dir, uid, gid); #endif -- cgit