]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Changeuid: only change uid if actually needed
authorBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 5 Dec 2022 09:11:57 +0000 (10:11 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 5 Dec 2022 09:11:57 +0000 (10:11 +0100)
src/mlmmj-sub.c
src/mlmmj-unsub.c

index b403cc2b23e936c13000fa85c83739b3878b8b72..b05d2110263a755c20edecb715af1044e7fea17c 100644 (file)
@@ -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) {
index 396d5fff881ee731702e9784204f8a88bc701fee..19f95352387e1d71fb426e4e88a87bed455ad5fa 100644 (file)
@@ -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) {