[PATCH] Added Restriction on base value

Corinna Vinschen vinschen@redhat.com
Mon Aug 13 07:45:00 GMT 2018


On Aug 12 19:39, Aditya Upadhyay wrote:
> ---
>  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

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20180813/0488bb19/attachment.sig>


More information about the Newlib mailing list