From 9eddef0e2066d4ffc9282e7eb71642261d6f38b6 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 1 Feb 2024 10:28:06 +0000 Subject: [PATCH] Fix: set p to endptr before checking Issue: #275 --- src/ucl_parser.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ucl_parser.c b/src/ucl_parser.c index 321b956..e70de4d 100644 --- a/src/ucl_parser.c +++ b/src/ucl_parser.c @@ -833,12 +833,12 @@ ucl_maybe_parse_number (ucl_object_t *obj, } char numbuf[128]; - + if ((size_t)(p - c + 1) >= sizeof(numbuf)) { *pos = start; return EINVAL; } - + if (is_neg) { numbuf[0] = '-'; ucl_strlcpy (&numbuf[1], c, p - c + 1); @@ -846,7 +846,7 @@ ucl_maybe_parse_number (ucl_object_t *obj, else { ucl_strlcpy (numbuf, c, p - c + 1); } - + errno = 0; if (need_double) { dv = strtod (numbuf, &endptr); @@ -879,6 +879,7 @@ ucl_maybe_parse_number (ucl_object_t *obj, } if (endptr < end && endptr != start) { + p = endptr; switch (*p) { case 'm': case 'M':