diff options
author | John Hodge <tpg@mutabah.net> | 2019-10-26 10:53:35 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2019-10-26 10:53:35 +0800 |
commit | 1c606bc9ecac07dcce78cd3f8b5971a0b94f6d9b (patch) | |
tree | 74e864fc4d35483173a60975875387c24ba9f6e4 /src | |
parent | d0e905bc00ea805a73fa116c68e25a2a66d221ad (diff) | |
download | mrust-1c606bc9ecac07dcce78cd3f8b5971a0b94f6d9b.tar.gz |
HIR Typecheck Expr - Avoid use-after-free in handling of integer operations
Diffstat (limited to 'src')
-rw-r--r-- | src/hir_typeck/expr_cs.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp index f5ef9fc6..6f6e7703 100644 --- a/src/hir_typeck/expr_cs.cpp +++ b/src/hir_typeck/expr_cs.cpp @@ -6635,8 +6635,13 @@ namespace { if( H::type_is_num(left) && H::type_is_num(right) ) { DEBUG("- Magic inferrence link for binops on numerics"); context.equate_types(sp, res, left); + const auto& right = context.get_type(v.params.m_types.at(0)); + context.equate_types_to_shadow(sp, right); + } + else + { + context.equate_types_to_shadow(sp, right); } - context.equate_types_to_shadow(sp, right); } else { |