view common/selftest.c @ 701:31c3d2bc9880

(Issue22) Fix painting problems with fixed size in windows style. We now use fusion style also on Windows for the combobox to let it be shown in the same way as we do on GNU/Linux.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 02 Jul 2014 11:26:42 +0200
parents 80d1a80b3e8d
children f89b41fa7048
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);
#else
  if (!verify_binary ("/proc/self/exe", 14) != VerifyValid)
    {
      syslog_error_printf ("Integrity check failed.");
      return false;
    }
#endif
}

http://wald.intevation.org/projects/trustbridge/