xwininfo dumps core

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

xwininfo dumps core

frantisek holop
hi there,

can anybody reproduce this?  jan 2 snapshot.


$ xwininfo  

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo in free(): error: bogus pointer (double free?) 0xcfbec0c4
xwininfo: Window id: 0xa00006 (can't convert UTF8_STRING to 646)Abort trap (core dumped)

-f
--
latin is a real angina gluteus maximus.

Reply | Threaded
Open this post in threaded view
|

Re: xwininfo dumps core

Matthieu Herrb
On Thu, Jan 06, 2011 at 10:16:19PM +0100, frantisek holop wrote:

> hi there,
>
> can anybody reproduce this?  jan 2 snapshot.
>
>
> $ xwininfo  
>
> xwininfo: Please select the window about which you
>           would like information by clicking the
>           mouse in that window.
>
> xwininfo in free(): error: bogus pointer (double free?) 0xcfbec0c4
> xwininfo: Window id: 0xa00006 (can't convert UTF8_STRING to 646)Abort trap (core dumped)
>

What architecture ?

What is the (UTF-8) title of the window in question ?
--
Matthieu Herrb

Reply | Threaded
Open this post in threaded view
|

Re: xwininfo dumps core

frantisek holop
hmm, on Thu, Jan 06, 2011 at 10:38:26PM +0100, Matthieu Herrb said that

> On Thu, Jan 06, 2011 at 10:16:19PM +0100, frantisek holop wrote:
> > hi there,
> >
> > can anybody reproduce this?  jan 2 snapshot.
> >
> >
> > $ xwininfo  
> >
> > xwininfo: Please select the window about which you
> >           would like information by clicking the
> >           mouse in that window.
> >
> > xwininfo in free(): error: bogus pointer (double free?) 0xcfbec0c4
> > xwininfo: Window id: 0xa00006 (can't convert UTF8_STRING to 646)Abort trap (core dumped)
> >
>
> What architecture ?

i386

> What is the (UTF-8) title of the window in question ?

i dont use utf8 for window titles.  this core dump
happens with any open window (urxvt, xxxterm, gkrellm2, opera, etc)

window manager is blackbox from ports

-f
--
how can i miss you if you won't go away.

Reply | Threaded
Open this post in threaded view
|

Re: xwininfo dumps core

Tim van der Molen-3
On Thu, 06 Jan 2011 23:38:33 +0100, frantisek holop wrote:

> hmm, on Thu, Jan 06, 2011 at 10:38:26PM +0100, Matthieu Herrb said that
> > On Thu, Jan 06, 2011 at 10:16:19PM +0100, frantisek holop wrote:
> > > hi there,
> > >
> > > can anybody reproduce this?  jan 2 snapshot.
> > >
> > >
> > > $ xwininfo  
> > >
> > > xwininfo: Please select the window about which you
> > >           would like information by clicking the
> > >           mouse in that window.
> > >
> > > xwininfo in free(): error: bogus pointer (double free?) 0xcfbec0c4
> > > xwininfo: Window id: 0xa00006 (can't convert UTF8_STRING to 646)Abort trap (core dumped)
> > >
> >
> > What architecture ?
>
> i386
>
> > What is the (UTF-8) title of the window in question ?
>
> i dont use utf8 for window titles.  this core dump
> happens with any open window (urxvt, xxxterm, gkrellm2, opera, etc)
>
> window manager is blackbox from ports

It looks like there are two different problems here.

The UTF-8 string cannot be converted because xwininfo needs iconv for
that ("#ifdef HAVE_ICONV") and our xwininfo is not linked against
libiconv. If you run xwininfo with $LC_ALL set to "de_DE.UTF-8",
xwininfo does print the title (but it still crashes).

The crash itself seems to be fixed by the following diff.

Regards,
Tim

Index: xwininfo.c
===================================================================
RCS file: /cvs/xenocara/app/xwininfo/xwininfo.c,v
retrieving revision 1.4
diff -p -u xwininfo.c
--- xwininfo.c 25 Nov 2010 21:55:09 -0000 1.4
+++ xwininfo.c 6 Jan 2011 23:56:57 -0000
@@ -786,9 +786,9 @@ Display_Window_Id (struct wininfo *w, Bool newline_wan
 {
 #ifdef USE_XCB_ICCCM
     xcb_get_text_property_reply_t wmn_reply;
+    uint8_t got_reply = False;
 #endif
     xcb_get_property_reply_t *prop;
-    uint8_t got_reply = False;
     const char *wm_name = NULL;
     unsigned int wm_name_len = 0;
     xcb_atom_t wm_name_encoding = XCB_NONE;
@@ -807,10 +807,7 @@ Display_Window_Id (struct wininfo *w, Bool newline_wan
     wm_name = xcb_get_property_value (prop);
     wm_name_len = xcb_get_property_value_length (prop);
     wm_name_encoding = prop->type;
-    got_reply = True;
- }
-
- if (!got_reply) { /* No _NET_WM_NAME, check WM_NAME */
+ } else { /* No _NET_WM_NAME, check WM_NAME */
 #ifdef USE_XCB_ICCCM
     got_reply = xcb_get_wm_name_reply (dpy, w->wm_name_cookie,
        &wmn_reply, NULL);
@@ -825,11 +822,10 @@ Display_Window_Id (struct wininfo *w, Bool newline_wan
  wm_name = xcb_get_property_value (prop);
  wm_name_len = xcb_get_property_value_length (prop);
  wm_name_encoding = prop->type;
- got_reply = True;
     }
 #endif
  }
- if (!got_reply || wm_name_len == 0) {
+ if (wm_name_len == 0) {
     printf (" (has no name)");
         } else {
     if (wm_name_encoding == XCB_ATOM_STRING) {