From a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9 Mon Sep 17 00:00:00 2001 From: marha Date: Sat, 29 Nov 2014 12:40:08 +0100 Subject: fontconfig libX11 libxcb libxcb/xcb-proto mesa xserver xkbcomp xkeyboard-config git update 29 Nov 2014 xserver commit c52a2b1ebad56820af932dfbc871701a8b04fd9c libxcb commit bbca7b82f803fa13fd30a2891ec06f2a213a28c2 libxcb/xcb-proto commit 691d2b97e5989d6d7006304d81bd8fa128477ca1 xkeyboard-config commit b664d7fb8aab9b0f834dd9c81d273c7809561b34 libX11 commit f3831dde6972e4da9e018c6a5f4013d8756a5e78 xkbcomp commit 1e8ee9d0aad072f04186df84752f5636340574e0 fontconfig commit b732bf057f4b3ec3bac539803005e9c42d056b2a mesa commit 67c498086d0858a94d53ebb6921cfda847250368 --- xorg-server/Xext/shm.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'xorg-server/Xext/shm.c') diff --git a/xorg-server/Xext/shm.c b/xorg-server/Xext/shm.c index 4dad8b6c6..db9d47450 100644 --- a/xorg-server/Xext/shm.c +++ b/xorg-server/Xext/shm.c @@ -248,21 +248,20 @@ ShmDestroyPixmap(PixmapPtr pPixmap) { ScreenPtr pScreen = pPixmap->drawable.pScreen; ShmScrPrivateRec *screen_priv = ShmGetScreenPriv(pScreen); + void *shmdesc = NULL; Bool ret; - if (pPixmap->refcnt == 1) { - ShmDescPtr shmdesc; - - shmdesc = (ShmDescPtr) dixLookupPrivate(&pPixmap->devPrivates, - shmPixmapPrivateKey); - if (shmdesc) - ShmDetachSegment((void *) shmdesc, pPixmap->drawable.id); - } + if (pPixmap->refcnt == 1) + shmdesc = dixLookupPrivate(&pPixmap->devPrivates, shmPixmapPrivateKey); pScreen->DestroyPixmap = screen_priv->destroyPixmap; ret = (*pScreen->DestroyPixmap) (pPixmap); screen_priv->destroyPixmap = pScreen->DestroyPixmap; pScreen->DestroyPixmap = ShmDestroyPixmap; + + if (shmdesc) + ShmDetachSegment(shmdesc, pPixmap->drawable.id); + return ret; } @@ -405,7 +404,7 @@ ProcShmAttach(ClientPtr client) } /* The attach was performed with root privs. We must - * do manual checking of access rights for the credentials + * do manual checking of access rights for the credentials * of the client */ if (shm_access(client, &(SHM_PERM(buf)), stuff->readOnly) == -1) { @@ -1148,7 +1147,7 @@ ProcShmAttachFd(ClientPtr client) fd, 0); close(fd); - if ((shmdesc->addr == ((char *) -1))) { + if (shmdesc->addr == ((char *) -1)) { free(shmdesc); return BadAccess; } @@ -1238,7 +1237,7 @@ ProcShmCreateSegment(ClientPtr client) MAP_SHARED, fd, 0); - if ((shmdesc->addr == ((char *) -1))) { + if (shmdesc->addr == ((char *) -1)) { close(fd); free(shmdesc); return BadAccess; -- cgit v1.2.3