On Wed, Dec 17, 2003 at 03:08:03PM -0800, Mark Vojkovich wrote:
>    I don't think it's as bad as you think.  It looks to me like
> this comes about due to a difference in the Shm protocol.  Going
> against convention, xShmPutImageReq has an unsigned value for the
> src X and Y location.  All other primitive have signed values.
> I think the correct behavior is probably to clamp the source X and
> Y in ProcShmPutImage function to the unsigned 15 bit coordinate 
> system.  Can somebody try that to see if it fixes the problem?

Yup. This fixes it. Just committed.

Alan.

Index: shm.c
===================================================================
RCS file: /X11R6/x-cvs/xc/programs/Xserver/Xext/shm.c,v
retrieving revision 3.40
diff -u -r3.40 shm.c
--- shm.c       17 Nov 2003 22:20:27 -0000      3.40
+++ shm.c       17 Dec 2003 23:20:06 -0000
@@ -815,6 +815,8 @@
     REQUEST_SIZE_MATCH(xShmPutImageReq);
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
     VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client);
+    if (stuff->srcX > 32767 || stuff->srcY > 32767)
+       return BadValue;
     if ((stuff->sendEvent != xTrue) && (stuff->sendEvent != xFalse))
        return BadValue;
     if (stuff->format == XYBitmap)
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to