diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-09-01 15:55:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-01 15:55:58 -0700 |
commit | 85234cb540c2b2863dfea6c20496dcb451df8889 (patch) | |
tree | a2475df8d4f79a4d04f43cb991b4a4a07b59b9c4 /src/passes/DataFlowOpts.cpp | |
parent | fecfa92d71633f8bb28bb97a60adc9b54998456f (diff) | |
download | binaryen-85234cb540c2b2863dfea6c20496dcb451df8889.tar.gz binaryen-85234cb540c2b2863dfea6c20496dcb451df8889.tar.bz2 binaryen-85234cb540c2b2863dfea6c20496dcb451df8889.zip |
Fix ExceptionPackage memory errors (#3088)
First, adds an explicit destructor call to fix a memory leak in
`Literal::operator=` in which existing `ExceptionPackage`s would be
silently dropped. Next, changes `Literal::getExceptionPackage` to
return the `ExceptionPackage` by value to avoid a use-after-free bug
in the interpreter that was surfaced by the new destructor call.
A future improvement would be to switch to using `std::variant`.
Fixes #3087.
Diffstat (limited to 'src/passes/DataFlowOpts.cpp')
0 files changed, 0 insertions, 0 deletions