xorg-xserver/Xext/shm.c - missing swapped case?

Adam Jackson ajax at nwnk.net
Wed May 8 19:51:40 UTC 2019


On Mon, 2019-05-06 at 23:40 +0200, Ulrich Sibiller wrote:
> On Mon, May 6, 2019 at 6:28 PM Alan Coopersmith
> <alan.coopersmith at oracle.com> wrote:
> > On 5/6/19 9:20 AM, Ulrich Sibiller wrote:
> > > Since that code is really old (the PANORAMIX stuff came in with
> > > XFree86 4.3.0.1 in November 2003) I am wondering if this really a bug
> > > or if am missing something crucial here?
> > 
> > I don't think X has ever truly supported a platform on which clients
> > of different endianess can share memory - shared memory is typically
> > local only, while endian swapping is typically remote only.
> 
> I agree. So the current situation is that the code is
> a) incomplete
> b) never used
> 
> IMHO consequently all the swapping code should be dropped from shm.c.
> Swapped requests (wherever they come from) should simply return an
> error then.

Swapped shm requests have been fixed by explicit request before:

https://bugs.freedesktop.org/show_bug.cgi?id=4730

But yes, the swapped code is wrong for the xinerama case. The simplest
fix is to replace the return statements in the SProc stubs with:

    return ProcShmDispatch(client);

which will forward the (now-swapped) request on to the xinerama-aware
dispatch path.

- ajax



More information about the xorg-devel mailing list