From da2a2581c43dcad228bc89bce24d0cafa3b485f3 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Sat, 23 Aug 2025 01:02:10 +0100 Subject: [PATCH] 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 --- stdio-common/tst-scanf-format-real.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/stdio-common/tst-scanf-format-real.h b/stdio-common/tst-scanf-format-real.h index ed7941849e..fc7f39e760 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; \ }) -- 2.47.3