On 2020-07-03 18:40:09+0200, Hiltjo Posthuma <[email protected]> wrote:
> On Wed, Jul 01, 2020 at 09:29:25PM +0200, [email protected] wrote:
> > From: Joris Klaasse Bos <[email protected]>
> > 
> > Before this commit, running st on a system with musl libc would
> > result in a segmentation fault. This is because musl implements
> > locales differently, which means the function
> > Xutf8TextListToTextProperty would fail, because the locale isn't
> > supported, leading to nonexistent memory being freed.
> > 
> > I've fixed this by checking if the locale is supported and using
> > XStringListToTextProperty otherwise.
> > ---
> >  x.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/x.c b/x.c
> > index 210f184..a9632cb 100644
> > --- a/x.c
> > +++ b/x.c
> > @@ -1585,8 +1585,11 @@ xsettitle(char *p)
> >     XTextProperty prop;
> >     DEFAULT(p, opt_title);
> >  
> > -   Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
> > -                   &prop);
> > +   if (XSupportsLocale())
> > +           Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
> > +                           &prop);
> > +   else
> > +           XStringListToTextProperty(&p, 1, &prop);
> >     XSetWMName(xw.dpy, xw.win, &prop);
> >     XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname);
> >     XFree(prop.value);
> > -- 
> > 2.27.0
> > 
> > 
> 
> Hi,
> 
> Just tested it on Voidlinux musl and don't see an issue here.

(I'm not OP)

FWIW, Up-2-Date VoidLinux musl XSupportsLocale() is true.
So, with this new code it still run into old code path.

I'm using st with VoidLinux musl from 2018,
I think st must be fine from as far as that time.

> 
> What locale are you using? Can you post the output of locale?
> 
> Can you provide more details of your system / setup and possibly a simple
> command to reproduce the issue more easily and cause a crash?
> 
> -- 
> Kind regards,
> Hiltjo
> 

-- 
Danh

Reply via email to