[ros-diffs] [janderwald] 41835: - Fix a bug which was responsible for most audio-related crashes - Found by DosX (Gregor Schneider) - Fix memory leak See issue #4674 for more details.
janderwald at svn.reactos.org
janderwald at svn.reactos.org
Thu Jul 9 23:49:05 CEST 2009
Author: janderwald
Date: Fri Jul 10 01:49:04 2009
New Revision: 41835
URL: http://svn.reactos.org/svn/reactos?rev=41835&view=rev
Log:
- Fix a bug which was responsible for most audio-related crashes
- Found by DosX (Gregor Schneider)
- Fix memory leak
See issue #4674 for more details.
Modified:
trunk/reactos/drivers/ksfilter/ks/topology.c
trunk/reactos/drivers/wdm/audio/sysaudio/control.c
Modified: trunk/reactos/drivers/ksfilter/ks/topology.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/topology.c?rev=41835&r1=41834&r2=41835&view=diff
==============================================================================
--- trunk/reactos/drivers/ksfilter/ks/topology.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/ksfilter/ks/topology.c [iso-8859-1] Fri Jul 10 01:49:04 2009
@@ -19,7 +19,7 @@
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING Name;
- Name.Length = (wcslen(ObjectType) + 1) * sizeof(WCHAR) + CreateParametersSize;
+ Name.Length = Name.MaximumLength = (wcslen(ObjectType) + 1) * sizeof(WCHAR) + CreateParametersSize;
Name.MaximumLength += sizeof(WCHAR);
Name.Buffer = ExAllocatePool(NonPagedPool, Name.MaximumLength);
@@ -52,8 +52,7 @@
NULL,
IO_NO_PARAMETER_CHECKING | IO_FORCE_ACCESS_CHECK);
- // HACK HACK HACK HACK
- //ExFreePool(Name.Buffer);
+ ExFreePool(Name.Buffer);
return Status;
}
Modified: trunk/reactos/drivers/wdm/audio/sysaudio/control.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/sysaudio/control.c?rev=41835&r1=41834&r2=41835&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/sysaudio/control.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/sysaudio/control.c [iso-8859-1] Fri Jul 10 01:49:04 2009
@@ -42,7 +42,7 @@
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING Name;
- Name.Length = (wcslen(ObjectType) + 1) * sizeof(WCHAR) + CreateParametersSize;
+ Name.Length = Name.MaximumLength = (wcslen(ObjectType) + 1) * sizeof(WCHAR) + CreateParametersSize;
Name.MaximumLength += sizeof(WCHAR);
Name.Buffer = ExAllocatePool(NonPagedPool, Name.MaximumLength);
@@ -75,6 +75,8 @@
NULL,
IO_NO_PARAMETER_CHECKING | IO_FORCE_ACCESS_CHECK);
+ ExFreePool(Name.Buffer);
+
return Status;
}
@@ -984,6 +986,7 @@
RtlStringFromGUID(&Property->Set, &GuidString);
DPRINT1("Unhandeled property Set |%S| Id %u Flags %x\n", GuidString.Buffer, Property->Id, Property->Flags);
+ DbgBreakPoint();
RtlFreeUnicodeString(&GuidString);
return SetIrpIoStatus(Irp, STATUS_UNSUCCESSFUL, 0);
}
More information about the Ros-diffs
mailing list