diff options
| author | Maciej W. Rozycki <macro@redhat.com> | 2025-03-28 12:35:53 +0000 |
|---|---|---|
| committer | Maciej W. Rozycki <macro@redhat.com> | 2025-03-28 12:35:53 +0000 |
| commit | 0a8e7ac95c69499959151f29c65fc112f09d3973 (patch) | |
| tree | d4bcfc72a18721f44840d30925cc66e35a8b28cf /sysdeps | |
| parent | 0b390b55085070bfa9598fb42049a32460681308 (diff) | |
| download | glibc-0a8e7ac95c69499959151f29c65fc112f09d3973.tar.xz glibc-0a8e7ac95c69499959151f29c65fc112f09d3973.zip | |
stdio-common: Reject real data w/o exponent digits in scanf [BZ #12701]
Reject invalid formatted scanf real input data the exponent part of
which is comprised of an exponent introducing character, optionally
followed by a sign, and with no actual digits following. 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 according to the input significand read and the
exponent of zero, with the significand and the exponent part wholly
consumed from input.
Correct an invalid `tstscanf.c' test accordingly that expects a matching
success for input data provided in the ISO C standard as an example for
a matching failure.
Enable input data that causes test failures without this fix in place.
Reviewed-by: Joseph Myers <josmyers@redhat.com>
Diffstat (limited to 'sysdeps')
36 files changed, 2332 insertions, 2332 deletions
diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input index 9edf94a813..ba9e02fa85 100644 --- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input @@ -272,12 +272,12 @@ %*4la:nan():0:-1: %4la:nan(09A_Zaz):0:-1: %*4la:nan(09A_Zaz):0:-1: -# BZ12701 %4la:0x0p0:0:-1: -# BZ12701 %*4la:0x0p0:0:-1: -# BZ12701 %4la:0x0p+0:0:-1: -# BZ12701 %*4la:0x0p+0:0:-1: -# BZ12701 %4la:0x8p-1025:0:-1: -# BZ12701 %*4la:0x8p-1025:0:-1: +%4la:0x0p0:0:-1: +%*4la:0x0p0:0:-1: +%4la:0x0p+0:0:-1: +%*4la:0x0p+0:0:-1: +%4la:0x8p-1025:0:-1: +%*4la:0x8p-1025:0:-1: %4la:0x2.3456789abcdfep0123:1:4:0x1p1: %*4la:0x2.3456789abcdfep0123:0:4: %4la:0x2.3456789abcdfep+123:1:4:0x1p1: @@ -320,12 +320,12 @@ %*5la:-0x2.3456789abcdfep+123:0:5: %5la:-0x2.3456789abcdfep0123:1:5:-0x1p1: %*5la:-0x2.3456789abcdfep0123:0:5: -# BZ12701 %5la:-0x8p-1025:0:-1: -# BZ12701 %*5la:-0x8p-1025:0:-1: -# BZ12701 %5la:-0x0p+0:0:-1: -# BZ12701 %*5la:-0x0p+0:0:-1: -# BZ12701 %5la:-0x0p0:0:-1: -# BZ12701 %*5la:-0x0p0:0:-1: +%5la:-0x8p-1025:0:-1: +%*5la:-0x8p-1025:0:-1: +%5la:-0x0p+0:0:-1: +%*5la:-0x0p+0:0:-1: +%5la:-0x0p0:0:-1: +%*5la:-0x0p0:0:-1: %5la:-nan(09A_Zaz):0:-1: %*5la:-nan(09A_Zaz):0:-1: %5la:-nan():0:-1: @@ -336,10 +336,10 @@ %*5la:nan(09A_Zaz):0:-1: %5la:0x0p0:1:5:0x0: %*5la:0x0p0:0:5: -# BZ12701 %5la:0x0p+0:0:-1: -# BZ12701 %*5la:0x0p+0:0:-1: -# BZ12701 %5la:0x8p-1025:0:-1: -# BZ12701 %*5la:0x8p-1025:0:-1: +%5la:0x0p+0:0:-1: +%*5la:0x0p+0:0:-1: +%5la:0x8p-1025:0:-1: +%*5la:0x8p-1025:0:-1: %5la:0x2.3456789abcdfep0123:1:5:0x1.18p1: %*5la:0x2.3456789abcdfep0123:0:5: %5la:0x2.3456789abcdfep+123:1:5:0x1.18p1: @@ -354,12 +354,12 @@ %*5la:+nan():0:-1: %5la:+nan(09A_Zaz):0:-1: %*5la:+nan(09A_Zaz):0:-1: -# BZ12701 %5la:+0x0p0:0:-1: -# BZ12701 %*5la:+0x0p0:0:-1: -# BZ12701 %5la:+0x0p+0:0:-1: -# BZ12701 %*5la:+0x0p+0:0:-1: -# BZ12701 %5la:+0x8p-1025:0:-1: -# BZ12701 %*5la:+0x8p-1025:0:-1: +%5la:+0x0p0:0:-1: +%*5la:+0x0p0:0:-1: +%5la:+0x0p+0:0:-1: +%*5la:+0x0p+0:0:-1: +%5la:+0x8p-1025:0:-1: +%*5la:+0x8p-1025:0:-1: %5la:+0x2.3456789abcdfep0123:1:5:0x1p1: %*5la:+0x2.3456789abcdfep0123:0:5: %5la:+0x2.3456789abcdfep+123:1:5:0x1p1: @@ -382,10 +382,10 @@ %*6la:-0x2.3456789abcdfep+123:0:6: %6la:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: %*6la:-0x2.3456789abcdfep0123:0:6: -# BZ12701 %6la:-0x8p-1025:0:-1: -# BZ12701 %*6la:-0x8p-1025:0:-1: -# BZ12701 %6la:-0x0p+0:0:-1: -# BZ12701 %*6la:-0x0p+0:0:-1: +%6la:-0x8p-1025:0:-1: +%*6la:-0x8p-1025:0:-1: +%6la:-0x0p+0:0:-1: +%*6la:-0x0p+0:0:-1: %6la:-0x0p0:1:6:-0x0: %*6la:-0x0p0:0:6: %6la:-nan(09A_Zaz):0:-1: @@ -418,10 +418,10 @@ %*6la:+nan(09A_Zaz):0:-1: %6la:+0x0p0:1:6:0x0: %*6la:+0x0p0:0:6: -# BZ12701 %6la:+0x0p+0:0:-1: -# BZ12701 %*6la:+0x0p+0:0:-1: -# BZ12701 %6la:+0x8p-1025:0:-1: -# BZ12701 %*6la:+0x8p-1025:0:-1: +%6la:+0x0p+0:0:-1: +%*6la:+0x0p+0:0:-1: +%6la:+0x8p-1025:0:-1: +%*6la:+0x8p-1025:0:-1: %6la:+0x2.3456789abcdfep0123:1:6:0x1.18p1: %*6la:+0x2.3456789abcdfep0123:0:6: %6la:+0x2.3456789abcdfep+123:1:6:0x1.18p1: @@ -436,12 +436,12 @@ %*20la::0:-1: %20la:-infinity:1:9:-inf: %*20la:-infinity:0:9: -# BZ12701 %20la:-0xf.ffffffffffff8p+1020:0:-1: -# BZ12701 %*20la:-0xf.ffffffffffff8p+1020:0:-1: +%20la:-0xf.ffffffffffff8p+1020:0:-1: +%*20la:-0xf.ffffffffffff8p+1020:0:-1: %20la:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: %*20la:-0x7.ffffffffffffcp1021:0:20: -# BZ12701 %20la:-0x2.3456789abcdfep+123:0:-1: -# BZ12701 %*20la:-0x2.3456789abcdfep+123:0:-1: +%20la:-0x2.3456789abcdfep+123:0:-1: +%*20la:-0x2.3456789abcdfep+123:0:-1: %20la:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: %*20la:-0x2.3456789abcdfep0123:0:20: %20la:-0x8p-1025:1:10:-0x1p-1022: @@ -486,12 +486,12 @@ %*20la:+0x8p-1025:0:10: %20la:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: %*20la:+0x2.3456789abcdfep0123:0:20: -# BZ12701 %20la:+0x2.3456789abcdfep+123:0:-1: -# BZ12701 %*20la:+0x2.3456789abcdfep+123:0:-1: +%20la:+0x2.3456789abcdfep+123:0:-1: +%*20la:+0x2.3456789abcdfep+123:0:-1: %20la:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: %*20la:+0x7.ffffffffffffcp1021:0:20: -# BZ12701 %20la:+0xf.ffffffffffff8p+1020:0:-1: -# BZ12701 %*20la:+0xf.ffffffffffff8p+1020:0:-1: +%20la:+0xf.ffffffffffff8p+1020:0:-1: +%*20la:+0xf.ffffffffffff8p+1020:0:-1: %20la:+infinity:1:9:inf: %*20la:+infinity:0:9: %32la::0:-1: @@ -568,12 +568,12 @@ %*5la: -0x2.3456789abcdfep+123:0:6: %5la: -0x2.3456789abcdfep0123:1:6:-0x1p1: %*5la: -0x2.3456789abcdfep0123:0:6: -# BZ12701 %5la: -0x8p-1025:0:-1: -# BZ12701 %*5la: -0x8p-1025:0:-1: -# BZ12701 %5la: -0x0p+0:0:-1: -# BZ12701 %*5la: -0x0p+0:0:-1: -# BZ12701 %5la: -0x0p0:0:-1: -# BZ12701 %*5la: -0x0p0:0:-1: +%5la: -0x8p-1025:0:-1: +%*5la: -0x8p-1025:0:-1: +%5la: -0x0p+0:0:-1: +%*5la: -0x0p+0:0:-1: +%5la: -0x0p0:0:-1: +%*5la: -0x0p0:0:-1: %5la: -nan(09A_Zaz):0:-1: %*5la: -nan(09A_Zaz):0:-1: %5la: -nan():0:-1: @@ -584,10 +584,10 @@ %*5la: nan(09A_Zaz):0:-1: %5la: 0x0p0:1:6:0x0: %*5la: 0x0p0:0:6: -# BZ12701 %5la: 0x0p+0:0:-1: -# BZ12701 %*5la: 0x0p+0:0:-1: -# BZ12701 %5la: 0x8p-1025:0:-1: -# BZ12701 %*5la: 0x8p-1025:0:-1: +%5la: 0x0p+0:0:-1: +%*5la: 0x0p+0:0:-1: +%5la: 0x8p-1025:0:-1: +%*5la: 0x8p-1025:0:-1: %5la: 0x2.3456789abcdfep0123:1:6:0x1.18p1: %*5la: 0x2.3456789abcdfep0123:0:6: %5la: 0x2.3456789abcdfep+123:1:6:0x1.18p1: @@ -602,12 +602,12 @@ %*5la: +nan():0:-1: %5la: +nan(09A_Zaz):0:-1: %*5la: +nan(09A_Zaz):0:-1: -# BZ12701 %5la: +0x0p0:0:-1: -# BZ12701 %*5la: +0x0p0:0:-1: -# BZ12701 %5la: +0x0p+0:0:-1: -# BZ12701 %*5la: +0x0p+0:0:-1: -# BZ12701 %5la: +0x8p-1025:0:-1: -# BZ12701 %*5la: +0x8p-1025:0:-1: +%5la: +0x0p0:0:-1: +%*5la: +0x0p0:0:-1: +%5la: +0x0p+0:0:-1: +%*5la: +0x0p+0:0:-1: +%5la: +0x8p-1025:0:-1: +%*5la: +0x8p-1025:0:-1: %5la: +0x2.3456789abcdfep0123:1:6:0x1p1: %*5la: +0x2.3456789abcdfep0123:0:6: %5la: +0x2.3456789abcdfep+123:1:6:0x1p1: diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input index 242f443fc4..f7217b7b74 100644 --- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input @@ -272,12 +272,12 @@ %*4lA:NAN():0:-1: %4lA:NAN(09A_Zaz):0:-1: %*4lA:NAN(09A_Zaz):0:-1: -# BZ12701 %4lA:0X0P0:0:-1: -# BZ12701 %*4lA:0X0P0:0:-1: -# BZ12701 %4lA:0X0P+0:0:-1: -# BZ12701 %*4lA:0X0P+0:0:-1: -# BZ12701 %4lA:0X8P-1025:0:-1: -# BZ12701 %*4lA:0X8P-1025:0:-1: +%4lA:0X0P0:0:-1: +%*4lA:0X0P0:0:-1: +%4lA:0X0P+0:0:-1: +%*4lA:0X0P+0:0:-1: +%4lA:0X8P-1025:0:-1: +%*4lA:0X8P-1025:0:-1: %4lA:0X2.3456789ABCDFEP0123:1:4:0x1p1: %*4lA:0X2.3456789ABCDFEP0123:0:4: %4lA:0X2.3456789ABCDFEP+123:1:4:0x1p1: @@ -320,12 +320,12 @@ %*5lA:-0X2.3456789ABCDFEP+123:0:5: %5lA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: %*5lA:-0X2.3456789ABCDFEP0123:0:5: -# BZ12701 %5lA:-0X8P-1025:0:-1: -# BZ12701 %*5lA:-0X8P-1025:0:-1: -# BZ12701 %5lA:-0X0P+0:0:-1: -# BZ12701 %*5lA:-0X0P+0:0:-1: -# BZ12701 %5lA:-0X0P0:0:-1: -# BZ12701 %*5lA:-0X0P0:0:-1: +%5lA:-0X8P-1025:0:-1: +%*5lA:-0X8P-1025:0:-1: +%5lA:-0X0P+0:0:-1: +%*5lA:-0X0P+0:0:-1: +%5lA:-0X0P0:0:-1: +%*5lA:-0X0P0:0:-1: %5lA:-NAN(09A_Zaz):0:-1: %*5lA:-NAN(09A_Zaz):0:-1: %5lA:-NAN():0:-1: @@ -336,10 +336,10 @@ %*5lA:NAN(09A_Zaz):0:-1: %5lA:0X0P0:1:5:0x0: %*5lA:0X0P0:0:5: -# BZ12701 %5lA:0X0P+0:0:-1: -# BZ12701 %*5lA:0X0P+0:0:-1: -# BZ12701 %5lA:0X8P-1025:0:-1: -# BZ12701 %*5lA:0X8P-1025:0:-1: +%5lA:0X0P+0:0:-1: +%*5lA:0X0P+0:0:-1: +%5lA:0X8P-1025:0:-1: +%*5lA:0X8P-1025:0:-1: %5lA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: %*5lA:0X2.3456789ABCDFEP0123:0:5: %5lA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: @@ -354,12 +354,12 @@ %*5lA:+NAN():0:-1: %5lA:+NAN(09A_Zaz):0:-1: %*5lA:+NAN(09A_Zaz):0:-1: -# BZ12701 %5lA:+0X0P0:0:-1: -# BZ12701 %*5lA:+0X0P0:0:-1: -# BZ12701 %5lA:+0X0P+0:0:-1: -# BZ12701 %*5lA:+0X0P+0:0:-1: -# BZ12701 %5lA:+0X8P-1025:0:-1: -# BZ12701 %*5lA:+0X8P-1025:0:-1: +%5lA:+0X0P0:0:-1: +%*5lA:+0X0P0:0:-1: +%5lA:+0X0P+0:0:-1: +%*5lA:+0X0P+0:0:-1: +%5lA:+0X8P-1025:0:-1: +%*5lA:+0X8P-1025:0:-1: %5lA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: %*5lA:+0X2.3456789ABCDFEP0123:0:5: %5lA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: @@ -382,10 +382,10 @@ %*6lA:-0X2.3456789ABCDFEP+123:0:6: %6lA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: %*6lA:-0X2.3456789ABCDFEP0123:0:6: -# BZ12701 %6lA:-0X8P-1025:0:-1: -# BZ12701 %*6lA:-0X8P-1025:0:-1: -# BZ12701 %6lA:-0X0P+0:0:-1: -# BZ12701 %*6lA:-0X0P+0:0:-1: +%6lA:-0X8P-1025:0:-1: +%*6lA:-0X8P-1025:0:-1: +%6lA:-0X0P+0:0:-1: +%*6lA:-0X0P+0:0:-1: %6lA:-0X0P0:1:6:-0x0: %*6lA:-0X0P0:0:6: %6lA:-NAN(09A_Zaz):0:-1: @@ -418,10 +418,10 @@ %*6lA:+NAN(09A_Zaz):0:-1: %6lA:+0X0P0:1:6:0x0: %*6lA:+0X0P0:0:6: -# BZ12701 %6lA:+0X0P+0:0:-1: -# BZ12701 %*6lA:+0X0P+0:0:-1: -# BZ12701 %6lA:+0X8P-1025:0:-1: -# BZ12701 %*6lA:+0X8P-1025:0:-1: +%6lA:+0X0P+0:0:-1: +%*6lA:+0X0P+0:0:-1: +%6lA:+0X8P-1025:0:-1: +%*6lA:+0X8P-1025:0:-1: %6lA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: %*6lA:+0X2.3456789ABCDFEP0123:0:6: %6lA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: @@ -436,12 +436,12 @@ %*20lA::0:-1: %20lA:-INFINITY:1:9:-inf: %*20lA:-INFINITY:0:9: -# BZ12701 %20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: -# BZ12701 %*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: +%20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: +%*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: %20lA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: %*20lA:-0X7.FFFFFFFFFFFFCP1021:0:20: -# BZ12701 %20lA:-0X2.3456789ABCDFEP+123:0:-1: -# BZ12701 %*20lA:-0X2.3456789ABCDFEP+123:0:-1: +%20lA:-0X2.3456789ABCDFEP+123:0:-1: +%*20lA:-0X2.3456789ABCDFEP+123:0:-1: %20lA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: %*20lA:-0X2.3456789ABCDFEP0123:0:20: %20lA:-0X8P-1025:1:10:-0x1p-1022: @@ -486,12 +486,12 @@ %*20lA:+0X8P-1025:0:10: %20lA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: %*20lA:+0X2.3456789ABCDFEP0123:0:20: -# BZ12701 %20lA:+0X2.3456789ABCDFEP+123:0:-1: -# BZ12701 %*20lA:+0X2.3456789ABCDFEP+123:0:-1: +%20lA:+0X2.3456789ABCDFEP+123:0:-1: +%*20lA:+0X2.3456789ABCDFEP+123:0:-1: %20lA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: %*20lA:+0X7.FFFFFFFFFFFFCP1021:0:20: -# BZ12701 %20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: -# BZ12701 %*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: +%20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: +%*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: %20lA:+INFINITY:1:9:inf: %*20lA:+INFINITY:0:9: %32lA::0:-1: @@ -568,12 +568,12 @@ %*5lA: -0X2.3456789ABCDFEP+123:0:6: %5lA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: %*5lA: -0X2.3456789ABCDFEP0123:0:6: -# BZ12701 %5lA: -0X8P-1025:0:-1: -# BZ12701 %*5lA: -0X8P-1025:0:-1: -# BZ12701 %5lA: -0X0P+0:0:-1: -# BZ12701 %*5lA: -0X0P+0:0:-1: -# BZ12701 %5lA: -0X0P0:0:-1: -# BZ12701 %*5lA: -0X0P0:0:-1: +%5lA: -0X8P-1025:0:-1: +%*5lA: -0X8P-1025:0:-1: +%5lA: -0X0P+0:0:-1: +%*5lA: -0X0P+0:0:-1: +%5lA: -0X0P0:0:-1: +%*5lA: -0X0P0:0:-1: %5lA: -NAN(09A_Zaz):0:-1: %*5lA: -NAN(09A_Zaz):0:-1: %5lA: -NAN():0:-1: @@ -584,10 +584,10 @@ %*5lA: NAN(09A_Zaz):0:-1: %5lA: 0X0P0:1:6:0x0: %*5lA: 0X0P0:0:6: -# BZ12701 %5lA: 0X0P+0:0:-1: -# BZ12701 %*5lA: 0X0P+0:0:-1: -# BZ12701 %5lA: 0X8P-1025:0:-1: -# BZ12701 %*5lA: 0X8P-1025:0:-1: +%5lA: 0X0P+0:0:-1: +%*5lA: 0X0P+0:0:-1: +%5lA: 0X8P-1025:0:-1: +%*5lA: 0X8P-1025:0:-1: %5lA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: %*5lA: 0X2.3456789ABCDFEP0123:0:6: %5lA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: @@ -602,12 +602,12 @@ %*5lA: +NAN():0:-1: %5lA: +NAN(09A_Zaz):0:-1: %*5lA: +NAN(09A_Zaz):0:-1: -# BZ12701 %5lA: +0X0P0:0:-1: -# BZ12701 %*5lA: +0X0P0:0:-1: -# BZ12701 %5lA: +0X0P+0:0:-1: -# BZ12701 %*5lA: +0X0P+0:0:-1: -# BZ12701 %5lA: +0X8P-1025:0:-1: -# BZ12701 %*5lA: +0X8P-1025:0:-1: +%5lA: +0X0P0:0:-1: +%*5lA: +0X0P0:0:-1: +%5lA: +0X0P+0:0:-1: +%*5lA: +0X0P+0:0:-1: +%5lA: +0X8P-1025:0:-1: +%*5lA: +0X8P-1025:0:-1: %5lA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: %*5lA: +0X2.3456789ABCDFEP0123:0:6: %5lA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input index cf1ea542c9..d8189c997d 100644 --- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input @@ -148,10 +148,10 @@ %*2le:nan():0:-1: %2le:nan(09A_Zaz):0:-1: |
