[PATCH] Added Restriction on base value

Aditya Upadhyay aadit0402@gmail.com
Mon Aug 13 07:31:00 GMT 2018


---
 newlib/libc/stdlib/strtoimax.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/newlib/libc/stdlib/strtoimax.c b/newlib/libc/stdlib/strtoimax.c
index 6901612..c3f27df 100644
--- a/newlib/libc/stdlib/strtoimax.c
+++ b/newlib/libc/stdlib/strtoimax.c
@@ -91,6 +91,9 @@ _strtoimax_l(struct _reent *rptr, const char * __restrict nptr,
 	if (base == 0)
 		base = c == '0' ? 8 : 10;
 
+	if (base < 2 || base > 36)
+		goto noconv;
+
 	/*
 	 * Compute the cutoff value between legal numbers and illegal
 	 * numbers.  That is the largest legal value, divided by the
@@ -135,6 +138,7 @@ _strtoimax_l(struct _reent *rptr, const char * __restrict nptr,
 		acc = neg ? INTMAX_MIN : INTMAX_MAX;
 		rptr->_errno = ERANGE;
 	} else if (!any) {
+noconv:
 		rptr->_errno = EINVAL;
 	} else if (neg)
 		acc = -acc;
-- 
2.7.4



More information about the Newlib mailing list