]> git.ipfire.org Git - thirdparty/gettext.git/commit
xgettext: In language EmacsLisp, avoid stack overflow, part 2.
authorBruno Haible <bruno@clisp.org>
Tue, 7 Mar 2023 22:45:32 +0000 (23:45 +0100)
committerBruno Haible <bruno@clisp.org>
Thu, 9 Mar 2023 10:40:25 +0000 (11:40 +0100)
commit85c8fb4d0868898e8d96c8c7c8aaf3001874ee01
tree0eb9574181fcede4c58c619391bc8902cdb1a715
parent00dc0785631a842c49c1f740fd482bec0a39fa03
xgettext: In language EmacsLisp, avoid stack overflow, part 2.

* gettext-tools/src/x-elisp.c (escape_nesting_depth): New variable.
(do_getc_escaped): Increase escape_nesting_depth before calling do_getc_escaped
recursively. Check escape_nesting_depth.
(extract_elisp): Initialize escape_nesting_depth.
* gettext-tools/tests/xgettext-elisp-stackovfl-3: New file.
* gettext-tools/tests/xgettext-elisp-stackovfl-4: New file.
* gettext-tools/tests/testdata/xg-el-so-3.el: New file.
* gettext-tools/tests/testdata/xg-el-so-4.el: New file.
* gettext-tools/tests/Makefile.am (TESTS, EXTRA_DIST): Add them.
gettext-tools/src/x-elisp.c
gettext-tools/tests/Makefile.am
gettext-tools/tests/testdata/xg-el-so-3.el [new file with mode: 0644]
gettext-tools/tests/testdata/xg-el-so-4.el [new file with mode: 0644]
gettext-tools/tests/xgettext-elisp-stackovfl-3 [new file with mode: 0755]
gettext-tools/tests/xgettext-elisp-stackovfl-4 [new file with mode: 0755]