From: Pierre Schweitzer Date: Wed, 13 Apr 2016 19:52:42 +0000 (+0000) Subject: [NTFS] X-Git-Tag: ReactOS-0.4.1~69 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=97d46bb60003eb93eb845681a87e4824344c4781;hp=278ccfd7c87fad271c372e80e3572c55b1e4fe61 [NTFS] Don't leak memory in case of failures in NtfsReadDisk(). Based on a patch by Trevor Thompson. CORE-10998 svn path=/trunk/; revision=71155 --- diff --git a/reactos/drivers/filesystems/ntfs/blockdev.c b/reactos/drivers/filesystems/ntfs/blockdev.c index ed1d6420e21..6c90131b19f 100644 --- a/reactos/drivers/filesystems/ntfs/blockdev.c +++ b/reactos/drivers/filesystems/ntfs/blockdev.c @@ -87,6 +87,12 @@ NtfsReadDisk(IN PDEVICE_OBJECT DeviceObject, if (Irp == NULL) { DPRINT("IoBuildSynchronousFsdRequest failed\n"); + + if (AllocatedBuffer) + { + ExFreePoolWithTag(ReadBuffer, TAG_NTFS); + } + return STATUS_INSUFFICIENT_RESOURCES; } @@ -108,9 +114,13 @@ NtfsReadDisk(IN PDEVICE_OBJECT DeviceObject, Status = IoStatus.Status; } - if (NT_SUCCESS(Status) && AllocatedBuffer) + if (AllocatedBuffer) { - RtlCopyMemory(Buffer, ReadBuffer + (StartingOffset - RealReadOffset), Length); + if (NT_SUCCESS(Status)) + { + RtlCopyMemory(Buffer, ReadBuffer + (StartingOffset - RealReadOffset), Length); + } + ExFreePoolWithTag(ReadBuffer, TAG_NTFS); }