- Free memory at initialization failure

svn path=/trunk/; revision=42981
This commit is contained in:
Dmitry Chapyshev 2009-09-02 13:07:12 +00:00
parent 8954edb33c
commit 631c081835

View file

@ -56,6 +56,40 @@ PSID SeAnonymousLogonSid = NULL;
/* FUNCTIONS ******************************************************************/
VOID
NTAPI
FreeInitializedSids(VOID)
{
if (SeNullSid) ExFreePool(SeNullSid);
if (SeWorldSid) ExFreePool(SeWorldSid);
if (SeLocalSid) ExFreePool(SeLocalSid);
if (SeCreatorOwnerSid) ExFreePool(SeCreatorOwnerSid);
if (SeCreatorGroupSid) ExFreePool(SeCreatorGroupSid);
if (SeCreatorOwnerServerSid) ExFreePool(SeCreatorOwnerServerSid);
if (SeCreatorGroupServerSid) ExFreePool(SeCreatorGroupServerSid);
if (SeNtAuthoritySid) ExFreePool(SeNtAuthoritySid);
if (SeDialupSid) ExFreePool(SeDialupSid);
if (SeNetworkSid) ExFreePool(SeNetworkSid);
if (SeBatchSid) ExFreePool(SeBatchSid);
if (SeInteractiveSid) ExFreePool(SeInteractiveSid);
if (SeServiceSid) ExFreePool(SeServiceSid);
if (SePrincipalSelfSid) ExFreePool(SePrincipalSelfSid);
if (SeLocalSystemSid) ExFreePool(SeLocalSystemSid);
if (SeAuthenticatedUserSid) ExFreePool(SeAuthenticatedUserSid);
if (SeRestrictedCodeSid) ExFreePool(SeRestrictedCodeSid);
if (SeAliasAdminsSid) ExFreePool(SeAliasAdminsSid);
if (SeAliasUsersSid) ExFreePool(SeAliasUsersSid);
if (SeAliasGuestsSid) ExFreePool(SeAliasGuestsSid);
if (SeAliasPowerUsersSid) ExFreePool(SeAliasPowerUsersSid);
if (SeAliasAccountOpsSid) ExFreePool(SeAliasAccountOpsSid);
if (SeAliasSystemOpsSid) ExFreePool(SeAliasSystemOpsSid);
if (SeAliasPrintOpsSid) ExFreePool(SeAliasPrintOpsSid);
if (SeAliasBackupOpsSid) ExFreePool(SeAliasBackupOpsSid);
if (SeAuthenticatedUsersSid) ExFreePool(SeAuthenticatedUsersSid);
if (SeRestrictedSid) ExFreePool(SeRestrictedSid);
if (SeAnonymousLogonSid) ExFreePool(SeAnonymousLogonSid);
}
BOOLEAN
INIT_FUNCTION
NTAPI
@ -99,7 +133,7 @@ SepInitSecurityIDs(VOID)
SeAuthenticatedUsersSid = ExAllocatePoolWithTag(PagedPool, SidLength1, TAG_SID);
SeRestrictedSid = ExAllocatePoolWithTag(PagedPool, SidLength1, TAG_SID);
SeAnonymousLogonSid = ExAllocatePoolWithTag(PagedPool, SidLength1, TAG_SID);
if (SeNullSid == NULL || SeWorldSid == NULL ||
SeLocalSid == NULL || SeCreatorOwnerSid == NULL ||
SeCreatorGroupSid == NULL || SeCreatorOwnerServerSid == NULL ||
@ -115,7 +149,7 @@ SepInitSecurityIDs(VOID)
SeAuthenticatedUsersSid == NULL || SeRestrictedSid == NULL ||
SeAnonymousLogonSid == NULL)
{
/* FIXME: We're leaking memory here. */
FreeInitializedSids();
return(FALSE);
}