diff -ur abiword-2.9.2/src/af/util/xp/ut_path.h abiword-2.9.2.modified/src/af/util/xp/ut_path.h --- abiword-2.9.2/src/af/util/xp/ut_path.h 2011-11-08 18:53:10.000000000 +0100 +++ abiword-2.9.2.modified/src/af/util/xp/ut_path.h 2012-01-18 17:33:23.000000000 +0100 @@ -29,6 +29,8 @@ #include #endif +#include "config.h" + /* GTK build supports platforms without PATH_MAX; we leave the warning in for * other platforms to avoid headaches */ diff -ur abiword-2.9.2/src/af/xap/gtk/xap_UnixApp.cpp abiword-2.9.2.modified/src/af/xap/gtk/xap_UnixApp.cpp --- abiword-2.9.2/src/af/xap/gtk/xap_UnixApp.cpp 2011-11-12 15:48:22.000000000 +0100 +++ abiword-2.9.2.modified/src/af/xap/gtk/xap_UnixApp.cpp 2012-01-18 17:38:06.000000000 +0100 @@ -258,15 +258,16 @@ { // FIXME: this code sucks hard - char buf[PATH_MAX]; + char * buf = NULL; // see if ABIWORD_DATADIR was set in the environment const char * sz = getenv("ABIWORD_DATADIR"); if (sz && *sz) { + int len = strlen(sz); + buf = (gchar *)g_malloc(len+1); strcpy(buf,sz); char * p = buf; - int len = strlen(p); if ( (p[0]=='"') && (p[len-1]=='"') ) { // trim leading and trailing DQUOTES @@ -277,6 +278,7 @@ if (p[len-1]=='/') // trim trailing slash p[len-1] = 0; XAP_App::_setAbiSuiteLibDir(p); + g_free(buf); return; }