You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
From 9604fbf0722bd97ca6031a263c50ad52b6633db7 Mon Sep 17 00:00:00 2001
|
|
From: Tony Cook <tony@develop-help.com>
|
|
Date: Wed, 14 Jun 2017 09:42:31 +1000
|
|
Subject: [PATCH] (perl #131526) don't go beyond the end of the NUL in my_atof2
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Perl_my_atof2() calls GROK_NUMERIC_RADIX() to detect and skip past
|
|
a decimal point and then can increment the parse pointer (s) before
|
|
checking what it points at, so skipping the terminating NUL if the
|
|
decimal point is immediately before the NUL.
|
|
|
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
---
|
|
numeric.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/numeric.c b/numeric.c
|
|
index 6ea6968..5771907 100644
|
|
--- a/numeric.c
|
|
+++ b/numeric.c
|
|
@@ -1485,9 +1485,9 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
|
|
else if (!seen_dp && GROK_NUMERIC_RADIX(&s, send)) {
|
|
seen_dp = 1;
|
|
if (sig_digits > MAX_SIG_DIGITS) {
|
|
- do {
|
|
+ while (isDIGIT(*s)) {
|
|
++s;
|
|
- } while (isDIGIT(*s));
|
|
+ }
|
|
break;
|
|
}
|
|
}
|
|
--
|
|
2.9.4
|
|
|