Module Name:    xsrc
Committed By:   mrg
Date:           Mon Jun  3 07:38:41 UTC 2013

Modified Files:
        xsrc/external/mit/xorg-server/dist/Xext: shm.c xace.c xvdisp.c
        xsrc/external/mit/xorg-server/dist/dix: devices.c getevents.c
        xsrc/external/mit/xorg-server/dist/hw/xfree86/common: xf86Config.c
        xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa: xaaGC.c
        xsrc/external/mit/xorg-server/dist/os: utils.c

Log Message:
merge xorg-server 1.10.6.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 xsrc/external/mit/xorg-server/dist/Xext/shm.c
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/xorg-server/dist/Xext/xace.c \
    xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c
cvs rdiff -u -r1.7 -r1.8 xsrc/external/mit/xorg-server/dist/dix/devices.c
cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/xorg-server/dist/dix/getevents.c
cvs rdiff -u -r1.9 -r1.10 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c
cvs rdiff -u -r1.5 -r1.6 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c
cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/xorg-server/dist/os/utils.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xorg-server/dist/Xext/shm.c
diff -u xsrc/external/mit/xorg-server/dist/Xext/shm.c:1.4 xsrc/external/mit/xorg-server/dist/Xext/shm.c:1.5
--- xsrc/external/mit/xorg-server/dist/Xext/shm.c:1.4	Tue Aug  2 07:15:01 2011
+++ xsrc/external/mit/xorg-server/dist/Xext/shm.c	Mon Jun  3 07:38:40 2013
@@ -482,7 +482,7 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC
 {
     PixmapPtr pPixmap;
 
-    if (format == ZPixmap || depth == 1) {
+    if (format == ZPixmap || (format == XYPixmap && depth == 1)) {
 	pPixmap = GetScratchPixmapHeader(dst->pScreen, w, h, depth,
 					 BitsPerPixel(depth),
 					 PixmapBytePad(w, depth),
@@ -993,7 +993,6 @@ CreatePmap:
 	    pMap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
 	    pMap->drawable.id = newPix->info[j].id;
 	    if (!AddResource(newPix->info[j].id, RT_PIXMAP, (pointer)pMap)) {
-		(*pScreen->DestroyPixmap)(pMap);
 		result = BadAlloc;
 		break;
 	    }
@@ -1004,10 +1003,8 @@ CreatePmap:
     }
 
     if(result == BadAlloc) {
-	while(j--) {
-	    (*pScreen->DestroyPixmap)(pMap);
+	while(j--)
 	    FreeResource(newPix->info[j].id, RT_NONE);
-	}
 	free(newPix);
     } else 
 	AddResource(stuff->pid, XRT_PIXMAP, newPix);
@@ -1112,7 +1109,6 @@ CreatePmap:
 	{
 	    return Success;
 	}
-	pDraw->pScreen->DestroyPixmap(pMap);
     }
     return BadAlloc;
 }

Index: xsrc/external/mit/xorg-server/dist/Xext/xace.c
diff -u xsrc/external/mit/xorg-server/dist/Xext/xace.c:1.3 xsrc/external/mit/xorg-server/dist/Xext/xace.c:1.4
--- xsrc/external/mit/xorg-server/dist/Xext/xace.c:1.3	Tue Nov 23 06:37:52 2010
+++ xsrc/external/mit/xorg-server/dist/Xext/xace.c	Mon Jun  3 07:38:40 2013
@@ -101,6 +101,10 @@ int XaceHook(int hook, ...)
     } u;
     int *prv = NULL;	/* points to return value from callback */
     va_list ap;		/* argument list */
