rem: free(menuPath);
context: showData(_Panel *panel){    char *gspath;    char *menuPath;    proplist_t menu, pmenu;    char buffer[512];    int hasWSMenu=0;    gspath = wusergnusteppath();        menuPath = wmalloc(strlen(gspath)+32);    strcpy(menuPath, gspath);    free(gspath);    strcat(menuPath, "/Defaults/WMRootMenu");        menu = PLGetProplistWithPath(menuPath);    free(menuPath);        if (!PLIsArray(menu)) {	sprintf(buffer, _("The format of the current menu in ~/G/D/WMRootMenu "		"is not supported by WPrefs. A new menu will be created.\n"		"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu "		"to get the default menu."));	if (WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,			    _("Warning"), buffer, _("OK"), _("Cancel"), 			    NULL)==WAPRDefault) {	    panel->dontSave = 0;	} else {	    WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,			    _("Warning"), _("Any changes made in this section will not be saved"),			    _("OK"), NULL, NULL);	    panel->dontSave = 1;	    	}		pmenu = PLMakeArrayFromElements(PLMakeString("Applications"),					NULL);    } else {	pmenu = preProcessMenu(menu, &hasWSMenu);    }    PLSetFilename(pmenu, PLGetFilename(menu));    PLRelease(menu);        if (panel->itemClipboard) {	PLRelease(panel->itemClipboard);	panel->itemClipboard = NULL;    }    panel->menu = pmenu;    panel->editedItem = NULL;    panel->capturing = 0;    WMSetPopUpButtonItemEnabled(panel->cmd1P, CPaste, False);    WMSetPopUpButtonItemEnabled(panel->cmd2P, CPaste, False);    if (hasWSMenu) {	WMSetPopUpButtonItemEnabled(panel->cmd1P, CAddWorkspace, False);	WMSetPopUpButtonItemEnabled(panel->cmd2P, CAddWorkspace, False);    }    WMLoadBrowserColumnZero(panel->browser);    updateForItemType(panel, TNothing);}