From cf68c63f61d5f598faee70a1197a7602c73b1fb3 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Fri, 4 Sep 2015 13:58:44 +0000 Subject: [PATCH] [MUP] Fix uninitialized address freeing in case of error in MupGetProviderInformation(), InitializeProvider() CID 1322227 CID 1322240 svn path=/trunk/; revision=68990 --- reactos/drivers/filesystems/mup/mup.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/reactos/drivers/filesystems/mup/mup.c b/reactos/drivers/filesystems/mup/mup.c index 674a25dfe16..c1535a3ec55 100644 --- a/reactos/drivers/filesystems/mup/mup.c +++ b/reactos/drivers/filesystems/mup/mup.c @@ -950,6 +950,10 @@ InitializeProvider(PCWSTR ProviderName, Status = ZwQueryValueKey(KeyHandle, &Value, KeyValueFullInformation, Info, ResultLength, &ResultLength); } + else + { + Info = NULL; + } ZwClose(KeyHandle); @@ -959,6 +963,7 @@ InitializeProvider(PCWSTR ProviderName, */ if (NT_SUCCESS(Status)) { + ASSERT(Info != NULL); AddUnregisteredProvider((PWSTR)((ULONG_PTR)Info + Info->DataOffset), ProviderOrder); } @@ -1006,11 +1011,17 @@ MupGetProviderInformation(VOID) Status = ZwQueryValueKey(KeyHandle, &ProviderOrder, KeyValueFullInformation, Info, ResultLength, &ResultLength); } + else + { + Info = NULL; + } ZwClose(KeyHandle); if (NT_SUCCESS(Status)) { + ASSERT(Info != NULL); + Providers = (PWSTR)((ULONG_PTR)Info + Info->DataOffset); End = FALSE; ProviderCount = 0;