diff options
Diffstat (limited to 'winsup/utils/bloda.cc')
-rw-r--r-- | winsup/utils/bloda.cc | 38 |
1 files changed, 4 insertions, 34 deletions
diff --git a/winsup/utils/bloda.cc b/winsup/utils/bloda.cc index 5c977cec1..c6443184f 100644 --- a/winsup/utils/bloda.cc +++ b/winsup/utils/bloda.cc @@ -108,24 +108,13 @@ static struct bad_app_info big_list_of_dodgy_apps[] = static const size_t num_of_dodgy_apps = sizeof (big_list_of_dodgy_apps) / sizeof (big_list_of_dodgy_apps[0]); -/* This function is not in the ntdll export lib, so it has - to be looked up at runtime and called through a pointer. */ -VOID NTAPI (*pRtlFreeUnicodeString)(PUNICODE_STRING) = NULL; - -NTSTATUS NTAPI (*pNtQuerySystemInformation) (SYSTEM_INFORMATION_CLASS, - PVOID, ULONG, PULONG) = NULL; - -NTSTATUS NTAPI (*pRtlAnsiStringToUnicodeString) (PUNICODE_STRING, PANSI_STRING, - BOOLEAN) = NULL; - - static PSYSTEM_PROCESSES get_process_list (void) { int n_procs = 0x100; PSYSTEM_PROCESSES pslist = (PSYSTEM_PROCESSES) malloc (n_procs * sizeof *pslist); - while (pNtQuerySystemInformation (SystemProcessesAndThreadsInformation, + while (NtQuerySystemInformation (SystemProcessesAndThreadsInformation, pslist, n_procs * sizeof *pslist, 0) == STATUS_INFO_LENGTH_MISMATCH) { n_procs *= 2; @@ -141,7 +130,7 @@ get_module_list (void) int modsize = 0x1000; PSYSTEM_MODULE_INFORMATION modlist = (PSYSTEM_MODULE_INFORMATION) malloc (modsize); - while (pNtQuerySystemInformation (SystemModuleInformation, + while (NtQuerySystemInformation (SystemModuleInformation, modlist, modsize, NULL) == STATUS_INFO_LENGTH_MISMATCH) { modsize *= 2; @@ -299,14 +288,14 @@ detect_dodgy_app (const struct bad_app_det *det, PSYSTEM_PROCESSES pslist, PSYST /* Equivalent of RtlInitAnsiString. */ ansiname.Length = ansiname.MaximumLength = strlen (det->param); ansiname.Buffer = (CHAR *) det->param; - rv = pRtlAnsiStringToUnicodeString (&unicodename, &ansiname, TRUE); + rv = RtlAnsiStringToUnicodeString (&unicodename, &ansiname, TRUE); if (rv != STATUS_SUCCESS) { printf ("Ansi to unicode conversion failure $%08x\n", (unsigned int) rv); break; } found = find_process_in_list (pslist, &unicodename); - pRtlFreeUnicodeString (&unicodename); + RtlFreeUnicodeString (&unicodename); if (found) { dbg_printf (("found!\n")); @@ -347,25 +336,6 @@ dump_dodgy_apps (int verbose) size_t i, n_det = 0; PSYSTEM_PROCESSES pslist; PSYSTEM_MODULE_INFORMATION modlist; - HMODULE ntdll; - - if ((ntdll = LoadLibrary ("ntdll.dll")) == NULL) - { - puts ("Skipping dodgy app check on Win9x/ME."); - return; - } - -#define GPA(func,rv) \ - if ((p##func = (rv) GetProcAddress (ntdll, #func)) == NULL) \ - { \ - puts ("Can't GetProcAddress() for " #func ", " \ - "skipping dodgy app check."); \ - return; \ - } - GPA(NtQuerySystemInformation, NTSTATUS NTAPI (*) (SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG)); - GPA(RtlFreeUnicodeString, VOID NTAPI (*)(PUNICODE_STRING)); - GPA(RtlAnsiStringToUnicodeString, NTSTATUS NTAPI (*)(PUNICODE_STRING,PANSI_STRING,BOOLEAN)); -#undef GPA /* Read system info for detect testing. */ pslist = get_process_list (); |