diff options
author | Paul Smith <psmith@gnu.org> | 2023-01-03 02:14:24 -0500 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2023-01-03 02:14:24 -0500 |
commit | 5ae02ff8c10e611aca7d5c6f60d3461aa0746694 (patch) | |
tree | d303732dc24ff23150a400172cbfb132e31afba3 /tests | |
parent | 1ceeb8c64bf2a95bdfc5e5bd221886c6df74f560 (diff) | |
download | make-git-5ae02ff8c10e611aca7d5c6f60d3461aa0746694.tar.gz |
[SV 63609] Avoid buffer overrun in --warn-undefined-variables
Reported by Dmitry Goncharov <dgoncharov@users.sf.net>
* src/variable.c (struct defined_vars): Create a struct that holds the
name and length of each variable name.
(warn_undefined): Check the lengths before comparing the contents.
* tests/scripts/options/warn-undefined-variables: Add a test.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scripts/options/warn-undefined-variables | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/scripts/options/warn-undefined-variables b/tests/scripts/options/warn-undefined-variables index 9bd40865..d9653d2c 100644 --- a/tests/scripts/options/warn-undefined-variables +++ b/tests/scripts/options/warn-undefined-variables @@ -35,4 +35,15 @@ run_make_test(undef, '--warn-undefined-variables', #MAKEFILE#:9: warning: undefined variable 'UNDEFINED' ref"); +# sv 63609. +# Test for buffer overrun in warn_undefined. +run_make_test(q! +all:; +X := $(averyveryverylongvariablename) +!, + '--warn-undefined-variables', + "#MAKEFILE#:3: warning: undefined variable 'averyveryverylongvariablename' +#MAKE#: 'all' is up to date.\n" +); + 1; |