From 648d189548530fa23d97d1e8737f89d297f1c443 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 13 Jul 2010 08:25:27 -0700 Subject: [PATCH 1/3] XQuartz: Avoid a crash when mistakenly free()ing in QuartzSetCursor on some configs Signed-off-by: Jeremy Huddleston --- hw/xquartz/xpr/xprCursor.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/xquartz/xpr/xprCursor.c b/hw/xquartz/xpr/xprCursor.c index 67fcbe76e..a106e7241 100644 --- a/hw/xquartz/xpr/xprCursor.c +++ b/hw/xquartz/xpr/xprCursor.c @@ -67,6 +67,7 @@ static Bool load_cursor(CursorPtr src, int screen) { uint32_t *data; + Bool free_data = FALSE; uint32_t rowbytes; int width, height; int hot_x, hot_y; @@ -95,6 +96,7 @@ load_cursor(CursorPtr src, int screen) unsigned i; rowbytes = src->bits->width * sizeof (CARD32); data = malloc(rowbytes * src->bits->height); + free_data = TRUE; if(!data) { FatalError("Failed to allocate memory in %s\n", __func__); } @@ -121,6 +123,7 @@ load_cursor(CursorPtr src, int screen) /* round up to 8 pixel boundary so we can convert whole bytes */ rowbytes = ((src->bits->width * 4) + 31) & ~31; data = malloc(rowbytes * src->bits->height); + free_data = TRUE; if(!data) { FatalError("Failed to allocate memory in %s\n", __func__); } @@ -173,7 +176,8 @@ load_cursor(CursorPtr src, int screen) } err = xp_set_cursor(width, height, hot_x, hot_y, data, rowbytes); - free(data); + if(free_data) + free(data); return err == Success; } From b2b9c458a46e9a41c3c76ffe83a2b580a41d0e90 Mon Sep 17 00:00:00 2001 From: Jan Hauffa Date: Wed, 16 Jun 2010 09:25:41 -0700 Subject: [PATCH 2/3] XQuartz: Remove some dead code. Signed-off-by: Jan Hauffa Reviewed-by: Jeremy Huddleston Signed-off-by: Jeremy Huddleston --- hw/xquartz/quartz.c | 4 ---- hw/xquartz/quartzCocoa.m | 11 ----------- hw/xquartz/quartzCommon.h | 15 --------------- 3 files changed, 30 deletions(-) diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index 2828c57ed..bdaa26242 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -67,12 +67,8 @@ #define FAKE_RANDR 1 // Shared global variables for Quartz modes -int quartzEventWriteFD = -1; int quartzUseSysBeep = 0; -int quartzUseAGL = 1; -int quartzEnableKeyEquivalents = 1; int quartzServerVisible = FALSE; -int quartzServerQuitting = FALSE; DevPrivateKeyRec quartzScreenKeyRec; int aquaMenuBarHeight = 0; QuartzModeProcsPtr quartzProcs = NULL; diff --git a/hw/xquartz/quartzCocoa.m b/hw/xquartz/quartzCocoa.m index 450147207..54c900dfa 100644 --- a/hw/xquartz/quartzCocoa.m +++ b/hw/xquartz/quartzCocoa.m @@ -43,17 +43,6 @@ #include "darwin.h" -/* - * QuartzFSUseQDCursor - * Return whether the screen should use a QuickDraw cursor. - */ -int QuartzFSUseQDCursor( - int depth) // screen depth -{ - return TRUE; -} - - /* * QuartzBlockHandler * Clean out any autoreleased objects. diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h index c038ed026..eb761ed04 100644 --- a/hw/xquartz/quartzCommon.h +++ b/hw/xquartz/quartzCommon.h @@ -51,20 +51,13 @@ typedef struct { #define QUARTZ_PRIV(pScreen) \ ((QuartzScreenPtr)dixLookupPrivate(&pScreen->devPrivates, quartzScreenKey)) -// Data stored at startup for Cocoa front end -extern int quartzEventWriteFD; - // User preferences used by Quartz modes extern int quartzUseSysBeep; -extern int focusOnNewWindow; -extern int quartzUseAGL; -extern int quartzEnableKeyEquivalents; extern int quartzFullscreenDisableHotkeys; extern int quartzOptionSendsAlt; // Other shared data extern int quartzServerVisible; -extern int quartzServerQuitting; extern DevPrivateKeyRec quartzScreenKeyRec; #define quartzScreenKey (&quartzScreenKeyRec) extern int aquaMenuBarHeight; @@ -72,14 +65,6 @@ extern int aquaMenuBarHeight; // Name of GLX bundle for native OpenGL extern const char *quartzOpenGLBundle; -void QuartzReadPreferences(void); -void QuartzMessageMainThread(unsigned msg, void *data, unsigned length); -void QuartzMessageServerThread(int type, int argc, ...); -void QuartzSetWindowMenu(int nitems, const char **items, - const char *shortcuts); -void QuartzFSCapture(void); -void QuartzFSRelease(void); -int QuartzFSUseQDCursor(int depth); void QuartzBlockHandler(pointer blockData, OSTimePtr pTimeout, pointer pReadmask); void QuartzWakeupHandler(pointer blockData, int result, pointer pReadmask); From 9d8ec712a67ce71ea7408f0626cda7e0fa7c3bac Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 13 Jul 2010 08:56:36 -0700 Subject: [PATCH 3/3] XQuartz: Bump bundle version to 2.6.0 for xorg-server-1.9.0 and X11R7.6 Signed-off-by: Jeremy Huddleston --- hw/xquartz/bundle/Info.plist.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp index 91c8c0393..85b439ad4 100644 --- a/hw/xquartz/bundle/Info.plist.cpp +++ b/hw/xquartz/bundle/Info.plist.cpp @@ -19,9 +19,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.5.1 + 2.6.0 CFBundleVersion - 2.5.1 + 2.6.0 CFBundleSignature x11a CSResourcesFileMapped