From: Colin Ian King <[email protected]>

ACPICA commit 23e644670539e23818fa81e2af5e89ad6657e75c

A failed allocation of new_buffer causes a leak of pld_info
because the error return path fails to free pld_info. Ensure
it is freed on the error exit path.

Link: https://github.com/acpica/acpica/commit/23e64467
Signed-off-by: Colin Ian King <[email protected]>
Signed-off-by: Bob Moore <[email protected]>
Signed-off-by: Lv Zheng <[email protected]>
---
 drivers/acpi/acpica/dbconvert.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/acpica/dbconvert.c b/drivers/acpi/acpica/dbconvert.c
index 9fee88f..68f4e0f4 100644
--- a/drivers/acpi/acpica/dbconvert.c
+++ b/drivers/acpi/acpica/dbconvert.c
@@ -408,7 +408,7 @@ void acpi_db_dump_pld_buffer(union acpi_object *obj_desc)
 
        new_buffer = acpi_db_encode_pld_buffer(pld_info);
        if (!new_buffer) {
-               return;
+               goto exit;
        }
 
        /* The two bit-packed buffers should match */
@@ -479,6 +479,7 @@ void acpi_db_dump_pld_buffer(union acpi_object *obj_desc)
                               pld_info->horizontal_offset);
        }
 
-       ACPI_FREE(pld_info);
        ACPI_FREE(new_buffer);
+exit:
+       ACPI_FREE(pld_info);
 }
-- 
1.7.10

Reply via email to