From 35b4ea8794ca2e192bd6c98e9276420c7fbca7846f9a7a07148c0340e1dffe49 Mon Sep 17 00:00:00 2001 From: Matthias Hopf Date: Fri, 11 Feb 2011 17:21:41 +0000 Subject: [PATCH] - Merge xorg-server-xf4vnc-fix-crash-on-193.diff into xorg-server-xf4vnc-fixes_1_9.diff - Fix last commit OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=330 --- xorg-server-xf4vnc-fix-crash-on-193.diff | 110 ----------- xorg-server-xf4vnc-fixes_1_9.diff | 222 ++++++++++++++++------- xorg-x11-server.changes | 2 + xorg-x11-server.spec | 2 - 4 files changed, 155 insertions(+), 181 deletions(-) delete mode 100644 xorg-server-xf4vnc-fix-crash-on-193.diff diff --git a/xorg-server-xf4vnc-fix-crash-on-193.diff b/xorg-server-xf4vnc-fix-crash-on-193.diff deleted file mode 100644 index 9d6b0ca..0000000 --- a/xorg-server-xf4vnc-fix-crash-on-193.diff +++ /dev/null @@ -1,110 +0,0 @@ -diff -urp xorg-server-1.9.3.orig//hw/vnc/dispcur.c xorg-server-1.9.3/hw/vnc/dispcur.c ---- xorg-server-1.9.3.orig//hw/vnc/dispcur.c 2010-12-21 16:51:38.000000000 +0100 -+++ xorg-server-1.9.3/hw/vnc/dispcur.c 2010-12-21 18:23:02.000000000 +0100 -@@ -74,10 +74,10 @@ in this Software without prior written a - - /* per-screen private data */ - --static int rfbDCScreenKeyStore; --static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore; --static int rfbScreenKeyStore; --static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore; -+static DevPrivateKeyRec rfbDCScreenKeyRec; -+#define rfbDCScreenKey (&rfbDCScreenKeyRec) -+static DevPrivateKeyRec rfbScreenKeyRec; -+#define rfbScreenKey (&rfbScreenKeyRec) - - static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen); - -@@ -137,6 +137,12 @@ rfbDCInitialize (ScreenPtr pScreen, miPo - { - rfbDCScreenPtr pScreenPriv; - -+ if (!dixRegisterPrivateKey(rfbDCScreenKey, PRIVATE_SCREEN, 0)) -+ return FALSE; -+ -+ if (!dixRegisterPrivateKey(rfbScreenKey, PRIVATE_CURSOR_BITS, 0)) -+ return FALSE; -+ - pScreenPriv = (rfbDCScreenPtr) xalloc (sizeof (rfbDCScreenRec)); - if (!pScreenPriv) - return FALSE; -diff -urp xorg-server-1.9.3.orig//hw/vnc/draw.c xorg-server-1.9.3/hw/vnc/draw.c ---- xorg-server-1.9.3.orig//hw/vnc/draw.c 2010-12-21 16:51:38.000000000 +0100 -+++ xorg-server-1.9.3/hw/vnc/draw.c 2010-12-21 18:30:00.000000000 +0100 -@@ -61,6 +61,10 @@ in this Software without prior written a - - int rfbDeferUpdateTime = 40; /* ms */ - -+extern DevPrivateKeyRec rfbGCKeyRec; -+#define rfbGCKey (&rfbGCKeyRec) -+ -+ - - /****************************************************************************/ - /* -diff -urp xorg-server-1.9.3.orig//hw/vnc/sprite.c xorg-server-1.9.3/hw/vnc/sprite.c ---- xorg-server-1.9.3.orig//hw/vnc/sprite.c 2010-12-21 16:51:38.000000000 +0100 -+++ xorg-server-1.9.3/hw/vnc/sprite.c 2010-12-21 18:21:32.000000000 +0100 -@@ -114,8 +114,9 @@ static void rfbSpriteSaveDoomedAreas - static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed); - static void rfbSpriteComputeSaved(ScreenPtr pScreen); - --static int rfbSpriteScreenKeyStore; --static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore; -+static DevPrivateKeyRec rfbSpriteScreenKeyRec; -+#define rfbSpriteScreenKey (&rfbSpriteScreenKeyRec) -+ - - #define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \ - ((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \ -@@ -147,8 +148,8 @@ static GCFuncs rfbSpriteGCFuncs = { - rfbSpriteCopyClip, - }; - --static int rfbSpriteGCKeyStore; --static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore; -+static DevPrivateKeyRec rfbSpriteGCKeyRec; -+#define rfbSpriteGCKey (&rfbSpriteGCKeyRec) - - #define GC_FUNC_PROLOGUE(pGC) \ - rfbSpriteGCPtr pGCPriv = \ -@@ -331,6 +332,9 @@ rfbSpriteInitialize (pScreen, cursorFunc - rfbSpriteScreenPtr pPriv; - VisualPtr pVisual; - -+ if (!dixRegisterPrivateKey(rfbSpriteScreenKey, PRIVATE_SCREEN, 0)) -+ return FALSE; -+ - if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_CLIENT, sizeof(rfbSpriteGCRec))) - return FALSE; - -diff -urp xorg-server-1.9.3.orig//hw/vnc/vncext.c xorg-server-1.9.3/hw/vnc/vncext.c ---- xorg-server-1.9.3.orig//hw/vnc/vncext.c 2010-12-21 16:51:38.000000000 +0100 -+++ xorg-server-1.9.3/hw/vnc/vncext.c 2010-12-21 18:29:54.000000000 +0100 -@@ -36,9 +36,10 @@ - #include - #include - --static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore; --DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore; --DevPrivateKey rfbGCKey = &rfbGCKeyStore; -+static DevPrivateKeyRec vncCreateScreenResourcesKeyRec; -+#define vncCreateScreenResourcesKey (&vncCreateScreenResourcesKeyRec) -+DevPrivateKeyRec rfbGCKeyRec; -+#define rfbGCKey (&rfbGCKeyRec) - - int VncSelectNotify(ClientPtr client, BOOL onoff); - void VncExtensionInit(void); -@@ -762,7 +763,11 @@ VncExtensionInit(void) - - vncExtGeneration = serverGeneration; - -+ // doesn't seem to be valid any more - mhopf 21.12.2010 - // no allocation needed for screen privates -+ if (!dixRegisterPrivateKey(vncCreateScreenResourcesKey, PRIVATE_SCREEN, 0)) -+ return; -+ - if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_CLIENT, sizeof(rfbGCRec))) - return; - diff --git a/xorg-server-xf4vnc-fixes_1_9.diff b/xorg-server-xf4vnc-fixes_1_9.diff index 2ca9f27..3290f6a 100644 --- a/xorg-server-xf4vnc-fixes_1_9.diff +++ b/xorg-server-xf4vnc-fixes_1_9.diff @@ -1,7 +1,7 @@ -Index: xorg-server-1.9.2/hw/vnc/rfb.h +Index: xorg-server-1.9.3/hw/vnc/rfb.h =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/rfb.h -+++ xorg-server-1.9.2/hw/vnc/rfb.h +--- xorg-server-1.9.3.orig/hw/vnc/rfb.h ++++ xorg-server-1.9.3/hw/vnc/rfb.h @@ -189,8 +189,8 @@ typedef struct CloseScreenProcPtr CloseScreen; @@ -13,11 +13,22 @@ Index: xorg-server-1.9.2/hw/vnc/rfb.h CopyWindowProcPtr CopyWindow; ClearToBackgroundProcPtr ClearToBackground; RestoreAreasProcPtr RestoreAreas; -Index: xorg-server-1.9.2/hw/vnc/draw.c +Index: xorg-server-1.9.3/hw/vnc/draw.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/draw.c -+++ xorg-server-1.9.2/hw/vnc/draw.c -@@ -217,8 +217,8 @@ rfbCloseScreen (int i, ScreenPtr pScreen +--- xorg-server-1.9.3.orig/hw/vnc/draw.c ++++ xorg-server-1.9.3/hw/vnc/draw.c +@@ -61,6 +61,10 @@ in this Software without prior written a + + int rfbDeferUpdateTime = 40; /* ms */ + ++extern DevPrivateKeyRec rfbGCKeyRec; ++#define rfbGCKey (&rfbGCKeyRec) ++ ++ + + /****************************************************************************/ + /* +@@ -217,8 +221,8 @@ rfbCloseScreen (int i, ScreenPtr pScreen pScreen->CloseScreen = pVNC->CloseScreen; pScreen->CreateGC = pVNC->CreateGC; @@ -28,7 +39,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c pScreen->CopyWindow = pVNC->CopyWindow; pScreen->ClearToBackground = pVNC->ClearToBackground; pScreen->RestoreAreas = pVNC->RestoreAreas; -@@ -252,7 +252,7 @@ rfbEnableDisableFBAccess (int index, Boo +@@ -252,7 +256,7 @@ rfbEnableDisableFBAccess (int index, Boo * control even when switched away. */ if (!enable) { @@ -37,7 +48,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c ScreenPtr pScreen = pWin->drawable.pScreen; GCPtr pGC; xRectangle rect; -@@ -268,7 +268,7 @@ rfbEnableDisableFBAccess (int index, Boo +@@ -268,7 +272,7 @@ rfbEnableDisableFBAccess (int index, Boo CARD32 attributes[2]; attributes[0] = pScreen->whitePixel; attributes[1] = pScreen->blackPixel; @@ -46,7 +57,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c ValidateGC((DrawablePtr)pWin, pGC); -@@ -317,6 +317,7 @@ rfbCreateGC (GCPtr pGC) +@@ -317,6 +321,7 @@ rfbCreateGC (GCPtr pGC) return ret; } @@ -54,7 +65,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c /* * PaintWindowBackground - the region being modified is just the given region. */ -@@ -356,6 +357,7 @@ rfbPaintWindowBorder (WindowPtr pWin, Re +@@ -356,6 +361,7 @@ rfbPaintWindowBorder (WindowPtr pWin, Re SCREEN_EPILOGUE(PaintWindowBorder,rfbPaintWindowBorder); } @@ -62,10 +73,10 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c #ifdef CHROMIUM Bool -Index: xorg-server-1.9.2/hw/vnc/init.c +Index: xorg-server-1.9.3/hw/vnc/init.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/init.c -+++ xorg-server-1.9.2/hw/vnc/init.c +--- xorg-server-1.9.3.orig/hw/vnc/init.c ++++ xorg-server-1.9.3/hw/vnc/init.c @@ -670,8 +670,8 @@ rfbScreenInit(index, pScreen, argc, argv prfb->CloseScreen = pScreen->CloseScreen; prfb->WakeupHandler = pScreen->WakeupHandler; @@ -88,10 +99,10 @@ Index: xorg-server-1.9.2/hw/vnc/init.c pScreen->CopyWindow = rfbCopyWindow; pScreen->ClearToBackground = rfbClearToBackground; pScreen->RestoreAreas = rfbRestoreAreas; -Index: xorg-server-1.9.2/hw/vnc/sprite.c +Index: xorg-server-1.9.3/hw/vnc/sprite.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/sprite.c -+++ xorg-server-1.9.2/hw/vnc/sprite.c +--- xorg-server-1.9.3.orig/hw/vnc/sprite.c ++++ xorg-server-1.9.3/hw/vnc/sprite.c @@ -96,8 +96,10 @@ static void rfbSpriteInstallColormap static void rfbSpriteStoreColors(ColormapPtr pMap, int ndef, xColorItem *pdef); @@ -103,16 +114,42 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c static void rfbSpritePaintWindowBorder(WindowPtr pWin, RegionPtr pRegion, int what); static void rfbSpriteCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, -@@ -329,7 +331,7 @@ rfbSpriteInitialize (pScreen, cursorFunc +@@ -112,8 +114,9 @@ static void rfbSpriteSaveDoomedAreas + static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed); + static void rfbSpriteComputeSaved(ScreenPtr pScreen); + +-static int rfbSpriteScreenKeyStore; +-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore; ++static DevPrivateKeyRec rfbSpriteScreenKeyRec; ++#define rfbSpriteScreenKey (&rfbSpriteScreenKeyRec) ++ + + #define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \ + ((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \ +@@ -145,8 +148,8 @@ static GCFuncs rfbSpriteGCFuncs = { + rfbSpriteCopyClip, + }; + +-static int rfbSpriteGCKeyStore; +-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore; ++static DevPrivateKeyRec rfbSpriteGCKeyRec; ++#define rfbSpriteGCKey (&rfbSpriteGCKeyRec) + + #define GC_FUNC_PROLOGUE(pGC) \ + rfbSpriteGCPtr pGCPriv = \ +@@ -329,7 +332,10 @@ rfbSpriteInitialize (pScreen, cursorFunc rfbSpriteScreenPtr pPriv; VisualPtr pVisual; - if (!dixRequestPrivate(rfbSpriteGCKey, sizeof(rfbSpriteGCRec))) ++ if (!dixRegisterPrivateKey(rfbSpriteScreenKey, PRIVATE_SCREEN, 0)) ++ return FALSE; ++ + if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_GC, sizeof(rfbSpriteGCRec))) return FALSE; pPriv = (rfbSpriteScreenPtr) xalloc (sizeof (rfbSpriteScreenRec)); -@@ -357,8 +359,8 @@ rfbSpriteInitialize (pScreen, cursorFunc +@@ -357,8 +363,8 @@ rfbSpriteInitialize (pScreen, cursorFunc pPriv->StoreColors = pScreen->StoreColors; pPriv->DisplayCursor = pScreen->DisplayCursor; @@ -123,7 +160,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c pPriv->CopyWindow = pScreen->CopyWindow; pPriv->ClearToBackground = pScreen->ClearToBackground; -@@ -393,8 +395,8 @@ rfbSpriteInitialize (pScreen, cursorFunc +@@ -393,8 +399,8 @@ rfbSpriteInitialize (pScreen, cursorFunc pScreen->InstallColormap = rfbSpriteInstallColormap; pScreen->StoreColors = rfbSpriteStoreColors; @@ -134,7 +171,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c pScreen->CopyWindow = rfbSpriteCopyWindow; pScreen->ClearToBackground = rfbSpriteClearToBackground; -@@ -435,8 +437,8 @@ rfbSpriteCloseScreen (i, pScreen) +@@ -435,8 +441,8 @@ rfbSpriteCloseScreen (i, pScreen) pScreen->InstallColormap = pScreenPriv->InstallColormap; pScreen->StoreColors = pScreenPriv->StoreColors; @@ -145,7 +182,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c pScreen->CopyWindow = pScreenPriv->CopyWindow; pScreen->ClearToBackground = pScreenPriv->ClearToBackground; -@@ -809,6 +811,7 @@ rfbSpriteRestoreAreas (pWin, prgnExposed +@@ -809,6 +815,7 @@ rfbSpriteRestoreAreas (pWin, prgnExposed * Window wrappers */ @@ -153,7 +190,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c static void rfbSpritePaintWindowBackground (pWin, pRegion, what) WindowPtr pWin; -@@ -866,6 +869,7 @@ rfbSpritePaintWindowBorder (pWin, pRegio +@@ -866,6 +873,7 @@ rfbSpritePaintWindowBorder (pWin, pRegio SCREEN_EPILOGUE (pScreen, PaintWindowBorder, rfbSpritePaintWindowBorder); } @@ -161,10 +198,10 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c static void rfbSpriteCopyWindow (pWin, ptOldOrg, pRegion) -Index: xorg-server-1.9.2/hw/vnc/spritest.h +Index: xorg-server-1.9.3/hw/vnc/spritest.h =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/spritest.h -+++ xorg-server-1.9.2/hw/vnc/spritest.h +--- xorg-server-1.9.3.orig/hw/vnc/spritest.h ++++ xorg-server-1.9.3/hw/vnc/spritest.h @@ -70,8 +70,8 @@ typedef struct { ScreenBlockHandlerProcPtr BlockHandler; InstallColormapProcPtr InstallColormap; @@ -176,10 +213,10 @@ Index: xorg-server-1.9.2/hw/vnc/spritest.h CopyWindowProcPtr CopyWindow; ClearToBackgroundProcPtr ClearToBackground; SaveDoomedAreasProcPtr SaveDoomedAreas; -Index: xorg-server-1.9.2/hw/vnc/cutpaste.c +Index: xorg-server-1.9.3/hw/vnc/cutpaste.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/cutpaste.c -+++ xorg-server-1.9.2/hw/vnc/cutpaste.c +--- xorg-server-1.9.3.orig/hw/vnc/cutpaste.c ++++ xorg-server-1.9.3/hw/vnc/cutpaste.c @@ -54,7 +54,7 @@ rfbSetXCutText(char *str, int len) Selection *pSel; @@ -189,11 +226,39 @@ Index: xorg-server-1.9.2/hw/vnc/cutpaste.c 8, PropModeReplace, len, (pointer)str, TRUE); -Index: xorg-server-1.9.2/hw/vnc/dispcur.c +Index: xorg-server-1.9.3/hw/vnc/dispcur.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/dispcur.c -+++ xorg-server-1.9.2/hw/vnc/dispcur.c -@@ -340,7 +340,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP +--- xorg-server-1.9.3.orig/hw/vnc/dispcur.c ++++ xorg-server-1.9.3/hw/vnc/dispcur.c +@@ -74,10 +74,10 @@ in this Software without prior written a + + /* per-screen private data */ + +-static int rfbDCScreenKeyStore; +-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore; +-static int rfbScreenKeyStore; +-static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore; ++static DevPrivateKeyRec rfbDCScreenKeyRec; ++#define rfbDCScreenKey (&rfbDCScreenKeyRec) ++static DevPrivateKeyRec rfbScreenKeyRec; ++#define rfbScreenKey (&rfbScreenKeyRec) + + static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen); + +@@ -137,6 +137,12 @@ rfbDCInitialize (ScreenPtr pScreen, miPo + { + rfbDCScreenPtr pScreenPriv; + ++ if (!dixRegisterPrivateKey(rfbDCScreenKey, PRIVATE_SCREEN, 0)) ++ return FALSE; ++ ++ if (!dixRegisterPrivateKey(rfbScreenKey, PRIVATE_CURSOR_BITS, 0)) ++ return FALSE; ++ + pScreenPriv = (rfbDCScreenPtr) xalloc (sizeof (rfbDCScreenRec)); + if (!pScreenPriv) + return FALSE; +@@ -340,7 +346,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP 0, 0, pCursor->bits->width, pCursor->bits->height, 0, XYPixmap, (char *)pCursor->bits->source); gcvals[0] = GXand; @@ -202,7 +267,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c ValidateGC ((DrawablePtr)pPriv->sourceBits, pGC); (*pGC->ops->PutImage) ((DrawablePtr)pPriv->sourceBits, pGC, 1, 0, 0, pCursor->bits->width, pCursor->bits->height, -@@ -348,13 +348,13 @@ rfbDCRealize (ScreenPtr pScreen, CursorP +@@ -348,13 +354,13 @@ rfbDCRealize (ScreenPtr pScreen, CursorP /* mask bits -- pCursor->mask & ~pCursor->source */ gcvals[0] = GXcopy; @@ -218,7 +283,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c ValidateGC ((DrawablePtr)pPriv->maskBits, pGC); (*pGC->ops->PutImage) ((DrawablePtr)pPriv->maskBits, pGC, 1, 0, 0, pCursor->bits->width, pCursor->bits->height, -@@ -396,7 +396,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb +@@ -396,7 +402,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb if (sourceGC->fgPixel != source) { gcvals[0] = source; @@ -227,7 +292,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c } if (sourceGC->serialNumber != pDrawable->serialNumber) ValidateGC (pDrawable, sourceGC); -@@ -404,7 +404,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb +@@ -404,7 +410,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb if (maskGC->fgPixel != mask) { gcvals[0] = mask; @@ -236,7 +301,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c } if (maskGC->serialNumber != pDrawable->serialNumber) ValidateGC (pDrawable, maskGC); -@@ -451,7 +451,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y +@@ -451,7 +457,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y } pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbDCScreenKey); @@ -245,7 +310,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c #ifdef ARGB_CURSOR if (pPriv->pPicture) { -@@ -498,7 +498,7 @@ rfbDCSaveUnderCursor (pScreen, x, y, w, +@@ -498,7 +504,7 @@ rfbDCSaveUnderCursor (pScreen, x, y, w, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbDCScreenKey); pSave = pScreenPriv->pSave; @@ -254,7 +319,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c if (!pSave || pSave->drawable.width < w || pSave->drawable.height < h) { if (pSave) -@@ -531,7 +531,7 @@ rfbDCRestoreUnderCursor (pScreen, x, y, +@@ -531,7 +537,7 @@ rfbDCRestoreUnderCursor (pScreen, x, y, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbDCScreenKey); pSave = pScreenPriv->pSave; @@ -263,7 +328,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c if (!pSave) return FALSE; if (!EnsureGC(pScreenPriv->pRestoreGC, pWin)) -@@ -558,7 +558,7 @@ rfbDCChangeSave (pScreen, x, y, w, h, dx +@@ -558,7 +564,7 @@ rfbDCChangeSave (pScreen, x, y, w, h, dx pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbDCScreenKey); pSave = pScreenPriv->pSave; @@ -272,7 +337,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c /* * restore the bits which are about to get trashed */ -@@ -702,7 +702,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y, +@@ -702,7 +708,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y, } pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, rfbDCScreenKey); @@ -281,10 +346,10 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c pTemp = pScreenPriv->pTemp; if (!pTemp || pTemp->drawable.width != pScreenPriv->pSave->drawable.width || -Index: xorg-server-1.9.2/hw/vnc/kbdptr.c +Index: xorg-server-1.9.3/hw/vnc/kbdptr.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/kbdptr.c -+++ xorg-server-1.9.2/hw/vnc/kbdptr.c +--- xorg-server-1.9.3.orig/hw/vnc/kbdptr.c ++++ xorg-server-1.9.3/hw/vnc/kbdptr.c @@ -153,7 +153,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf #ifdef CORBA if (cl) { @@ -303,10 +368,10 @@ Index: xorg-server-1.9.2/hw/vnc/kbdptr.c 32, PropModeReplace, 1, (pointer)&clientId, TRUE); } #endif -Index: xorg-server-1.9.2/hw/vnc/rfbserver.c +Index: xorg-server-1.9.3/hw/vnc/rfbserver.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/rfbserver.c -+++ xorg-server-1.9.2/hw/vnc/rfbserver.c +--- xorg-server-1.9.3.orig/hw/vnc/rfbserver.c ++++ xorg-server-1.9.3/hw/vnc/rfbserver.c @@ -82,7 +82,7 @@ void rfbRootPropertyChange(ScreenPtr pScreen) { @@ -373,10 +438,10 @@ Index: xorg-server-1.9.2/hw/vnc/rfbserver.c #else redEntry = (EntryPtr)&pVNC->rfbInstalledColormap->red[redPart]; greenEntry = (EntryPtr)&pVNC->rfbInstalledColormap->green[greenPart]; -Index: xorg-server-1.9.2/hw/vnc/tabletranstemplate.c +Index: xorg-server-1.9.3/hw/vnc/tabletranstemplate.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/tabletranstemplate.c -+++ xorg-server-1.9.2/hw/vnc/tabletranstemplate.c +--- xorg-server-1.9.3.orig/hw/vnc/tabletranstemplate.c ++++ xorg-server-1.9.3/hw/vnc/tabletranstemplate.c @@ -67,7 +67,7 @@ rfbTranslateWithSingleTableINtoOUT (Scre OUT_T *op = (OUT_T *)optr; OUT_T *opLineEnd; @@ -395,10 +460,10 @@ Index: xorg-server-1.9.2/hw/vnc/tabletranstemplate.c int truewidth = PixmapBytePad(width, in->bitsPerPixel); unsigned char *iptr = malloc(truewidth * height * in->bitsPerPixel / 8); int ipextra = truewidth - width; -Index: xorg-server-1.9.2/hw/vnc/translate.c +Index: xorg-server-1.9.3/hw/vnc/translate.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/translate.c -+++ xorg-server-1.9.2/hw/vnc/translate.c +--- xorg-server-1.9.3.orig/hw/vnc/translate.c ++++ xorg-server-1.9.3/hw/vnc/translate.c @@ -167,7 +167,7 @@ rfbTranslateNone(ScreenPtr pScreen, char int width, int height, int x, int y) { @@ -444,10 +509,10 @@ Index: xorg-server-1.9.2/hw/vnc/translate.c #else nColours = pVNC->rfbInstalledColormap->pVisual->ColormapEntries; #endif -Index: xorg-server-1.9.2/hw/dmx/vnc/vncint.h +Index: xorg-server-1.9.3/hw/dmx/vnc/vncint.h =================================================================== ---- xorg-server-1.9.2.orig/hw/dmx/vnc/vncint.h -+++ xorg-server-1.9.2/hw/dmx/vnc/vncint.h +--- xorg-server-1.9.3.orig/hw/dmx/vnc/vncint.h ++++ xorg-server-1.9.3/hw/dmx/vnc/vncint.h @@ -114,8 +114,8 @@ typedef struct { CloseScreenProcPtr CloseScreen; @@ -459,10 +524,10 @@ Index: xorg-server-1.9.2/hw/dmx/vnc/vncint.h CopyWindowProcPtr CopyWindow; ClearToBackgroundProcPtr ClearToBackground; RestoreAreasProcPtr RestoreAreas; -Index: xorg-server-1.9.2/hw/xfree86/vnc/vncint.h +Index: xorg-server-1.9.3/hw/xfree86/vnc/vncint.h =================================================================== ---- xorg-server-1.9.2.orig/hw/xfree86/vnc/vncint.h -+++ xorg-server-1.9.2/hw/xfree86/vnc/vncint.h +--- xorg-server-1.9.3.orig/hw/xfree86/vnc/vncint.h ++++ xorg-server-1.9.3/hw/xfree86/vnc/vncint.h @@ -112,8 +112,8 @@ typedef struct { CloseScreenProcPtr CloseScreen; @@ -474,23 +539,42 @@ Index: xorg-server-1.9.2/hw/xfree86/vnc/vncint.h CopyWindowProcPtr CopyWindow; ClearToBackgroundProcPtr ClearToBackground; RestoreAreasProcPtr RestoreAreas; -Index: xorg-server-1.9.2/hw/vnc/vncext.c +Index: xorg-server-1.9.3/hw/vnc/vncext.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/vncext.c -+++ xorg-server-1.9.2/hw/vnc/vncext.c -@@ -763,7 +763,7 @@ VncExtensionInit(void) +--- xorg-server-1.9.3.orig/hw/vnc/vncext.c ++++ xorg-server-1.9.3/hw/vnc/vncext.c +@@ -36,9 +36,10 @@ + #include + #include + +-static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore; +-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore; +-DevPrivateKey rfbGCKey = &rfbGCKeyStore; ++static DevPrivateKeyRec vncCreateScreenResourcesKeyRec; ++#define vncCreateScreenResourcesKey (&vncCreateScreenResourcesKeyRec) ++DevPrivateKeyRec rfbGCKeyRec; ++#define rfbGCKey (&rfbGCKeyRec) + + int VncSelectNotify(ClientPtr client, BOOL onoff); + void VncExtensionInit(void); +@@ -762,8 +763,12 @@ VncExtensionInit(void) + vncExtGeneration = serverGeneration; ++ // doesn't seem to be valid any more - mhopf 21.12.2010 // no allocation needed for screen privates - if (!dixRequestPrivate(rfbGCKey, sizeof(rfbGCRec))) ++ if (!dixRegisterPrivateKey(vncCreateScreenResourcesKey, PRIVATE_SCREEN, 0)) ++ return; ++ + if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_GC, sizeof(rfbGCRec))) return; #if XFREE86VNC -Index: xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c +Index: xorg-server-1.9.3/hw/vnc/tableinitcmtemplate.c =================================================================== ---- xorg-server-1.9.2.orig/hw/vnc/tableinitcmtemplate.c -+++ xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c +--- xorg-server-1.9.3.orig/hw/vnc/tableinitcmtemplate.c ++++ xorg-server-1.9.3/hw/vnc/tableinitcmtemplate.c @@ -61,7 +61,7 @@ rfbInitColourMapSingleTableOUT (ScreenPt t = (OUT_T *)*table; @@ -500,10 +584,10 @@ Index: xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c #else pent = (EntryPtr)&pVNC->rfbInstalledColormap->red[0]; #endif -Index: xorg-server-1.9.2/hw/xfree86/vnc/vncInit.c +Index: xorg-server-1.9.3/hw/xfree86/vnc/vncInit.c =================================================================== ---- xorg-server-1.9.2.orig/hw/xfree86/vnc/vncInit.c -+++ xorg-server-1.9.2/hw/xfree86/vnc/vncInit.c +--- xorg-server-1.9.3.orig/hw/xfree86/vnc/vncInit.c ++++ xorg-server-1.9.3/hw/xfree86/vnc/vncInit.c @@ -286,8 +286,8 @@ VNCInit(ScreenPtr pScreen, unsigned char pScreenPriv->CloseScreen = pScreen->CloseScreen; diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index ad09581..1755f03 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -4,6 +4,8 @@ Fri Feb 11 16:41:02 UTC 2011 - mhopf@novell.com - Update xorg-server-xf4vnc-fixes_1_9.diff: Fix Xvnc rendering issues. - Enable build of Xvnc again. +- Merge xorg-server-xf4vnc-fix-crash-on-193.diff + into xorg-server-xf4vnc-fixes_1_9.diff ------------------------------------------------------------------- Thu Feb 3 17:36:16 UTC 2011 - sndirsch@novell.com diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index dfdf507..39b0014 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -80,7 +80,6 @@ Patch48: xorg-server-xf4vnc-fix.diff Patch49: xorg-server-xf4vnc-fixes_1_8.diff Patch50: xorg-server-xf4vnc-fixes_1_9.diff Patch51: xorg-server-xf4vnc-bug605015-vnc-umlauts.diff -Patch52: xorg-server-xf4vnc-fix-crash-on-193.diff %endif Patch45: bug-197858_dpms.diff Patch67: xorg-docs.diff @@ -208,7 +207,6 @@ An X Window System server for Virtual Network Computing (VNC). %patch49 -p0 %patch50 -p1 #%patch51 -p1 -%patch52 -p1 chmod 755 hw/vnc/symlink-vnc.sh %endif %patch45 -p0