Re: [dev] [dmenu] 4.9 segfault on input

From: Patrick Smith <pat42smith_AT_gmail.com>
Date: Sun, 10 Feb 2019 16:17:25 -0800

Another point of information... after seeing
https://github.com/servo/servo/issues/9938, I tried these two commands
with my instrumented dmenu:

>>>> printf 'foo\nbar' | ./dmenu
Calling XOpenIM
Back from XOpenIM, xim=0x0
Calling XCreateIC
Back from XCreateIC, xic=0x0
xic = 0x0, event type = 2
calling XmbLookupString
Segmentation fault (core dumped)
>>>>
>>>> printf 'foo\nbar' | LANG=en_US.UTF-8 ./dmenu
Calling XOpenIM
Back from XOpenIM, xim=0x67c3b660
Calling XCreateIC
Back from XCreateIC, xic=0x67c3c3b0
xic = 0x67c3c3b0, event type = 2
calling XmbLookupString
back from XmbLookupString
foo

In the first case, $LANG is set to my default value, en_CA.UTF-8.
There is another difference, not visible in the above output. In the
first command, I can press enter immediately after entering the
command, and this causes dmenu to terminate with the segfault. In the
second case, immediately pressing enter does nothing. I have to move
the cursor to the menu prepared by dmenu at the top of the screen, and
then press enter (fwiw, my window manager is i3).

On Sun, Feb 10, 2019 at 3:54 PM Jordan Timmerman <skorlir_AT_gmail.com> wrote:
>
> With a little finagling, I've managed to produce a backtrace by using
> Quentin's suggested flag modifications to config.mk. This is attached.
> It seems to me only to confirm what we've already learned: the failure
> occurs in XmbLookupString. Perhaps with the additional diagnostic
> information Patrick was able to provide we'll figure it out.
>
> As an aside: thanks to everyone who has patiently helped me figure out
> how to provide debugging information! Sorry I can't be more help.
>
> On Sun, Feb 10, 2019 at 5:39 PM Patrick Smith <pat42smith_AT_gmail.com> wrote:
> >
> > I'm experiencing a problem that appears very similar to this one, and
> > I can add a bit of information.
> >
> > Summary: When I have scim+anthy installed as an input method, the call
> > to XOpenIM fails, returning a null pointer. But I don't know much
> > about the internals of X, so can't be 100% sure this is the root of
> > the problem. Nor do I know what to look at next.
> >
> > My environment: up to date Arch Linux, dmenu 4.9. For X input methods,
> > using scim and anthy by setting environment variables:
> >
> > export XMODIFIERS=_AT_im=SCIM
> > export GTK_IM_MODULE=scim
> > export QT_IM_MODULE=scim
> >
> > To reproduce the crash, I can do
> >
> > printf 'foo\nbar' | dmenu
> >
> > and then press return. With the Arch Linux 4.9, this produces a
> > segmentation fault. After I downgraded to the Arch version of dmenu
> > 4.8, it works correctly.
> >
> > So I downloaded the 4.9 source code and built it myself, with no
> > changes to config.mk or anything else. This version produces still
> > produces the segfault.
> >
> > Then I added debugging code to print some information to stderr. From
> > this, I see that the crash seems to be inside XmbLookupString, as
> > reported previously; the xic pointer returned from XCreateIC and
> > passed to XmbLookupString is null, and the xim pointer returned from
> > XOpenIM and passed to XCreateIC is also null.
> >
> > After this, I restarted X with scim disabled by commenting out the
> > exports mentioned above, and retried the printf into dmenu. Now it
> > works correctly, and reports that both XOpenIM and XCreateIC return
> > non-null pointers.
> >
> > I'm not sure what to look at next, so I hope that helps someone else
> > to diagnose the problem...
> >
Received on Mon Feb 11 2019 - 01:17:25 CET

This archive was generated by hypermail 2.3.0 : Mon Feb 11 2019 - 01:24:07 CET