• Erik Kaneda's avatar
    ACPICA: Interpreter: fix memory leak by using existing buffer · 32cf1a12
    Erik Kaneda authored
    ACPICA commit 52d1da5dcbd79a722b70f02a1a83f04088f51ff6
    
    There was a memory leak that ocurred when a _CID object is defined as
    a package containing string objects. When _CID is checked for any
    possible repairs, it calls a helper function to repair _HID (because
    _CID basically contains multiple _HID entries).
    
    The _HID repair function assumes that string objects are standalone
    objects that are not contained inside of any packages. The _HID
    repair function replaces the string object with a brand new object
    and attempts to delete the old object by decrementing the reference
    count of the old object. Strings inside of packages have a reference
    count of 2 so the _HID repair function leaves this object in a
    dangling state and causes a memory leak.
    
    Instead of allocating a brand new object and removing the old object,
    use the existing object when repairing the _HID object.
    
    Link: https://github.com/acpica/acpica/commit/52d1da5dSigned-off-by: default avatarErik Kaneda <erik.kaneda@intel.com>
    Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    32cf1a12
nsrepair2.c 28.6 KB