]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
Do not call exit() on code ending in shared libraries
authorCristian Rodríguez <cristian@rodriguez.im>
Sat, 17 May 2025 19:07:02 +0000 (15:07 -0400)
committerCristian Rodríguez <cristian@rodriguez.im>
Sat, 17 May 2025 19:07:02 +0000 (15:07 -0400)
It is not cool to call atexit() handlers of unknown
applications from shared libraries, use _exit instead.

Signed-off-by: Cristian Rodríguez <cristian@rodriguez.im>
lib/canonicalize.c
libblkid/src/topology/dm.c
libblkid/src/topology/lvm.c

index d181a14e9d7ca760412e7650f588003270919552..0992a47472c3e3084af704dae36436cb65f9a739 100644 (file)
@@ -192,7 +192,7 @@ char *canonicalize_path_restricted(const char *path)
                write_all(pipes[1], (char *) &len, sizeof(len));
                if (canonical)
                        write_all(pipes[1], canonical, len);
-               exit(0);
+               _exit(0);
        default:
                break;
        }
index 612b5df3369e2a544c8ee9af0ae5b37f1e41adfc..62fa179451d169a82a95f68d3662bd48bc0b3ee8 100644 (file)
@@ -74,7 +74,7 @@ static int probe_dm_tp(blkid_probe pr,
                        dup2(dmpipe[1], STDOUT_FILENO);
 
                if (drop_permissions() != 0)
-                        exit(1);
+                        _exit(1);
 
                snprintf(maj, sizeof(maj), "%d", major(devno));
                snprintf(min, sizeof(min), "%d", minor(devno));
index af1a612998b5626af478f7c8e82ccc5fabd921ee..f5c3d484b2ce4af3da795252908f9ffedc930c8f 100644 (file)
@@ -83,7 +83,7 @@ static int probe_lvm_tp(blkid_probe pr,
                        dup2(lvpipe[1], STDOUT_FILENO);
 
                if (drop_permissions() != 0)
-                        exit(1);
+                        _exit(1);
 
                lvargv[0] = cmd;
                lvargv[1] = devname;
@@ -92,7 +92,7 @@ static int probe_lvm_tp(blkid_probe pr,
                execv(lvargv[0], lvargv);
 
                DBG(LOWPROBE, ul_debug("Failed to execute %s: errno=%d", cmd, errno));
-               exit(1);
+               _exit(1);
        }
        case -1:
                DBG(LOWPROBE, ul_debug("Failed to forking: errno=%d", errno));