+
+    if (!XaceHooks[hook])
+	return Success;
+
     va_start(ap, hook);
 
     /* Marshal arguments for passing to callback.
Index: xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c
diff -u xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c:1.3 xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c:1.4
--- xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c:1.3	Tue Nov 23 06:37:52 2010
+++ xsrc/external/mit/xorg-server/dist/Xext/xvdisp.c	Mon Jun  3 07:38:40 2013
@@ -1265,7 +1265,7 @@ ProcXvDispatch(ClientPtr client)
 
   UpdateCurrentTime();
 
-  if (stuff->data > xvNumRequests) {
+  if (stuff->data >= xvNumRequests) {
     SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
     return BadRequest;
   }
@@ -1589,7 +1589,7 @@ SProcXvDispatch(ClientPtr client)
 
   UpdateCurrentTime();
 
-  if (stuff->data > xvNumRequests) {
+  if (stuff->data >= xvNumRequests) {
     SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
     return BadRequest;
   }

Index: xsrc/external/mit/xorg-server/dist/dix/devices.c
diff -u xsrc/external/mit/xorg-server/dist/dix/devices.c:1.7 xsrc/external/mit/xorg-server/dist/dix/devices.c:1.8
--- xsrc/external/mit/xorg-server/dist/dix/devices.c:1.7	Tue Aug  2 07:15:02 2011
+++ xsrc/external/mit/xorg-server/dist/dix/devices.c	Mon Jun  3 07:38:41 2013
@@ -982,6 +982,8 @@ CloseDownDevices(void)
 {
     DeviceIntPtr dev;
 
+    OsBlockSignals();
+
     /* Float all SDs before closing them. Note that at this point resources
      * (e.g. cursors) have been freed already, so we can't just call
      * AttachDevice(NULL, dev, NULL). Instead, we have to forcibly set master
@@ -1004,6 +1006,8 @@ CloseDownDevices(void)
     inputInfo.keyboard = NULL;
     inputInfo.pointer = NULL;
     XkbDeleteRulesDflts();
+
+    OsReleaseSignals();
 }
 
 /**

Index: xsrc/external/mit/xorg-server/dist/dix/getevents.c
diff -u xsrc/external/mit/xorg-server/dist/dix/getevents.c:1.6 xsrc/external/mit/xorg-server/dist/dix/getevents.c:1.7
--- xsrc/external/mit/xorg-server/dist/dix/getevents.c:1.6	Tue Aug  2 07:15:02 2011
+++ xsrc/external/mit/xorg-server/dist/dix/getevents.c	Mon Jun  3 07:38:41 2013
@@ -1075,9 +1075,10 @@ transformAbsolute(DeviceIntPtr dev, Valu
 
     pixman_f_transform_point(&dev->transform, &p);
 
-    if (lround(p.v[0]) != dev->last.valuators[0])
+    if (valuator_mask_isset(mask, 0))
         valuator_mask_set(mask, 0, lround(p.v[0]));
-    if (lround(p.v[1]) != dev->last.valuators[1])
+
+    if (valuator_mask_isset(mask, 1))
         valuator_mask_set(mask, 1, lround(p.v[1]));
 }
 
@@ -1136,14 +1137,17 @@ GetPointerEvents(EventList *events, Devi
 
     events = UpdateFromMaster(events, pDev, DEVCHANGE_POINTER_EVENT, &num_events);
 
-    raw = (RawDeviceEvent*)events->event;
-    events++;
-    num_events++;
-
     valuator_mask_copy(&mask, mask_in);
 
-    init_raw(pDev, raw, ms, type, buttons);
-    set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+    if ((flags & POINTER_NORAW) == 0)
+    {
+        raw = (RawDeviceEvent*)events->event;
+	events++;
+	num_events++;
+
+	init_raw(pDev, raw, ms, type, buttons);
+	set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+    }
 
     if (flags & POINTER_ABSOLUTE)
     {
@@ -1195,7 +1199,8 @@ GetPointerEvents(EventList *events, Devi
         moveRelative(pDev, &x, &y, &mask);
     }
 
-    set_raw_valuators(raw, &mask, raw->valuators.data);
+    if ((flags & POINTER_NORAW) == 0)
+	set_raw_valuators(raw, &mask, raw->valuators.data);
 
     positionSprite(pDev, &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
     updateHistory(pDev, &mask, ms);

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.9 xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.10
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.9	Sat Oct 22 15:00:40 2011
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c	Mon Jun  3 07:38:41 2013
@@ -1230,6 +1230,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    devs = xnfrealloc(servlayoutp->inputs,
 			      (count + 1) * sizeof(InputInfoPtr));
             devs[count - 1] = xnfalloc(sizeof(InputInfoRec));
+            Pointer.fd = -1;
 	    *devs[count - 1] = Pointer;
 	    devs[count - 1]->options =
 				xf86addNewOption(devs[count -1]->options,
@@ -1275,6 +1276,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    devs = xnfrealloc(servlayoutp->inputs,
 			      (count + 1) * sizeof(InputInfoPtr));
             devs[count - 1] = xnfalloc(sizeof(InputInfoRec));
+            Pointer.fd = -1;
 	    *devs[count - 1] = Pointer;
 	    devs[count - 1]->options =
 				xf86addNewOption(NULL, xnfstrdup("AlwaysCore"), NULL);
@@ -1371,6 +1373,7 @@ checkCoreInputDevices(serverLayoutPtr se
 	    devs = xnfrealloc(servlayoutp->inputs,
 			      (count + 1) * sizeof(InputInfoPtr));
             devs[count - 1] = xnfalloc(sizeof(InputInfoRec));
+            Keyboard.fd = -1;
 	    *devs[count - 1] = Keyboard;
 	    devs[count - 1]->options =
 				xf86addNewOption(devs[count - 1]->options,

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c:1.5 xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c:1.6
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c:1.5	Tue Aug  2 07:15:05 2011
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/xaa/xaaGC.c	Mon Jun  3 07:38:41 2013
@@ -241,6 +241,7 @@ XAADestroyGC(GCPtr pGC)
 	free(pGCPriv->XAAOps);
 
     free(pGCPriv->DashPattern);
+    pGCPriv->flags = 0;
 
     (*pGC->funcs->DestroyGC)(pGC);
     XAA_GC_FUNC_EPILOGUE (pGC);

Index: xsrc/external/mit/xorg-server/dist/os/utils.c
diff -u xsrc/external/mit/xorg-server/dist/os/utils.c:1.5 xsrc/external/mit/xorg-server/dist/os/utils.c:1.6
--- xsrc/external/mit/xorg-server/dist/os/utils.c:1.5	Tue Aug  2 07:15:06 2011
+++ xsrc/external/mit/xorg-server/dist/os/utils.c	Mon Jun  3 07:38:41 2013
@@ -306,7 +306,7 @@ LockServer(void)
     FatalError("Could not create lock file in %s\n", tmp);
   (void) sprintf(pid_str, "%10ld\n", (long)getpid());
   (void) write(lfd, pid_str, 11);
-  (void) chmod(tmp, 0444);
+  (void) fchmod(lfd, 0444);
   (void) close(lfd);
 
   /*
@@ -327,7 +327,7 @@ LockServer(void)
       /*
        * Read the pid from the existing file
        */
-      lfd = open(LockFile, O_RDONLY);
+      lfd = open(LockFile, O_RDONLY|O_NOFOLLOW);
       if (lfd < 0) {
         unlink(tmp);
         FatalError("Can't read lock file %s\n", LockFile);

Reply via email to