]> git.ipfire.org Git - thirdparty/glibc.git/commit
stdio-common: Fix macro parameter shadowing in scanf input specifier tests master
authorMaciej W. Rozycki <macro@redhat.com>
Mon, 11 Aug 2025 16:42:12 +0000 (17:42 +0100)
committerMaciej W. Rozycki <macro@redhat.com>
Mon, 11 Aug 2025 16:42:12 +0000 (17:42 +0100)
commitbc5cf785436ad988fefce7e9ea6b6b4df2a094d2
tree86040380ecf4c4438849e0f7b6071718ceded358
parent1c1f5e8f6d928d6e1f7bd8982a0793f51825c7ec
stdio-common: Fix macro parameter shadowing in scanf input specifier tests

The use of the same name for a local variable combined with passing a
pointer to it to a nested macro call causes the wrong 'err' variable to
be updated in 'read_real', because '&err' is only expanded at '*errp'
evaluation.  Consequently the variable defined in 'read_real' is set
rather than one in its 'verify_input' caller as it would be the case
should 'read_real' be a function, leading to invalid input such as:

%a:nan:1:3:nan(:

to be accepted.

Address the issue by renaming the 'err' variable in 'verify_input' to
'errx', causing such input to be correctly rejected:

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>
stdio-common/tst-scanf-format-real.h