mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-10-10 00:25:06 -04:00
If macro is undefined while it's being expanded, use after free occurs, since the MMacro instance is released, but it is still used to proceed the expansion. This change forbids macro undefinition: non-fatal error is raised and the MMacro instance is not released if it is being processed by NASM preprocessor. Consider the following example: | $ cat test.asm | %macro m 0 | %unmacro m 0 | %endmacro | m | $ ./nasm test.asm | test.asm:4: error: `%unmacro' can't undefine the macro being expanded | test.asm:2: ... from macro `m' defined here Fixes BR3392531 and BR3392716. Signed-off-by: Igor Munkin <imun@cpan.org> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
366 B
366 B