mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08: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> |
||
---|---|---|
asm | ||
autoconf | ||
common | ||
config | ||
contrib | ||
disasm | ||
doc | ||
headers | ||
include | ||
macros | ||
misc | ||
Mkfiles | ||
nasmlib | ||
nsis | ||
output | ||
perllib | ||
rdoff | ||
stdlib | ||
test | ||
tools | ||
travis | ||
x86 | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
CHANGES | ||
configure.ac | ||
INSTALL | ||
LICENSE | ||
Makefile.in | ||
nasm.spec.in | ||
nasm.spec.sed | ||
nasm.txt | ||
ndisasm.txt | ||
README.md | ||
SubmittingPatches | ||
version | ||
version.pl |
NASM, the Netwide Assembler
Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).
Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.
Visit our nasm.us website for more details.
With best regards, the NASM crew.