efi_selftest: reduce noise in test output for device trees

Some messages are only useful if an error occurs.
Fix a use after free.
Add a missing free.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
master
Heinrich Schuchardt 6 years ago committed by Alexander Graf
parent 9dfd84da8c
commit 003876d469
  1. 23
      lib/efi_selftest/efi_selftest_devicepath.c

@ -319,7 +319,6 @@ static int execute(void)
efi_st_error("FreePool failed\n"); efi_st_error("FreePool failed\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
efi_st_printf("\n");
/* Test ConvertDevicePathToText */ /* Test ConvertDevicePathToText */
string = device_path_to_text->convert_device_path_to_text( string = device_path_to_text->convert_device_path_to_text(
@ -328,15 +327,14 @@ static int execute(void)
efi_st_error("ConvertDevicePathToText failed\n"); efi_st_error("ConvertDevicePathToText failed\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
efi_st_printf("dp2: %ps\n", string);
if (efi_st_strcmp_16_8( if (efi_st_strcmp_16_8(
string, string,
"/VenHw(dbca4c98-6cb0-694d-0872-819c650cbbb1)/VenHw(dbca4c98-6cb0-694d-0872-819c650cbba2)") "/VenHw(dbca4c98-6cb0-694d-0872-819c650cbbb1)/VenHw(dbca4c98-6cb0-694d-0872-819c650cbba2)")
) { ) {
efi_st_printf("dp2: %ps\n", string);
efi_st_error("Incorrect text from ConvertDevicePathToText\n"); efi_st_error("Incorrect text from ConvertDevicePathToText\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
ret = boottime->free_pool(string); ret = boottime->free_pool(string);
if (ret != EFI_SUCCESS) { if (ret != EFI_SUCCESS) {
efi_st_error("FreePool failed\n"); efi_st_error("FreePool failed\n");
@ -350,17 +348,17 @@ static int execute(void)
efi_st_error("ConvertDeviceNodeToText failed\n"); efi_st_error("ConvertDeviceNodeToText failed\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
efi_st_printf("dp_node: %ps\n", string);
ret = boottime->free_pool(string);
if (ret != EFI_SUCCESS) {
efi_st_error("FreePool failed\n");
return EFI_ST_FAILURE;
}
if (efi_st_strcmp_16_8(string, "u-boot")) { if (efi_st_strcmp_16_8(string, "u-boot")) {
efi_st_printf("dp_node: %ps\n", string);
efi_st_error( efi_st_error(
"Incorrect conversion by ConvertDeviceNodeToText\n"); "Incorrect conversion by ConvertDeviceNodeToText\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
ret = boottime->free_pool(string);
if (ret != EFI_SUCCESS) {
efi_st_error("FreePool failed\n");
return EFI_ST_FAILURE;
}
/* Test LocateDevicePath */ /* Test LocateDevicePath */
remaining_dp = (struct efi_device_path *)dp3; remaining_dp = (struct efi_device_path *)dp3;
@ -380,13 +378,18 @@ static int execute(void)
efi_st_error("ConvertDevicePathToText failed\n"); efi_st_error("ConvertDevicePathToText failed\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
efi_st_printf("remaining device path: %ps\n", string);
if (efi_st_strcmp_16_8(string, if (efi_st_strcmp_16_8(string,
"/VenHw(dbca4c98-6cb0-694d-0872-819c650cbbc3)") "/VenHw(dbca4c98-6cb0-694d-0872-819c650cbbc3)")
) { ) {
efi_st_printf("remaining device path: %ps\n", string);
efi_st_error("LocateDevicePath: wrong remaining device path\n"); efi_st_error("LocateDevicePath: wrong remaining device path\n");
return EFI_ST_FAILURE; return EFI_ST_FAILURE;
} }
ret = boottime->free_pool(string);
if (ret != EFI_SUCCESS) {
efi_st_error("FreePool failed\n");
return EFI_ST_FAILURE;
}
return EFI_ST_SUCCESS; return EFI_ST_SUCCESS;
} }

Loading…
Cancel
Save