diff --git a/src/detection/displayserver/linux/xcb.c b/src/detection/displayserver/linux/xcb.c index c27672bec..796ef8632 100644 --- a/src/detection/displayserver/linux/xcb.c +++ b/src/detection/displayserver/linux/xcb.c @@ -83,11 +83,11 @@ static void xcbDetectWMfromEWMH(XcbPropertyData* data, xcb_connection_t* connect if(wmWindow == NULL) return; - FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL) - wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "WM_NAME"); + FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "WM_NAME"); + if(!ffStrSet(wmName)) + wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL || *wmName == '\0') + if(!ffStrSet(wmName)) return; ffStrbufSetS(&result->wmProcessName, wmName); diff --git a/src/detection/displayserver/linux/xlib.c b/src/detection/displayserver/linux/xlib.c index 324290b32..c0381231c 100644 --- a/src/detection/displayserver/linux/xlib.c +++ b/src/detection/displayserver/linux/xlib.c @@ -53,9 +53,9 @@ static void x11DetectWMFromEWMH(X11PropertyData* data, Display* display, FFDispl if(wmWindow == NULL) return; - char* wmName = (char*) x11GetProperty(data, display, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL) - wmName = (char*) x11GetProperty(data, display, *wmWindow, "WM_NAME"); + char* wmName = (char*) x11GetProperty(data, display, *wmWindow, "WM_NAME"); + if(!ffStrSet(wmName)) + wmName = (char*) x11GetProperty(data, display, *wmWindow, "_NET_WM_NAME"); if(ffStrSet(wmName)) ffStrbufSetS(&result->wmProcessName, wmName);