[ACPI] acpi_create_registry_table(): Close the key handle, on errors (#3372)
authorSerge Gautherie <32623169+SergeGautherie@users.noreply.github.com>
Thu, 31 Dec 2020 14:42:42 +0000 (15:42 +0100)
committerGitHub <noreply@github.com>
Thu, 31 Dec 2020 14:42:42 +0000 (17:42 +0300)
Addendum to 44f1cf1 (r74559). CORE-12942

drivers/bus/acpi/busmgr/utils.c

index dfe2164..fc41f34 100644 (file)
@@ -415,6 +415,7 @@ acpi_create_registry_table(HANDLE ParentKeyHandle, ACPI_TABLE_HEADER *OutTable,
         if (!NT_SUCCESS(Status))
         {
             DPRINT1("RtlAnsiStringToUnicodeString() for %s failed (Status 0x%08lx)\n", HardwareKeyNameA, Status);
+            ZwClose(KeyHandle);
             return Status;
         }
 
@@ -444,6 +445,7 @@ acpi_create_registry_table(HANDLE ParentKeyHandle, ACPI_TABLE_HEADER *OutTable,
         if (!NT_SUCCESS(Status))
         {
             DPRINT1("RtlAnsiStringToUnicodeString() for %s failed (Status 0x%08lx)\n", HardwareKeyNameA, Status);
+            ZwClose(KeyHandle);
             return Status;
         }
 
@@ -475,6 +477,7 @@ acpi_create_registry_table(HANDLE ParentKeyHandle, ACPI_TABLE_HEADER *OutTable,
         if (!NT_SUCCESS(Status))
         {
             DPRINT1("RtlStringCbPrintfW() for 0x%08lx failed (Status 0x%08lx)\n", OutTable->OemRevision, Status);
+            ZwClose(KeyHandle);
             return Status;
         }
         RtlInitUnicodeString(&HardwareKeyName, OemRevision);