umount: stop using excessive aounts of stack. Surprisingly,
authorDenis Vlasenko <vda.linux@googlemail.com>
Sat, 10 Nov 2007 01:45:03 +0000 (01:45 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sat, 10 Nov 2007 01:45:03 +0000 (01:45 -0000)
code shrank a lot too

function                                             old     new   delta
umount_main                                          751     640    -111

util-linux/umount.c

index 7c1b81347fd15855a3346400676f0e4b3b514f17..a9d60fc29dc91b64cfcf539b62b406426d8619d9 100644 (file)
@@ -25,7 +25,7 @@ int umount_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int umount_main(int argc, char **argv)
 {
        int doForce;
-       char path[PATH_MAX + 2];
+       char *const path = xmalloc(PATH_MAX + 2); /* to save stack */
        struct mntent me;
        FILE *fp;
        char *fstype = 0;
@@ -155,6 +155,7 @@ int umount_main(int argc, char **argv)
                        free(mtl);
                        mtl = m;
                }
+               free(path);
        }
 
        return status;