diff options
author | DonĂ¡t Nagy <donat.nagy@ericsson.com> | 2025-09-11 17:57:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-11 17:57:22 +0200 |
commit | b642e8bfbb89c45ea7073ba9db5d1e31a6542e3c (patch) | |
tree | ab0b0322f8241d8333881c5a33340c0b512810d3 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | |
parent | 3270d98641e29e25f7a34e42baf853c2816e25b0 (diff) | |
download | llvm-b642e8bfbb89c45ea7073ba9db5d1e31a6542e3c.zip llvm-b642e8bfbb89c45ea7073ba9db5d1e31a6542e3c.tar.gz llvm-b642e8bfbb89c45ea7073ba9db5d1e31a6542e3c.tar.bz2 |
[analyzer] Improve messaging in security.VAList (#157846)
Previously the checker `security.VAList` only tracked the set of the
inintialized `va_list` objects; this commit replaces this with a mapping
that can distinguish the "uninitialized" `va_list` objects from the
"already released" ones. Moreover, a new "unknown" state is introduced
to replace the slightly hacky solutions that checked the `Symbolic`
nature of the region.
In addition to sligthly improving the messages, this commit also
prepares the ground for a follow-up change that would introduce an
"indeterminate" state (which needs `va_end` but cannot be otherwise
used) to model the requirements of SEI CERT rule MSC39-C, which states:
> The va_list may be passed as an argument to another function, but
> calling va_arg() within that function causes the va_list to have an
> indeterminate value in the calling function. As a result, attempting
> to read variable arguments without reinitializing the va_list can have
> unexpected behavior.
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
0 files changed, 0 insertions, 0 deletions