From: Baptiste Daroussin Date: Mon, 5 Dec 2022 09:11:57 +0000 (+0100) Subject: Changeuid: only change uid if actually needed X-Git-Tag: RELEASE_1_4_0_a2~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3cf81f3bfa5ddee4c0fe8c87cd48ef26b0fe0dbf;p=thirdparty%2Fmlmmj.git Changeuid: only change uid if actually needed --- diff --git a/src/mlmmj-sub.c b/src/mlmmj-sub.c index b403cc2b..b05d2110 100644 --- a/src/mlmmj-sub.c +++ b/src/mlmmj-sub.c @@ -702,7 +702,7 @@ int main(int argc, char **argv) if(changeuid) { uid = getuid(); - if(!uid && stat(listdir, &st) == 0) { + if(!uid && stat(listdir, &st) == 0 && uid != st.st_uid) { printf("Changing to uid %d, owner of %s.\n", (int)st.st_uid, listdir); if(setuid(st.st_uid) < 0) { diff --git a/src/mlmmj-unsub.c b/src/mlmmj-unsub.c index 396d5fff..19f95352 100644 --- a/src/mlmmj-unsub.c +++ b/src/mlmmj-unsub.c @@ -392,7 +392,7 @@ int main(int argc, char **argv) if(changeuid) { uid = getuid(); - if(!uid && stat(listdir, &st) == 0) { + if(!uid && stat(listdir, &st) == 0 && uid != st.st_uid) { printf("Changing to uid %d, owner of %s.\n", (int)st.st_uid, listdir); if(setuid(st.st_uid) < 0) {