Skip to content
  • U.Nakamura's avatar
    a3e14446
    merge revision(s) 96c5a4be: [Backport #19894] · a3e14446
    U.Nakamura authored
    
    
        Fix memory leak in complemented method entries
    
        [Bug #19894]
    
        When a copy of a complemented method entry is created, there are two
        issues:
    
        1. IMEMO_FL_USER3 is not copied, so the complemented status is not
           copied over.
        2. In rb_method_entry_clone we increment both alias_count and
           complemented_count. However, when we free the method entry in
           rb_method_definition_release, we only decrement one of the two
           counters, resulting in the rb_method_definition_t being leaked.
    
    Co-authored-by: default avatarAdam Hess <adamhess1991@gmail.com>
        ---
         method.h                 |  5 +++--
         test/ruby/test_module.rb | 29 +++++++++++++++++++++++++++++
         vm_method.c              |  8 +++++---
         3 files changed, 37 insertions(+), 5 deletions(-)
    a3e14446
    merge revision(s) 96c5a4be: [Backport #19894]
    U.Nakamura authored
    
    
        Fix memory leak in complemented method entries
    
        [Bug #19894]
    
        When a copy of a complemented method entry is created, there are two
        issues:
    
        1. IMEMO_FL_USER3 is not copied, so the complemented status is not
           copied over.
        2. In rb_method_entry_clone we increment both alias_count and
           complemented_count. However, when we free the method entry in
           rb_method_definition_release, we only decrement one of the two
           counters, resulting in the rb_method_definition_t being leaked.
    
    Co-authored-by: default avatarAdam Hess <adamhess1991@gmail.com>
        ---
         method.h                 |  5 +++--
         test/ruby/test_module.rb | 29 +++++++++++++++++++++++++++++
         vm_method.c              |  8 +++++---
         3 files changed, 37 insertions(+), 5 deletions(-)
Loading