[PATCH] Added restriction on supported base value

Your Name <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
---
 newlib/libc/stdlib/strtoimax.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/newlib/libc/stdlib/strtoimax.c b/newlib/libc/stdlib/strtoimax.c
index 6901612..1779d3b 100644
--- a/newlib/libc/stdlib/strtoimax.c
+++ b/newlib/libc/stdlib/strtoimax.c
@@ -90,7 +90,8 @@ _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 +136,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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.