From de4b96ffd6540465792360be7bc2ac18719fd274 Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Thu, 28 Jul 2016 16:14:29 +0100 Subject: [PATCH] NTSTATUS returns STATUS_SUCCESS on success. Technically it isn't correct to check for failure with if (status). --- account.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/account.cpp b/account.cpp index 60d1fc6..96120ac 100644 --- a/account.cpp +++ b/account.cpp @@ -2,6 +2,10 @@ #include +#ifndef STATUS_SUCCESS +#define STATUS_SUCCESS ERROR_SUCCESS +#endif + extern imports_t imports; /* Open Policy object. */ @@ -10,7 +14,7 @@ int open_lsa_policy(LSA_HANDLE *policy) { ZeroMemory(&attributes, sizeof(attributes)); NTSTATUS status = LsaOpenPolicy(0, &attributes, POLICY_ALL_ACCESS, policy); - if (status) { + if (status != STATUS_SUCCESS) { print_message(stderr, NSSM_MESSAGE_LSAOPENPOLICY_FAILED, error_string(LsaNtStatusToWinError(status))); return 1; } @@ -89,7 +93,7 @@ int username_sid(const TCHAR *username, SID **sid, LSA_HANDLE *policy) { #endif HeapFree(GetProcessHeap(), 0, expanded); if (policy == &handle) LsaClose(handle); - if (status) { + if (status != STATUS_SUCCESS) { LsaFreeMemory(translated_domains); LsaFreeMemory(translated_sid); print_message(stderr, NSSM_MESSAGE_LSALOOKUPNAMES_FAILED, username, error_string(LsaNtStatusToWinError(status))); @@ -166,7 +170,7 @@ int canonicalise_username(const TCHAR *username, TCHAR **canon) { LSA_REFERENCED_DOMAIN_LIST *translated_domains; LSA_TRANSLATED_NAME *translated_name; NTSTATUS status = LsaLookupSids(policy, 1, &sids, &translated_domains, &translated_name); - if (status) { + if (status != STATUS_SUCCESS) { LsaFreeMemory(translated_domains); LsaFreeMemory(translated_name); print_message(stderr, NSSM_MESSAGE_LSALOOKUPSIDS_FAILED, error_string(LsaNtStatusToWinError(status))); @@ -307,7 +311,7 @@ int grant_logon_as_service(const TCHAR *username) { LSA_UNICODE_STRING *rights; unsigned long count = ~0; status = LsaEnumerateAccountRights(policy, sid, &rights, &count); - if (status) { + if (status != STATUS_SUCCESS) { /* If the account has no rights set LsaEnumerateAccountRights() will return STATUS_OBJECT_NAME_NOT_FOUND and set count to 0. @@ -336,7 +340,7 @@ int grant_logon_as_service(const TCHAR *username) { status = LsaAddAccountRights(policy, sid, &lsa_right, 1); FreeSid(sid); LsaClose(policy); - if (status) { + if (status != STATUS_SUCCESS) { print_message(stderr, NSSM_MESSAGE_LSAADDACCOUNTRIGHTS_FAILED, error_string(LsaNtStatusToWinError(status))); return 5; } -- 2.7.4