rem: free(path);
add: wfree(path);
context: loadConfigurations(WMScreen *scr, WMWindow *mainw){    proplist_t db, gdb;    char *path;    FILE *file;    char buffer[1024];    char mbuf[1024];    int v1, v2, v3;        path = wdefaultspathfordomain("WindowMaker");        db = PLGetProplistWithPath(path);    if (db) {	if (!PLIsDictionary(db)) {	    PLRelease(db);	    db = NULL;	    sprintf(mbuf, _("Window Maker domain (%s) is corrupted!"), path);	    WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL);	}    } else {	sprintf(mbuf, _("Could not load Window Maker domain (%s) from defaults database."),		path);	WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL);    }    free(path);    path = getenv("WMAKER_BIN_NAME");    if (!path)	path = "wmaker";    {	char *command;	command = wstrappend(path, " --version");	file = popen(command, "r");	free(command);    }    if (!file || !fgets(buffer, 1023, file)) {	wsyserror(_("could not extract version information from Window Maker"));	wfatal(_("Make sure wmaker is in your search path."));		WMRunAlertPanel(scr, mainw, _("Error"),			_("Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable."),			_("OK"), NULL, NULL);	exit(1);    }    if (file)	pclose(file);        if (sscanf(buffer, "Window Maker %i.%i.%i",&v1,&v2,&v3)!=3	&& sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) {	WMRunAlertPanel(scr, mainw, _("Error"),			_("Could not extract version from Window Maker. "			  "Make sure it is correctly installed and the path "			  "where it installed is in the PATH environment "			  "variable."), _("OK"), NULL, NULL);	exit(1);    }    if (v1 == 0 && (v2 < 18 || v3 < 0)) {	sprintf(mbuf, _("WPrefs only supports Window Maker 0.18.0 or newer.\n"		"The version installed is %i.%i.%i\n"), v1, v2, v3);	WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL);	exit(1);    }    if (v1 > 1 || (v1 == 1 && (v2 > 0))) {	sprintf(mbuf, _("Window Maker %i.%i.%i, which is installed in your system, is not fully supported by this version of WPrefs."),		v1, v2, v3);	WMRunAlertPanel(scr, mainw, _("Warning"), mbuf, _("OK"), NULL, NULL);    }    {	char *command;		command = wstrappend(path, " --global_defaults_path");	file = popen(command, "r");	free(command);    }    if (!file || !fgets(buffer, 1023, file)) {	wsyserror(_("could not run \"%s --global_defaults_path\"."), path);	exit(1);    } else {	char *ptr;	ptr = strchr(buffer, '\n');	if (ptr)	    *ptr = 0;	strcat(buffer, "/WindowMaker");    }    if (file)	pclose(file);    gdb = PLGetProplistWithPath(buffer);    if (gdb) {	if (!PLIsDictionary(gdb)) {	    PLRelease(gdb);	    gdb = NULL;	    sprintf(mbuf, _("Window Maker domain (%s) is corrupted!"), buffer);	    WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL);	}    } else {	sprintf(mbuf, _("Could not load global Window Maker domain (%s)."),		buffer);	WMRunAlertPanel(scr, mainw, _("Error"), mbuf, _("OK"), NULL, NULL);    }    if (!db) {	db = PLMakeDictionaryFromEntries(NULL, NULL, NULL);    }    if (!gdb) {	gdb = PLMakeDictionaryFromEntries(NULL, NULL, NULL);    }    GlobalDB = gdb;    WindowMakerDB = db;}