[git commit] readprofile: do not close/free just before exiting

Denys Vlasenko vda.linux at googlemail.com
Sun Aug 6 18:39:27 UTC 2017


commit: https://git.busybox.net/busybox/commit/?id=035e71578e98744acba2394bb03686d08f60d956
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
readprofile_main                                    1784    1762     -22

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 NOFORK_NOEXEC.lst        | 6 +++---
 util-linux/readprofile.c | 6 ++++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/NOFORK_NOEXEC.lst b/NOFORK_NOEXEC.lst
index ab58df5..02e2ba9 100644
--- a/NOFORK_NOEXEC.lst
+++ b/NOFORK_NOEXEC.lst
@@ -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
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c
index b045657..394ece1 100644
--- a/util-linux/readprofile.c
+++ b/util-linux/readprofile.c
@@ -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;
 }


More information about the busybox-cvs mailing list