efi_selftest: block device: avoid read after free

Reading the position in a file after closing the same results in a read
after free.

Correct the sequence in the test.

Reported-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Heinrich Schuchardt 2018-12-22 00:37:41 +01:00 committed by Alexander Graf
parent 1f2e948d6d
commit 05aceb2b1c

View file

@ -445,11 +445,6 @@ static int execute(void)
efi_st_error("Failed to write file\n");
return EFI_ST_FAILURE;
}
ret = file->close(file);
if (ret != EFI_SUCCESS) {
efi_st_error("Failed to close file\n");
return EFI_ST_FAILURE;
}
ret = file->getpos(file, &pos);
if (ret != EFI_SUCCESS) {
efi_st_error("GetPosition failed\n");
@ -460,6 +455,11 @@ static int execute(void)
(unsigned int)pos);
return EFI_ST_FAILURE;
}
ret = file->close(file);
if (ret != EFI_SUCCESS) {
efi_st_error("Failed to close file\n");
return EFI_ST_FAILURE;
}
/* Verify file */
boottime->set_mem(buf, sizeof(buf), 0);