diff options
author | Dmitry Goncharov <dgoncharov@users.sf.net> | 2022-08-22 21:27:08 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2022-08-22 21:27:08 -0400 |
commit | 10e130b20793f650835085d5ebe85e4ad0c83654 (patch) | |
tree | ffe4101c7e6b46a44e9c50e85b48c364bd7276dd /tests | |
parent | 62da1c45e51f90892dd785fbdd42aeff769defb6 (diff) | |
download | make-git-10e130b20793f650835085d5ebe85e4ad0c83654.tar.gz |
[SV 62908] Don't free fifo_name twice during error handling
* src/posixos.c (jobserver_setup): Set fifo_name to NULL after free.
* tests/scripts/features/jobserver: Add tests.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scripts/features/jobserver | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/scripts/features/jobserver b/tests/scripts/features/jobserver index 7044c51a..17374eaf 100644 --- a/tests/scripts/features/jobserver +++ b/tests/scripts/features/jobserver @@ -131,4 +131,19 @@ all a: ; @echo $@ '--jobserver-style=foo -j8', "#MAKE#: *** Unknown jobserver auth style 'foo'. Stop.", 512); +# sv 62908. +# Test that when mkfifo fails, make switches to pipe and succeeds. +# Force mkfifo to fail by attempting to create a fifo in a non existent +# directory. +# run_make_test does not allow matching a multiline pattern, therefore run the +# test twice. +# First time look for /$ERR_no_such_file/ to ensure mkfifo failed. +# Second time look for /Nothing to be done/ to ensure make succeeded. +$ENV{TMPDIR} = "nosuchdir"; +run_make_test("all:\n", '-j2', "/$ERR_no_such_file/"); + +$ENV{TMPDIR} = "nosuchdir"; +run_make_test(undef, '-j2', "/Nothing to be done/"); + + 1; |