[PATCH] 64-bit issues in libx11

Maarten Maathuis 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).

Maarten.

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-1.1.99.2/src/xcb_io.c libx11-1.1.99.2-a/src/xcb_io.c
> --- libx11-1.1.99.2/src/xcb_io.c        2008-11-04 20:52:54.000000000 +0100
> +++ libx11-1.1.99.2-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;
>                        if(!reply)
>                        {
>                                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.
>
> Regards,
>
> Emilio
>
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>



More information about the xorg mailing list