[PATCH] 64-bit issues in libx11
madman2003 at gmail.com
Sat Feb 21 11:22:15 PST 2009
Committed as http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=da6bbca07c796c69172a649405474f03bee66754
Please provide git patches in the future (it's easier for both sides).
On Fri, Feb 20, 2009 at 3:10 AM, Emilio Jesús Gallego Arias
<egallego at babel.ls.fi.upm.es> wrote:
> It seems xcb/x11 have some bugs related to sizeof(long), in concrete
> using 32 bit variables for dpy->request et al in AMD64.
> This patch fixes some crashes for me.
> diff -ur libx11-184.108.40.206/src/xcb_io.c libx11-220.127.116.11-a/src/xcb_io.c
> --- libx11-18.104.22.168/src/xcb_io.c 2008-11-04 20:52:54.000000000 +0100
> +++ libx11-22.214.171.124-a/src/xcb_io.c 2009-02-20 02:58:02.000000000 +0100
> @@ -214,7 +214,7 @@
> else if(req && xcb_poll_for_reply(dpy->xcb->connection, req->sequence, &reply, &error))
> - unsigned int sequence = req->sequence;
> + uint64_t sequence = req->sequence;
> dpy->xcb->pending_requests = req->next;
> @@ -300,7 +300,7 @@
> * we need to remember to check later. */
> if(dpy->xcb->event_owner != XlibOwnsEventQueue || dpy->async_handlers)
> - unsigned int sequence;
> + uint64_t sequence;
> for(sequence = dpy->xcb->last_flushed; sequence < dpy->request; ++sequence)
> PendingRequest *req = malloc(sizeof(PendingRequest));
> I've used uint64_t instead unsigned long as it seems preferred through the codebase.
> Note that both req->sequence and dpy->request are defined as unsigned long.
> xorg mailing list
> xorg at lists.freedesktop.org
More information about the xorg