[PATCH v2 1/3] lib: parse_area_spec: don't modify *start value if parse failed

Sascha Hauer s.hauer at pengutronix.de
Wed Jan 17 00:11:12 PST 2018


On Mon, Jan 15, 2018 at 02:32:31PM +0300, Peter Mamonov wrote:
> Signed-off-by: Peter Mamonov <pmamonov at gmail.com>
> ---
>  lib/misc.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/misc.c b/lib/misc.c
> index 62ddd6677..1767043d1 100644
> --- a/lib/misc.c
> +++ b/lib/misc.c
> @@ -79,19 +79,19 @@ EXPORT_SYMBOL(strtoul_suffix);
>  int parse_area_spec(const char *str, loff_t *start, loff_t *size)
>  {
>  	char *endp;
> -	loff_t end;
> +	loff_t end, _start;
>  
>  	if (!isdigit(*str))
>  		return -1;
>  
> -	*start = strtoull_suffix(str, &endp, 0);
> +	_start = strtoull_suffix(str, &endp, 0);
>  
>  	str = endp;
>  
>  	if (!*str) {
>  		/* beginning given, but no size, assume maximum size */
>  		*size = ~0;
> -		return 0;
> +		goto success;
>  	}
>  
>  	if (*str == '-') {
> @@ -102,15 +102,19 @@ int parse_area_spec(const char *str, loff_t *start, loff_t *size)
>  			return -1;
>  		}
>  		*size = end - *start + 1;

Applied with two little changes: It must be _start above and in another
case not visible in the patch. *start is not yet initialized.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list