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>
diff --git a/lib/efi_selftest/efi_selftest_block_device.c b/lib/efi_selftest/efi_selftest_block_device.c
index d4e4fac..f038da9 100644
--- a/lib/efi_selftest/efi_selftest_block_device.c
+++ b/lib/efi_selftest/efi_selftest_block_device.c
@@ -445,11 +445,6 @@
 		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 @@
 			     (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);