audk/MdeModulePkg/Universal/Disk/UdfDxe
Hao Wu 68099b52b0 MdeModulePkg/UdfDxe: Avoid possible use of already-freed data
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1255

For function ReadFile():

If the line

  Status = GetAedAdsData (
   ...
   );

is reached multiple times during the 'for' loop, freeing the data pointed
by variable 'Data' may potentially lead to variable 'Ad' referencing the
already-freed data.

After calling function GetAllocationDescriptor(), 'Data' and 'Ad' may
point to the same memory (with some possible offset). Hence, this commit
will move the FreePool() call backwards to ensure the data will no longer
be used.

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Paulo Alcantara <palcantara@suse.de>
Acked-by: Star Zeng <star.zeng@intel.com>
2018-10-23 14:25:04 +08:00
..
ComponentName.c MdeModulePkg: Initial UDF/ECMA-167 file system support 2017-09-08 20:42:49 +02:00
File.c MdeModulePkg/UdfDxe: Update GetInfo() for FS VolumeLabel info request 2018-10-23 14:24:50 +08:00
FileName.c MdeModulePkg/Udf: Refine function description comments 2017-09-19 12:43:58 +08:00
FileSystemOperations.c MdeModulePkg/UdfDxe: Avoid possible use of already-freed data 2018-10-23 14:25:04 +08:00
Udf.c MdeModulePkg/UDF: Fix creation of UDF logical partition 2017-09-25 15:36:27 +08:00
Udf.h MdeModulePkg/UdfDxe: Update GetInfo() for FS VolumeLabel info request 2018-10-23 14:24:50 +08:00
UdfDxe.inf MdeModulePkg/UdfDxe: Update GetInfo() for FS VolumeLabel info request 2018-10-23 14:24:50 +08:00