From 92068f4cc5f2cb655b32a46fdba93a9e572c307b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 18 Jun 2021 11:09:48 -0700 Subject: [PATCH] stdio: Parse 0x0p+00 correctly in scanf The scanf code was skipping the '0' after the 'x' causing the resulting buffer to contain an invalid number when passed to strtod. Signed-off-by: Keith Packard --- newlib/libc/stdio/vfscanf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c index 1d5e6512a..037692531 100644 --- a/newlib/libc/stdio/vfscanf.c +++ b/newlib/libc/stdio/vfscanf.c @@ -1628,6 +1628,7 @@ __SVFSCANF_R (struct _reent *rptr, && zeroes == 1) { flags |= HEXFLT; + flags &= ~NDIGITS; /* We skipped the first zero, so we have to add it now to the buffer. */ *p++ = '0'; -- 2.43.5