X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/6f954c76745acaaa8cae5a569702e23e83115b3b..5610d41482df995baaf510308e07ccbe04c9e18b:/src/pulsecore/core-util.c diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 2efa280e..3e2c615f 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -326,16 +326,20 @@ again: goto fail; } - if (!update_perms) + if (!update_perms) { + pa_assert_se(pa_close(fd) >= 0); return 0; + } #ifdef HAVE_FCHOWN if (uid == (uid_t) -1) uid = getuid(); if (gid == (gid_t) -1) gid = getgid(); - if (fchown(fd, uid, gid) < 0) + if (((st.st_uid != uid) || (st.st_gid != gid)) && fchown(fd, uid, gid) < 0) { + pa_assert_se(pa_close(fd) >= 0); goto fail; + } #endif #ifdef HAVE_FCHMOD