Skip to content

Commit 274abac

Browse files
authored
Merge pull request #2069 from Unity-Technologies/bugfix/oob-coverage-info-write
Fix memory overwrite when performing nested inlines with code coverag…
2 parents 6a9c5a3 + f7a9760 commit 274abac

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

mono/mini/method-to-ir.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4602,6 +4602,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
46024602
MonoMethod *prev_current_method;
46034603
MonoGenericContext *prev_generic_context;
46044604
gboolean ret_var_set, prev_ret_var_set, prev_disable_inline, virtual_ = FALSE;
4605+
MonoProfilerCoverageInfo *prev_coverage_info;
46054606

46064607
g_assert (cfg->exception_type == MONO_EXCEPTION_NONE);
46074608

@@ -4675,6 +4676,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
46754676
prev_current_method = cfg->current_method;
46764677
prev_generic_context = cfg->generic_context;
46774678
prev_disable_inline = cfg->disable_inline;
4679+
prev_coverage_info = cfg->coverage_info;
46784680

46794681
cfg->ret_var_set = FALSE;
46804682
cfg->inline_depth ++;
@@ -4699,6 +4701,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
46994701
cfg->generic_context = prev_generic_context;
47004702
cfg->ret_var_set = prev_ret_var_set;
47014703
cfg->disable_inline = prev_disable_inline;
4704+
cfg->coverage_info = prev_coverage_info;
47024705
cfg->inline_depth --;
47034706

47044707
if ((costs >= 0 && costs < 60) || inline_always || (costs >= 0 && (cmethod->iflags & METHOD_IMPL_ATTRIBUTE_AGGRESSIVE_INLINING))) {

0 commit comments

Comments
 (0)