diff --git a/src/dock.c b/src/dock.c index 5e7cc934..9d74b490 100644 --- a/src/dock.c +++ b/src/dock.c @@ -3015,9 +3015,9 @@ void wDockTrackWindowLaunch(WDock * dock, Window window) wfree(command); if (wm_class) - XFree(wm_class); + free(wm_class); if (wm_instance) - XFree(wm_instance); + free(wm_instance); } void wClipUpdateForWorkspaceChange(WScreen * scr, int workspace) diff --git a/src/properties.c b/src/properties.c index 7279de12..46bc3caa 100644 --- a/src/properties.c +++ b/src/properties.c @@ -71,10 +71,13 @@ int PropGetWMClass(Window window, char **wm_class, char **wm_instance) XFree(class_hint); return False; } - *wm_instance = class_hint->res_name; - *wm_class = class_hint->res_class; + *wm_instance = strdup(class_hint->res_name); + *wm_class = strdup(class_hint->res_class); + XFree(class_hint->res_name); + XFree(class_hint->res_class); XFree(class_hint); + return True; } diff --git a/src/session.c b/src/session.c index 4a50f78a..811aee3b 100644 --- a/src/session.c +++ b/src/session.c @@ -257,9 +257,9 @@ static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp) } if (instance) - XFree(instance); + free(instance); if (class) - XFree(class); + free(class); if (command) wfree(command); diff --git a/src/window.c b/src/window.c index bfc0ade4..7402b7de 100644 --- a/src/window.c +++ b/src/window.c @@ -830,9 +830,9 @@ WWindow *wManageWindow(WScreen *scr, Window window) wwin->main_window = fPtr->leader; } if (instance) - XFree(instance); + free(instance); if (class) - XFree(class); + free(class); #undef ADEQUATE } @@ -2654,9 +2654,9 @@ WMagicNumber wWindowGetSavedState(Window win) if (command) wfree(command); if (instance) - XFree(instance); + free(instance); if (class) - XFree(class); + free(class); return wstate; }