readprofile: do not close/free just before exiting
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 18:39:27 +0000 (20:39 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 18:39:27 +0000 (20:39 +0200)
function                                             old     new   delta
readprofile_main                                    1784    1762     -22

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NOFORK_NOEXEC.lst
util-linux/readprofile.c

index ab58df50d16b88fb8437e9e06a33060cba3aac2b..02e2ba956277826f7bdd3c6b7ffb88b02a8e86e3 100644 (file)
@@ -48,7 +48,7 @@ ash - interactive, longterm
 awk - noexec. runner
 base64 - runner
 basename - NOFORK
-beep
+beep - longterm: beep -r 999999999
 blkdiscard - noexec. leaks: open+xioctl
 blkid - noexec
 blockdev - noexec. leaks fd
@@ -127,7 +127,7 @@ findfs - suid
 flash_eraseall
 flash_lock
 flash_unlock
-flashcp
+flashcp - needs ^C. flash writing may be slow, better to free memory memory by execing
 flock - spawner, changes state (file locks), let's play safe and not be noexec
 fold - noexec. runner
 free - nofork candidate(struct globals, needs to close /proc/meminfo fd)
@@ -278,7 +278,7 @@ raidautorun - noexec. very simple. leaks: open+xioctl
 rdate - needs ^C (may talk to DNS servers, which may be down)
 rdev - leaks: find_block_device -> readdir+xstrdup
 readlink - NOFORK
-readprofile
+readprofile - reads /boot/System.map and /proc/profile, better to free more memory memory by execing?
 realpath - NOFORK
 reboot - rare
 reformime - runner
index b045657d87fecd9e44e0865beb61058cbffc2210..394ece1ddd85e6e1afe391575b14133efe8a2091 100644 (file)
@@ -266,8 +266,10 @@ int readprofile_main(int argc UNUSED_PARAM, char **argv)
                printf("%6u %-40s %8.4f\n",
                        total, "total", total/(double)(fn_add-add0));
 
-       fclose(map);
-       free(buf);
+       if (ENABLE_FEATURE_CLEAN_UP) {
+               fclose(map);
+               free(buf);
+       }
 
        return EXIT_SUCCESS;
 }