diff --git a/Source/NSMessagePort.m b/Source/NSMessagePort.m index 3e5ee5c0b..37a73f716 100644 --- a/Source/NSMessagePort.m +++ b/Source/NSMessagePort.m @@ -1186,13 +1186,15 @@ typedef struct { { static int unique_index = 0; NSString *path; - NSNumber *p = [NSNumber numberWithInt: 0700]; NSDictionary *attr; - attr = [NSDictionary dictionaryWithObject: p - forKey: NSFilePosixPermissions]; + if (nil == (path = NSTemporaryDirectory())) + { + return nil; + } - path = NSTemporaryDirectory(); + attr = [NSDictionary dictionaryWithObject: [NSNumber numberWithInt: 0700] + forKey: NSFilePosixPermissions]; path = [path stringByAppendingPathComponent: @"NSMessagePort"]; [[NSFileManager defaultManager] createDirectoryAtPath: path diff --git a/Source/NSMessagePortNameServer.m b/Source/NSMessagePortNameServer.m index 12cf4e180..93909ed5f 100644 --- a/Source/NSMessagePortNameServer.m +++ b/Source/NSMessagePortNameServer.m @@ -269,12 +269,16 @@ static void clean_up_names(void) [serverLock lock]; if (!base_path) { - NSNumber *p = [NSNumber numberWithInt: 0700]; NSDictionary *attr; - path = NSTemporaryDirectory(); - attr = [NSDictionary dictionaryWithObject: p - forKey: NSFilePosixPermissions]; + if (nil == (path = NSTemporaryDirectory())) + { + [serverLock unlock]; + return nil; + } + + attr = [NSDictionary dictionaryWithObject: [NSNumber numberWithInt: 0700] + forKey: NSFilePosixPermissions]; path = [path stringByAppendingPathComponent: @"NSMessagePort"]; [[NSFileManager defaultManager] createDirectoryAtPath: path