| commit 405b8ae13540e9fd614df614e3361ebf9abd14cf |
| Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> |
| Date: Tue Jul 5 12:58:40 2022 -0300 |
| |
| 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) |
| |
| diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c |
| index 6e4174cbf95b15c0..d3ecb99149d619c6 100644 |
| |
| |
| @@ -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); |