diff options
author | Maciej W. Rozycki <macro@redhat.com> | 2025-08-11 17:42:12 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@redhat.com> | 2025-08-11 17:42:12 +0100 |
commit | b52ecff316bb4d96ddce14986e1a39deee021427 (patch) | |
tree | 4e5e4bfaed33f1e2aec78e35cb0f91521744f1ea /sysdeps/unix/sysv/linux/syslog.c | |
parent | b692181703e59174bdb3d9a5f696326f10f7a13b (diff) | |
download | glibc-b52ecff316bb4d96ddce14986e1a39deee021427.zip glibc-b52ecff316bb4d96ddce14986e1a39deee021427.tar.gz glibc-b52ecff316bb4d96ddce14986e1a39deee021427.tar.bz2 |
stdio-common: Reject significands w/o digits in scanf [BZ #12701]
Reject invalid formatted scanf real input data the significand part of
which is comprised of a hexadecimal prefix followed by a decimal point
only, optionally preceded by a sign. Such data is a prefix of, but not
a matching input sequence and it is required by ISO C to cause a
matching failure.
Currently a matching success is instead incorrectly produced along with
the conversion result of zero, with data up to and including the decimal
point consumed from input.
Technically this change also causes lone . to be rejected early, though
it doesn't change semantics, because unlike 0x. it's not valid input to
'strtod', etc. so it gets rejected at actual conversion time later on
anyway.
Test cases follow as separate changes.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps/unix/sysv/linux/syslog.c')
0 files changed, 0 insertions, 0 deletions