[tarantool-patches] Re: [PATCH 11/13] sql: fixes an error in string to int64 conversion

n.pettik korablev at tarantool.org
Mon Mar 25 18:14:52 MSK 2019


See comments to the first patch.
Should be skipped or squashed with first patch.

> Returns an error if length of the recognized 
> string is less than length of the token.
> ---
> src/box/sql/util.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/box/sql/util.c b/src/box/sql/util.c
> index 980932f3b..17268aaaa 100644
> --- a/src/box/sql/util.c
> +++ b/src/box/sql/util.c
> @@ -599,6 +599,7 @@ sqlAtoF(const char *z, double *pResult, int length)
> enum atoi_result
> sql_atoi64(const char *z, int64_t *val, int length)
> {
> +	const char* expected_end = z + length;
> 	int neg = 0;		/* assume positive */
> 	const char *zEnd = z + length;
> 	int incr = 1;
> @@ -614,7 +615,7 @@ sql_atoi64(const char *z, int64_t *val, int length)
> 
> 	char* end = NULL;
> 	u64 u = strtoull(z, &end, 10);
> -	if (end == z)
> +	if (end < expected_end)
> 		return ATOI_OVERFLOW;
> 	if (errno == ERANGE)
> 		return ATOI_OVERFLOW;
> -- 
> 2.17.1
> 
> 





More information about the Tarantool-patches mailing list