EFI_STATUS Status;\r
UINT32 LogicalBlockSize;\r
VOID *Data;\r
+ VOID *DataBak;\r
UINT64 Length;\r
VOID *Ad;\r
UINT64 AdOffset;\r
// Descriptor and its extents (ADs).\r
//\r
if (GET_EXTENT_FLAGS (RecordingFlags, Ad) == ExtentIsNextExtent) {\r
- if (!DoFreeAed) {\r
- DoFreeAed = TRUE;\r
- } else {\r
- FreePool (Data);\r
- }\r
-\r
+ DataBak = Data;\r
Status = GetAedAdsData (\r
BlockIo,\r
DiskIo,\r
&Data,\r
&Length\r
);\r
+\r
+ if (!DoFreeAed) {\r
+ DoFreeAed = TRUE;\r
+ } else {\r
+ FreePool (DataBak);\r
+ }\r
+\r
if (EFI_ERROR (Status)) {\r
goto Error_Get_Aed;\r
}\r