diff --git a/reactos/dll/win32/lsasrv/lsasrv.c b/reactos/dll/win32/lsasrv/lsasrv.c index 468b92cd892..edbe229acf9 100644 --- a/reactos/dll/win32/lsasrv/lsasrv.c +++ b/reactos/dll/win32/lsasrv/lsasrv.c @@ -34,6 +34,16 @@ LsaIFree_LSAPR_ACCOUNT_ENUM_BUFFER( } +VOID +NTAPI +LsaIFree_LSAPR_CR_CIPHER_VALUE( + IN PLSAPR_CR_CIPHER_VALUE Ptr) +{ + if (Ptr != NULL) + midl_user_free(Ptr); +} + + VOID NTAPI LsaIFree_LSAPR_POLICY_INFORMATION(IN POLICY_INFORMATION_CLASS InformationClass, @@ -141,6 +151,29 @@ LsaIFree_LSAPR_POLICY_INFORMATION(IN POLICY_INFORMATION_CLASS InformationClass, } +VOID +NTAPI +LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER( + IN PLSAPR_PRIVILEGE_ENUM_BUFFER Ptr) +{ + ULONG i; + + if (Ptr != NULL) + { + if (Ptr->Privileges != NULL) + { + for (i = 0; i < Ptr->Entries; i++) + { + if (Ptr->Privileges[i].Name.Buffer != NULL) + midl_user_free(Ptr->Privileges[i].Name.Buffer); + } + + midl_user_free(Ptr->Privileges); + } + } +} + + VOID NTAPI LsaIFree_LSAPR_PRIVILEGE_SET(IN PLSAPR_PRIVILEGE_SET Ptr) @@ -152,6 +185,34 @@ LsaIFree_LSAPR_PRIVILEGE_SET(IN PLSAPR_PRIVILEGE_SET Ptr) } +VOID +NTAPI +LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST( + IN PLSAPR_REFERENCED_DOMAIN_LIST Ptr) +{ + ULONG i; + + if (Ptr != NULL) + { + if (Ptr->Domains != NULL) + { + for (i = 0; i < Ptr->Entries; i++) + { + if (Ptr->Domains[i].Name.Buffer != NULL) + midl_user_free(Ptr->Domains[i].Name.Buffer); + + if (Ptr->Domains[i].Sid != NULL) + midl_user_free(Ptr->Domains[i].Sid); + } + + midl_user_free(Ptr->Domains); + } + + midl_user_free(Ptr); + } +} + + NTSTATUS WINAPI LsapInitLsa(VOID) { diff --git a/reactos/dll/win32/lsasrv/lsasrv.spec b/reactos/dll/win32/lsasrv/lsasrv.spec index 286afbf1deb..b53f937fcf1 100644 --- a/reactos/dll/win32/lsasrv/lsasrv.spec +++ b/reactos/dll/win32/lsasrv/lsasrv.spec @@ -32,12 +32,12 @@ @ stub LsaIFree_LSAI_PRIVATE_DATA #DATA @ stub LsaIFree_LSAI_SECRET_ENUM_BUFFER @ stdcall LsaIFree_LSAPR_ACCOUNT_ENUM_BUFFER(ptr) - @ stub LsaIFree_LSAPR_CR_CIPHER_VALUE + @ stdcall LsaIFree_LSAPR_CR_CIPHER_VALUE(ptr) @ stub LsaIFree_LSAPR_POLICY_DOMAIN_INFORMATION @ stdcall LsaIFree_LSAPR_POLICY_INFORMATION(long ptr) - @ stub LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER + @ stdcall LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER(ptr) @ stdcall LsaIFree_LSAPR_PRIVILEGE_SET(ptr) - @ stub LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST + @ stdcall LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST(ptr) @ stub LsaIFree_LSAPR_SR_SECURITY_DESCRIPTOR @ stub LsaIFree_LSAPR_TRANSLATED_NAMES @ stub LsaIFree_LSAPR_TRANSLATED_SIDS