aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@redhat.com>2025-08-23 01:02:10 +0100
committerMaciej W. Rozycki <macro@redhat.com>2025-08-23 01:02:46 +0100
commitda2a2581c43dcad228bc89bce24d0cafa3b485f3 (patch)
tree04dd1dd110578fda0cdf1805399514f2b48be6ee
parent2b16c76609350ec887d49afd4447743da38f7fab (diff)
downloadglibc-da2a2581c43dcad228bc89bce24d0cafa3b485f3.zip
glibc-da2a2581c43dcad228bc89bce24d0cafa3b485f3.tar.gz
glibc-da2a2581c43dcad228bc89bce24d0cafa3b485f3.tar.bz2
stdio-common: Fix error reporting in scanf input specifier tests
Remove buffer contents reporting from the real variant of 'verify_input' where there has been an input data format error making the contents of data buffers irrelevant. For example given invalid float input data: %a:nan:1:3:nan(: these messages are produced: error: ./tst-scanf-format-skeleton.c:240: input buffer: `0000c07f' error: ./tst-scanf-format-skeleton.c:240: value buffer: `0000c07f' error: ./tst-scanf-format-skeleton.c:242: input line 1: input data format error with the two former lines irrelevant. Remove them from output then, only leaving: error: ./tst-scanf-format-skeleton.c:242: input line 1: input data format error No test case added as it's a test case issue in the first place. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--stdio-common/tst-scanf-format-real.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/stdio-common/tst-scanf-format-real.h b/stdio-common/tst-scanf-format-real.h
index ed79418..fc7f39e 100644
--- a/stdio-common/tst-scanf-format-real.h
+++ b/stdio-common/tst-scanf-format-real.h
@@ -79,13 +79,13 @@
initialize_value (v); \
/* Make sure it's been committed. */ \
__asm__ ("" : : : "memory"); \
+ \
v = read_real (&errx); \
if (errx < 0) \
goto out; \
- match = compare_real (val, v); \
\
-out: \
- if (errx || !match) \
+ match = compare_real (val, v); \
+ if (!match) \
{ \
union \
{ \
@@ -104,6 +104,7 @@ out: \
printf ("'\n"); \
} \
\
+out: \
*errp = errx; \
match; \
})