[USBAUDIO]
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Sat, 22 Oct 2016 12:34:03 +0000 (12:34 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Sat, 22 Oct 2016 12:34:03 +0000 (12:34 +0000)
- fix warnings & leaks based on Thomas feedback

svn path=/trunk/; revision=73020

reactos/drivers/usb/usbaudio/filter.c
reactos/drivers/usb/usbaudio/pin.c

index 880a9d4..b544b10 100644 (file)
@@ -1083,6 +1083,11 @@ USBAudioGetDescriptor(
         /* store result */
         *OutDescriptor = Descriptor;
     }
+    else
+    {
+        /* failed */
+        FreeFunction(Descriptor);
+    }
 
     /* done */
     return Status;
@@ -1098,7 +1103,6 @@ USBAudioGetStringDescriptor(
     OUT PVOID *OutDescriptor)
 {
     NTSTATUS Status;
-    PUSB_STRING_DESCRIPTOR StringDescriptor;
 
     /* retrieve descriptor */
     Status = USBAudioGetDescriptor(DeviceObject, USB_STRING_DESCRIPTOR_TYPE, DescriptorLength, DescriptorIndex, LanguageId, OutDescriptor);
@@ -1124,14 +1128,14 @@ USBAudioRegCreateMediaCategoriesKey(
     RtlInitUnicodeString(&DestinationString, L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\MediaCategories\\");
 
     /* initialize object attributes */
-    InitializeObjectAttributes(&ObjectAttributes, &DestinationString, OBJ_CASE_INSENSITIVE | OBJ_OPENIF, NULL, NULL);
+    InitializeObjectAttributes(&ObjectAttributes, &DestinationString, OBJ_CASE_INSENSITIVE | OBJ_OPENIF | OBJ_KERNEL_HANDLE, NULL, NULL);
 
     /* create the key */
     Status = ZwOpenKey(&Handle, KEY_ALL_ACCESS, &ObjectAttributes);
     if (NT_SUCCESS(Status))
     {
         /* initialize object attributes */
-        InitializeObjectAttributes(&ObjectAttributes, Name, OBJ_CASE_INSENSITIVE, Handle, NULL);
+        InitializeObjectAttributes(&ObjectAttributes, Name, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, Handle, NULL);
 
         Status = ZwCreateKey(OutHandle, KEY_ALL_ACCESS, &ObjectAttributes, 0, NULL, 0, NULL);
         ZwClose(Handle);
@@ -1228,8 +1232,8 @@ USBAudioCreateFilterContext(
     if (!NT_SUCCESS(Status))
     {
         /* failed*/
-        //FreeFunction(ComponentId);
-        //return Status;
+        FreeFunction(ComponentId);
+        return Status;
     }
     FilterDescriptor->ComponentId = ComponentId;
 
@@ -1247,8 +1251,8 @@ USBAudioCreateFilterContext(
     if (!NT_SUCCESS(Status))
     {
         /* failed*/
-        //FreeFunction(ComponentId);
-        //return Status;
+        FreeFunction(ComponentId);
+        return Status;
     }
 
     /* lets create the filter */
index 353df9b..180f14a 100644 (file)
@@ -789,7 +789,6 @@ PinCaptureProcess(
     PPIN_CONTEXT PinContext;
     PLIST_ENTRY CurEntry;
     PIRP Irp;
-    PIO_STACK_LOCATION IoStack;
     PURB Urb;
     PUCHAR TransferBuffer, OutBuffer;
     ULONG Offset, Length;
@@ -827,7 +826,6 @@ PinCaptureProcess(
         Irp = (PIRP)CONTAINING_RECORD(CurEntry, IRP, Tail.Overlay.ListEntry);
 
         /* get urb from irp */
-        IoStack = IoGetNextIrpStackLocation(Irp);
         Urb = (PURB)Irp->Tail.Overlay.DriverContext[0];
         ASSERT(Urb);
 
@@ -882,6 +880,7 @@ PinCaptureProcess(
         else
         {
             Status = KsStreamPointerAdvanceOffsets(LeadingStreamPointer, 0, Length, FALSE);
+            NT_ASSERT(NT_SUCCESS(Status));
             ASSERT(Length == Urb->UrbIsochronousTransfer.TransferBufferLength - Offset);
         }
 
@@ -1102,7 +1101,7 @@ UsbAudioPinDataIntersect(
     }
 
     /* get pin descriptor */
-    PinDescriptor = &Filter->Descriptor->PinDescriptors[Pin->PinId];
+    PinDescriptor = (PKSPIN_DESCRIPTOR_EX)&Filter->Descriptor->PinDescriptors[Pin->PinId];
 
     *DataSize = sizeof(KSDATAFORMAT_WAVEFORMATEX);
     if (DataBufferSize == 0)