Browse Source

ACPICA: debugger: dbconvert: free pld_info on error return path

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 <colin.king@canonical.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Colin Ian King 9 years ago
parent
commit
c340e5f0f8
1 changed files with 3 additions and 2 deletions
  1. 3 2
      drivers/acpi/acpica/dbconvert.c

+ 3 - 2
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);
 	new_buffer = acpi_db_encode_pld_buffer(pld_info);
 	if (!new_buffer) {
 	if (!new_buffer) {
-		return;
+		goto exit;
 	}
 	}
 
 
 	/* The two bit-packed buffers should match */
 	/* 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);
 			       pld_info->horizontal_offset);
 	}
 	}
 
 
-	ACPI_FREE(pld_info);
 	ACPI_FREE(new_buffer);
 	ACPI_FREE(new_buffer);
+exit:
+	ACPI_FREE(pld_info);
 }
 }