]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
umount: Make sure exit code does not overflow
authorNicolas Boichat <nicolas@boichat.ch>
Sat, 7 Jun 2014 13:38:00 +0000 (21:38 +0800)
committerNicolas Boichat <nicolas@boichat.ch>
Sat, 7 Jun 2014 13:46:02 +0000 (21:46 +0800)
POSIX exit code is only 8-bit, and since umount sums up error
codes, it can sometimes report success (exit code 0) even though
a number of operations failed.

For example, running, in an empty directory:
 umount `seq 1 7`
returns 224 (7*32), since none of the 7 mount point exists but
 umount `seq 1 8`
returns 0 (8*32=256)

This patch clips the return value to 255.

Signed-off-by: Nicolas Boichat <nicolas@boichat.ch>
sys-utils/umount.c

index 1ad9e6aeb990cc210efc12f7abc3d25b3d245b88..a75ff9ec19258aa73a4c7feb63cc6ea400abe9d7 100644 (file)
@@ -646,6 +646,6 @@ int main(int argc, char **argv)
        }
 
        mnt_free_context(cxt);
-       return rc;
+       return (rc < 256) ? rc : 255;
 }