diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-07-05 12:58:40 -0300 |
---|---|---|
committer | Arjun Shankar <arjun@redhat.com> | 2022-11-25 15:16:27 +0100 |
commit | cad7947db7f464506773a10aa88655ce2d9cf9a0 (patch) | |
tree | 65a089f4d0394a23b2a23029b136398a17a37a2b /elf | |
parent | e9eb987894007cf928a0a31df25a5d0435fb7911 (diff) | |
download | glibc-cad7947db7f464506773a10aa88655ce2d9cf9a0.zip glibc-cad7947db7f464506773a10aa88655ce2d9cf9a0.tar.gz glibc-cad7947db7f464506773a10aa88655ce2d9cf9a0.tar.bz2 |
elf: Fix wrong fscanf usage on tst-pldd
The fix done b2cd93fce666fdc8c9a5c64af2741a8a6940ac99 does not really
work since macro strification does not expand the sizeof nor the
arithmetic operation.
Checked on x86_64-linux-gnu.
(cherry picked from commit c353689e49e72f3aafa1a9e68d4f7a4f33a79cbe)
Diffstat (limited to 'elf')
-rw-r--r-- | elf/tst-pldd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c index 0616545..9f633d4 100644 --- a/elf/tst-pldd.c +++ b/elf/tst-pldd.c @@ -108,15 +108,16 @@ do_test (void) loader and libc. */ { pid_t pid; - char buffer[512]; -#define STRINPUT(size) "%" # size "s" +#define BUFFERLEN 511 + char buffer[BUFFERLEN + 1]; +#define STRINPUT(size) XSTRINPUT(size) +#define XSTRINPUT(size) "%" # size "s" FILE *out = fmemopen (pldd.out.buffer, pldd.out.length, "r"); TEST_VERIFY (out != NULL); /* First line is in the form of <pid>: <full path of executable> */ - TEST_COMPARE (fscanf (out, "%u: " STRINPUT (sizeof (buffer) - 1), &pid, - buffer), 2); + TEST_COMPARE (fscanf (out, "%u: " STRINPUT (BUFFERLEN), &pid, buffer), 2); TEST_COMPARE (pid, *target_pid_ptr); TEST_COMPARE (strcmp (basename (buffer), "tst-pldd"), 0); |