summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c')
-rw-r--r--OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c b/OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c
index ac62853026..a548012d9c 100644
--- a/OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c
+++ b/OvmfPkg/VirtioFsDxe/SimpleFsSetPosition.c
@@ -7,6 +7,8 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+#include <Library/MemoryAllocationLib.h> // FreePool()
+
#include "VirtioFsDxe.h"
EFI_STATUS
@@ -31,6 +33,13 @@ VirtioFsSimpleFileSetPosition (
return EFI_UNSUPPORTED;
}
VirtioFsFile->FilePosition = 0;
+ if (VirtioFsFile->FileInfoArray != NULL) {
+ FreePool (VirtioFsFile->FileInfoArray);
+ VirtioFsFile->FileInfoArray = NULL;
+ }
+ VirtioFsFile->SingleFileInfoSize = 0;
+ VirtioFsFile->NumFileInfo = 0;
+ VirtioFsFile->NextFileInfo = 0;
return EFI_SUCCESS;
}