From 4127e8e5be5c366eb752bbb8d7f0ff5b519e641b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 10 Feb 2010 17:56:30 -0800 Subject: [PATCH] XQuartz: clang static analysis fixes Signed-off-by: Jeremy Huddleston --- hw/xquartz/GL/indirect.c | 2 +- hw/xquartz/GL/visualConfigs.c | 3 +-- hw/xquartz/X11Application.m | 18 +++++++++------- hw/xquartz/mach-startup/bundle-main.c | 30 ++++++++++++++++++++------- hw/xquartz/mach-startup/stub.c | 7 ------- hw/xquartz/pbproxy/x-selection.h | 9 -------- hw/xquartz/quartzAudio.c | 1 + hw/xquartz/quartzKeyboard.c | 2 +- 8 files changed, 37 insertions(+), 35 deletions(-) diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c index 176282532..44380ffa0 100644 --- a/hw/xquartz/GL/indirect.c +++ b/hw/xquartz/GL/indirect.c @@ -548,7 +548,7 @@ static CGLPixelFormatObj makeFormat(__GLXconfig *conf) { attr[i++] = conf->samples; } - attr[i++] = 0; + attr[i + 1] = 0; error = CGLChoosePixelFormat(attr, &fobj, &formats); if(error) { diff --git a/hw/xquartz/GL/visualConfigs.c b/hw/xquartz/GL/visualConfigs.c index f92677847..bef27f048 100644 --- a/hw/xquartz/GL/visualConfigs.c +++ b/hw/xquartz/GL/visualConfigs.c @@ -62,7 +62,7 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber) int numConfigs = 0; __GLXconfig *visualConfigs, *c; struct glCapabilities caps; - struct glCapabilitiesConfig *conf = NULL; + struct glCapabilitiesConfig *conf; int stereo, depth, aux, buffers, stencil, accum, color, msample; if(getGlCapabilities(&caps)) { @@ -94,7 +94,6 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber) */ assert(NULL != caps.configurations); - conf = caps.configurations; numConfigs = 0; diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index f3c8a307a..3faa1cb84 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -482,7 +482,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { return out; } -- (CFPropertyListRef) prefs_get:(NSString *)key { +- (CFPropertyListRef) prefs_get_copy:(NSString *)key { CFPropertyListRef value; value = CFPreferencesCopyAppValue ((CFStringRef) key, app_prefs_domain_cfstr); @@ -543,7 +543,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { CFPropertyListRef value; int ret; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL && CFGetTypeID (value) == CFNumberGetTypeID ()) CFNumberGetValue (value, kCFNumberIntType, &ret); @@ -561,7 +561,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { CFPropertyListRef value; const char *ret = NULL; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID ()) { NSString *s = (NSString *) value; @@ -578,12 +578,13 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { CFPropertyListRef value; NSURL *ret = NULL; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID ()) { NSString *s = (NSString *) value; ret = [NSURL URLWithString:s]; + [ret retain]; } if (value != NULL) CFRelease (value); @@ -595,7 +596,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { CFPropertyListRef value; float ret = def; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL && CFGetTypeID (value) == CFNumberGetTypeID () @@ -613,7 +614,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { CFPropertyListRef value; int ret = def; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL) { if (CFGetTypeID (value) == CFNumberGetTypeID ()) @@ -637,7 +638,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { NSArray *ret = nil; CFPropertyListRef value; - value = [self prefs_get:key]; + value = [self prefs_get_copy:key]; if (value != NULL) { if (CFGetTypeID (value) == CFArrayGetTypeID ()) @@ -757,7 +758,7 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { NSURL *url = [self prefs_copy_url:@PREFS_UPDATE_FEED default:nil]; if(url) { [[SUUpdater sharedUpdater] setFeedURL:url]; - CFRelease(url); + [url release]; } #endif } @@ -970,6 +971,7 @@ void X11ApplicationMain (int argc, char **argv, char **envp) { // [[SUUpdater sharedUpdater] checkForUpdates:X11App]; #endif + [pool release]; [NSApp run]; /* not reached */ } diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c index 0366f3ba2..4872ff59b 100644 --- a/hw/xquartz/mach-startup/bundle-main.c +++ b/hw/xquartz/mach-startup/bundle-main.c @@ -641,30 +641,46 @@ static int execute(const char *command) { static char *command_from_prefs(const char *key, const char *default_value) { char *command = NULL; - CFStringRef cfKey = CFStringCreateWithCString(NULL, key, kCFStringEncodingASCII); - CFPropertyListRef PlistRef = CFPreferencesCopyAppValue(cfKey, kCFPreferencesCurrentApplication); + CFStringRef cfKey; + CFPropertyListRef PlistRef; + + if(!key) + return NULL; + + cfKey = CFStringCreateWithCString(NULL, key, kCFStringEncodingASCII); + + if(!cfKey) + return NULL; + + PlistRef = CFPreferencesCopyAppValue(cfKey, kCFPreferencesCurrentApplication); if ((PlistRef == NULL) || (CFGetTypeID(PlistRef) != CFStringGetTypeID())) { CFStringRef cfDefaultValue = CFStringCreateWithCString(NULL, default_value, kCFStringEncodingASCII); int len = strlen(default_value) + 1; + if(!cfDefaultValue) + goto command_from_prefs_out; + CFPreferencesSetAppValue(cfKey, cfDefaultValue, kCFPreferencesCurrentApplication); CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication); + CFRelease(cfDefaultValue); command = (char *)malloc(len * sizeof(char)); if(!command) - return NULL; + goto command_from_prefs_out; strcpy(command, default_value); } else { int len = CFStringGetLength((CFStringRef)PlistRef) + 1; command = (char *)malloc(len * sizeof(char)); if(!command) - return NULL; + goto command_from_prefs_out; CFStringGetCString((CFStringRef)PlistRef, command, len, kCFStringEncodingASCII); - } - + } + +command_from_prefs_out: if (PlistRef) CFRelease(PlistRef); - + if(cfKey) + CFRelease(cfKey); return command; } diff --git a/hw/xquartz/mach-startup/stub.c b/hw/xquartz/mach-startup/stub.c index 89f9e1058..ccf5ab426 100644 --- a/hw/xquartz/mach-startup/stub.c +++ b/hw/xquartz/mach-startup/stub.c @@ -73,7 +73,6 @@ static void set_x11_path(void) { #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 CFURLRef appURL = NULL; - CFBundleRef bundle = NULL; OSStatus osstatus = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(kX11AppBundleId), nil, nil, &appURL); switch (osstatus) { @@ -84,12 +83,6 @@ static void set_x11_path(void) { exit(1); } - bundle = CFBundleCreate(NULL, appURL); - if(!bundle) { - fprintf(stderr, "Xquartz: Null value returned from CFBundleCreate().\n"); - exit(2); - } - if (!CFURLGetFileSystemRepresentation(appURL, true, (unsigned char *)x11_path, sizeof(x11_path))) { fprintf(stderr, "Xquartz: Error resolving URL for %s\n", kX11AppBundleId); exit(3); diff --git a/hw/xquartz/pbproxy/x-selection.h b/hw/xquartz/pbproxy/x-selection.h index fc903d0af..614c8b091 100644 --- a/hw/xquartz/pbproxy/x-selection.h +++ b/hw/xquartz/pbproxy/x-selection.h @@ -58,15 +58,6 @@ struct atom_list { /* The unmapped window we use for fetching selections. */ Window _selection_window; - /* Last time we declared anything on the pasteboard. */ - int _my_last_change; - - /* Name of the selection we're proxying onto the pasteboard. */ - Atom _proxied_selection; - - /* When true, we're expecting a SelectionNotify event. */ - unsigned int _pending_notify :1; - Atom request_atom; struct { diff --git a/hw/xquartz/quartzAudio.c b/hw/xquartz/quartzAudio.c index af63d18f5..e4b49fcd8 100644 --- a/hw/xquartz/quartzAudio.c +++ b/hw/xquartz/quartzAudio.c @@ -204,6 +204,7 @@ QuartzAudioIOProc( if (wasPlaying && !data->playing) { OSStatus err; err = AudioDeviceStop(inDevice, QuartzAudioIOProc); + fprintf(stderr, "Error stopping audio device: %ld\n", (long int)err); } pthread_mutex_unlock(&data->lock); return 0; diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c index 96b5fa5b6..3b4eac31c 100644 --- a/hw/xquartz/quartzKeyboard.c +++ b/hw/xquartz/quartzKeyboard.c @@ -368,7 +368,7 @@ void DarwinKeyboardReloadHandler(void) { KeySymsRec keySyms; CFIndex initialKeyRepeatValue, keyRepeatValue; BOOL ok; - DeviceIntPtr pDev = darwinKeyboard; + DeviceIntPtr pDev; const char *xmodmap = PROJECTROOT "/bin/xmodmap"; const char *sysmodmap = PROJECTROOT "/lib/X11/xinit/.Xmodmap"; const char *homedir = getenv("HOME");