[git commit] libbb: add sanity check in bb_arg_max()

Denys Vlasenko vda.linux at googlemail.com
Wed Dec 24 00:46:29 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=ca9c4653a95907e32674c2eb5dc3921dc8e6f1a0
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/sysconf.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/libbb/sysconf.c b/libbb/sysconf.c
index cfad9cd..8c1caef 100644
--- a/libbb/sysconf.c
+++ b/libbb/sysconf.c
@@ -11,7 +11,15 @@
 #if !defined(bb_arg_max)
 unsigned FAST_FUNC bb_arg_max(void)
 {
-	return sysconf(_SC_ARG_MAX);
+	long r = sysconf(_SC_ARG_MAX);
+
+	/* I've seen a version of uclibc which returned -1.
+	 * Guard about it, and also avoid insanely large values
+	 */
+	if ((unsigned long)r > 64*1024*1024)
+		r = 64*1024*1024;
+
+	return r;
 }
 #endif
 


More information about the busybox-cvs mailing list