]> source.dussan.org Git - tigervnc.git/commitdiff
Avoid invalid XFree for XClassHint
authorPierre Ossman <ossman@cendio.se>
Tue, 22 Oct 2024 07:58:27 +0000 (09:58 +0200)
committerPierre Ossman <ossman@cendio.se>
Tue, 22 Oct 2024 07:58:27 +0000 (09:58 +0200)
It seems XGetClassHint() doesn't set the pointers to NULL if there is no
name, so we need to make sure it is cleared beforehand. Otherwise we can
get an invalid pointer given to XFree().

unix/tx/TXWindow.cxx

index b6a29d6797c14054b244232034ab21c0a861fc47..639c13827acb20081d6595b9e9368042ac69739e 100644 (file)
@@ -313,6 +313,7 @@ void TXWindow::toplevel(const char* name, TXDeleteWindowCallback* dwc_,
 void TXWindow::setName(const char* name)
 {
   XClassHint classHint;
+  memset(&classHint, 0, sizeof(classHint));
   XGetClassHint(dpy, win(), &classHint);
   XFree(classHint.res_name);
   classHint.res_name = (char*)name;