Mercurial > trustbridge
view common/selftest.c @ 1075:7e1fd6d96714
(issue109) Feedback improved. Shell translation updated.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Thu, 11 Sep 2014 10:18:46 +0200 |
parents | fa3f4e2370d3 |
children | edbf5e5e88f4 |
line wrap: on
line source
#include "selftest.h" #include "binverify.h" #include "strhelp.h" #include "logging.h" bool selftest() { #ifdef WIN32 wchar_t wPath[MAX_PATH]; char *utf8path = NULL; if (!GetModuleFileNameW (NULL, wPath, MAX_PATH - 1)) { PRINTLASTERROR ("Failed to obtain module file name. Path too long?"); return false; } /* wPath might not be 0 terminated */ wPath[MAX_PATH - 1] = '\0'; utf8path = wchar_to_utf8 (wPath, wcsnlen(wPath, MAX_PATH)); if (utf8path == NULL) { ERRORPRINTF ("Failed to convert module path to utf-8"); return false; } if (verify_binary (utf8path, strlen(utf8path)) != VerifyValid) { ERRORPRINTF ("Verification of the binary failed"); syslog_error_printf ("Integrity check failed."); xfree(utf8path); return false; } xfree(utf8path); return true; #else if (!verify_binary ("/proc/self/exe", 14) != VerifyValid) { syslog_error_printf ("Integrity check failed."); return false; } #endif }