commit 2f6e597ed871cff91c627850d03152cae5f45779
Author:     Hiltjo Posthuma <[email protected]>
AuthorDate: Tue Aug 24 13:44:35 2021 +0200
Commit:     Hiltjo Posthuma <[email protected]>
CommitDate: Tue Aug 24 13:44:35 2021 +0200

    fix possible rare crash when Xutf8TextPropertyToTextList fails
    
    from the XmbTextListToTextProperty(3) man page:
    
    "If insufficient memory is available for the new value string, the functions
    return XNoMemory.  If the current locale is not supported, the functions 
return
    XLocaleNotSupported.  In both of these error cases, the functions do not set
    text_prop_return."
    
    Reported by Steffen Nurpmeso <[email protected]>, thanks!

diff --git a/x.c b/x.c
index 248d505..89786b8 100644
--- a/x.c
+++ b/x.c
@@ -1588,8 +1588,9 @@ xseticontitle(char *p)
        XTextProperty prop;
        DEFAULT(p, opt_title);
 
-       Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
-                       &prop);
+       if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
+                                       &prop) != Success)
+               return;
        XSetWMIconName(xw.dpy, xw.win, &prop);
        XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname);
        XFree(prop.value);
@@ -1601,8 +1602,9 @@ xsettitle(char *p)
        XTextProperty prop;
        DEFAULT(p, opt_title);
 
-       Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
-                       &prop);
+       if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
+                                       &prop) != Success)
+               return;
        XSetWMName(xw.dpy, xw.win, &prop);
        XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname);
        XFree(prop.value);

Reply via email to