From a9a455472343c04f28661af373b4543268342a25 Mon Sep 17 00:00:00 2001 From: Aditya Upadhyay Date: Sun, 12 Aug 2018 19:39:52 +0530 Subject: [PATCH] Added Restriction on base value --- 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 6901612c3..c3f27df2e 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;