X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=main.c;h=9cf0041c2b82aea2e25388c7ba1dc812dc44ed45;hb=c2ce9b429da981b5055638c53cf30cb8dea87b78;hp=66d7d806680424ac926fd3d1cc1344eb4373f9c9;hpb=495891fb6b64825082a5d6baba886c4cc045b9dd;p=oweals%2Fnmrpflash.git diff --git a/main.c b/main.c index 66d7d80..9cf0041 100644 --- a/main.c +++ b/main.c @@ -23,8 +23,6 @@ #include #include "nmrpd.h" -#define NMRPFLASH_SET_REGION - int verbosity = 0; void usage(FILE *fp) @@ -84,22 +82,23 @@ void usage(FILE *fp) void require_admin() { SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY; - PSID adminGroup = NULL; - BOOL success = AllocateAndInitializeSid( + PSID group = NULL; + BOOL admin, success = AllocateAndInitializeSid( &auth, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, - 0, 0, 0, 0, 0, 0, &adminGroup + 0, 0, 0, 0, 0, 0, &group ); if (success) { - if (CheckTokenMembership(NULL, adminGroup, &success)) { - if (!success) { + success = CheckTokenMembership(NULL, group, &admin); + FreeSid(group); + if (success) { + if (!admin) { fprintf(stderr, "Error: must be run as administrator\n"); exit(1); } else { return; } } - FreeSid(adminGroup); } fprintf(stderr, "Warning: failed to check administrator privileges\n"); @@ -277,7 +276,9 @@ int main(int argc, char **argv) return 1; } - require_admin(); + if (!list) { + require_admin(); + } #endif val = !list ? nmrp_do(&args) : ethsock_list_all();