diff --git a/configure/Configure/Configure.m b/configure/Configure/Configure.m index 9280b62..faaf232 100644 --- a/configure/Configure/Configure.m +++ b/configure/Configure/Configure.m @@ -338,7 +338,6 @@ -(BOOL)install //save result wasInstalled = (BOOL)(result.intValue == 0); - }; //install diff --git a/configure/Configure/ConfigureWindowController.m b/configure/Configure/ConfigureWindowController.m index 223d99f..fc05abb 100644 --- a/configure/Configure/ConfigureWindowController.m +++ b/configure/Configure/ConfigureWindowController.m @@ -226,7 +226,7 @@ -(void)lifeCycleEvent:(NSInteger)event status = YES; //for install - // wait until kext cache rebuild is done + // wait until enum'ing of installed apps is done if(ACTION_INSTALL_FLAG == event) { //nap @@ -259,34 +259,35 @@ -(void)lifeCycleEvent:(NSInteger)event //dbg msg logMsg(LOG_DEBUG, [NSString stringWithFormat:@"'%@' completed", SYSTEM_PROFILER]); + } + + //update status msg + dispatch_async(dispatch_get_main_queue(), + ^{ + //set status msg + [self.statusMsg setStringValue:@"Rebuilding kernel cache\n\t\t ...please wait!"]; + }); + + //for both install and uninstall + //wait until 'kextcache' has exited + while(YES) + { + //dbg msg + logMsg(LOG_DEBUG, [NSString stringWithFormat:@"waiting for '%@' to complete", KEXT_CACHE]); - //update status msg - dispatch_async(dispatch_get_main_queue(), - ^{ - //set status msg - [self.statusMsg setStringValue:@"Rebuilding kernel cache\n\t\t ...please wait!"]; - }); + //nap + [NSThread sleepForTimeInterval:1.0]; - //wait until 'kextcache' has exited - while(YES) + //exit'd? + if(0 == [getProcessIDs(KEXT_CACHE, -1) count]) { - //dbg msg - logMsg(LOG_DEBUG, [NSString stringWithFormat:@"waiting for '%@' to complete", KEXT_CACHE]); - - //nap - [NSThread sleepForTimeInterval:1.0]; - - //exit'd? - if(0 == [getProcessIDs(KEXT_CACHE, -1) count]) - { - //bye - break; - } + //bye + break; } - - //dbg msg - logMsg(LOG_DEBUG, [NSString stringWithFormat:@"'%@' completed", KEXT_CACHE]); } + + //dbg msg + logMsg(LOG_DEBUG, [NSString stringWithFormat:@"'%@' completed", KEXT_CACHE]); } //error occurred diff --git a/configure/Configure/ErrorWindowController.m b/configure/Configure/ErrorWindowController.m index 567a6c5..f87b28a 100644 --- a/configure/Configure/ErrorWindowController.m +++ b/configure/Configure/ErrorWindowController.m @@ -88,7 +88,7 @@ -(void)display dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 100 * NSEC_PER_MSEC), dispatch_get_main_queue(), ^{ //make close button active - [self.window makeFirstResponder:closeButton]; + [self.window makeFirstResponder:self.closeButton]; }); diff --git a/configure/Configure/Script/configure.sh b/configure/Configure/Script/configure.sh index c72b1a5..66096a9 100755 --- a/configure/Configure/Script/configure.sh +++ b/configure/Configure/Script/configure.sh @@ -120,6 +120,9 @@ elif [ "${1}" == "-uninstall" ]; then echo "kext removed" + #rebuild cache, full path + /usr/sbin/kextcache -invalidate / & + echo "uninstall complete" exit 0 fi diff --git a/configure/Configure/main.m b/configure/Configure/main.m index 712738f..4e49132 100644 --- a/configure/Configure/main.m +++ b/configure/Configure/main.m @@ -77,7 +77,8 @@ int main(int argc, char *argv[]) goto bail; } - //kick main app logic + //default run mode + // just kick off main app logic status = NSApplicationMain(argc, (const char **) argv); bail: @@ -150,8 +151,6 @@ BOOL cmdlineInterface(int action) break; } } - - } //happy diff --git a/configure/configure.xcodeproj/project.pbxproj b/configure/configure.xcodeproj/project.pbxproj index 6065b58..8b5cc0b 100644 --- a/configure/configure.xcodeproj/project.pbxproj +++ b/configure/configure.xcodeproj/project.pbxproj @@ -312,7 +312,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0920; + LastUpgradeCheck = 0930; TargetAttributes = { 4BE4905C10445E0A006BE471 = { DevelopmentTeam = VBG97UB4TA; @@ -541,6 +541,7 @@ CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; @@ -592,6 +593,7 @@ CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; diff --git a/configure/configure.xcodeproj/xcshareddata/xcschemes/configure.xcscheme b/configure/configure.xcodeproj/xcshareddata/xcschemes/configure.xcscheme index dd70957..70ff3a9 100644 --- a/configure/configure.xcodeproj/xcshareddata/xcschemes/configure.xcscheme +++ b/configure/configure.xcodeproj/xcshareddata/xcschemes/configure.xcscheme @@ -1,6 +1,6 @@ @@ -102,7 +101,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/kernelExtension/kernelExtension.xcodeproj/project.pbxproj b/kernelExtension/kernelExtension.xcodeproj/project.pbxproj index 1457422..870078c 100644 --- a/kernelExtension/kernelExtension.xcodeproj/project.pbxproj +++ b/kernelExtension/kernelExtension.xcodeproj/project.pbxproj @@ -138,7 +138,7 @@ 7D5208E81E41C23900832F57 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = "Objective-See"; TargetAttributes = { 7D5208F01E41C23900832F57 = { @@ -204,6 +204,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -211,6 +212,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -258,6 +260,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -265,6 +268,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/kernelExtension/kernelExtension/socketEvents.cpp b/kernelExtension/kernelExtension/socketEvents.cpp index 1afc512..469cf7e 100644 --- a/kernelExtension/kernelExtension/socketEvents.cpp +++ b/kernelExtension/kernelExtension/socketEvents.cpp @@ -680,6 +680,10 @@ static kern_return_t data_out(void *cookie, socket_t so, const struct sockaddr * // socket we're watching? if(NULL == cookie) { + //ignore + // but no errors + result = kIOReturnSuccess; + //bail goto bail; } @@ -722,6 +726,10 @@ static kern_return_t connect_out(void *cookie, socket_t so, const struct sockadd // socket we're watching? if(NULL == cookie) { + //ignore + // but no errors + result = kIOReturnSuccess; + //bail goto bail; } diff --git a/launchDaemon/launchDaemon.xcodeproj/project.pbxproj b/launchDaemon/launchDaemon.xcodeproj/project.pbxproj index fc13574..ac0056c 100644 --- a/launchDaemon/launchDaemon.xcodeproj/project.pbxproj +++ b/launchDaemon/launchDaemon.xcodeproj/project.pbxproj @@ -270,7 +270,7 @@ 7D7755C81F02DF9400D0017D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = "Objective-See"; TargetAttributes = { 7D7755CF1F02DF9500D0017D = { @@ -367,6 +367,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -374,6 +375,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -420,6 +422,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -427,6 +430,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/launchDaemon/launchDaemon/Alerts.m b/launchDaemon/launchDaemon/Alerts.m index 265111d..dd830b8 100644 --- a/launchDaemon/launchDaemon/Alerts.m +++ b/launchDaemon/launchDaemon/Alerts.m @@ -75,6 +75,13 @@ -(NSMutableDictionary*)create:(struct networkOutEvent_s*)event process:(Process* //add pid alert[ALERT_PID] = [NSNumber numberWithUnsignedInt:event->pid]; + //add args + if(0 != process.arguments.count) + { + //add + alert[ALERT_ARGS] = process.arguments; + } + //add path alert[ALERT_PATH] = process.path; diff --git a/launchDaemon/launchDaemon/GrayList.m b/launchDaemon/launchDaemon/GrayList.m index 9e53f46..904f974 100644 --- a/launchDaemon/launchDaemon/GrayList.m +++ b/launchDaemon/launchDaemon/GrayList.m @@ -20,7 +20,10 @@ @"com.apple.curl", @"com.apple.ruby", @"com.apple.perl", + @"com.apple.perl5", @"com.apple.python", + @"com.apple.python2", + @"com.apple.pythonw", @"com.apple.openssh", @"com.apple.osascript" }; @@ -64,6 +67,9 @@ -(BOOL)isGrayListed:(Process*)process //process signing info NSDictionary* signingInfo = nil; + //dbg info + logMsg(LOG_DEBUG, [NSString stringWithFormat:@"checking if %@ is graylisted (signing info: %@)", process.path, process.binary.signingInfo]); + //has to be apple if(YES != process.binary.isApple) { diff --git a/launchDaemon/launchDaemon/KextListener.m b/launchDaemon/launchDaemon/KextListener.m index d90a46c..7c3a6a2 100644 --- a/launchDaemon/launchDaemon/KextListener.m +++ b/launchDaemon/launchDaemon/KextListener.m @@ -544,7 +544,7 @@ -(void)processNetworkOut:(struct networkOutEvent_s*)event logMsg(LOG_DEBUG, [NSString stringWithFormat:@"no (saved) rule found for %@ (%d)", process.binary.name, process.pid]); //if it's an apple process and that preference is set; allow! - // unless the binary is something like `curl` which malware could abuse (still alert!) + // unless the binary is something like 'curl' which malware could abuse (still alert!) if( (YES == [preferences.preferences[PREF_ALLOW_APPLE] boolValue]) && (YES == process.binary.isApple)) { @@ -873,67 +873,4 @@ -(Process*)findProcess:(pid_t)pid return process; } -//create an alert object -// note: can treat sockaddr_in and sockaddr_in6 as 'same same' for family, port, etc --(NSMutableDictionary*)createAlert:(struct networkOutEvent_s*)event process:(Process*)process -{ - //event for alert - NSMutableDictionary* alertInfo = nil; - - //remote ip address - NSString* remoteAddress = nil; - - //remote host name - NSString* remoteHost = nil; - - //alloc - alertInfo = [NSMutableDictionary dictionary]; - - //covert IP address to string - remoteAddress = convertSocketAddr((struct sockaddr*)&(event->remoteAddress)); - - //add pid - alertInfo[ALERT_PID] = [NSNumber numberWithUnsignedInt:event->pid]; - - //add path - alertInfo[ALERT_PATH] = process.path; - - //add (remote) ip - alertInfo[ALERT_IPADDR] = convertSocketAddr((struct sockaddr*)&(event->remoteAddress)); - - //try get host name from DNS cache - // since it's based on recv'ing data from kernel, try for a bit... - for(int i=0; i<5; i++) - { - //try grab host name - remoteHost = self.dnsCache[alertInfo[ALERT_IPADDR]]; - if(nil != remoteHost) - { - //add - alertInfo[ALERT_HOSTNAME] = remoteHost; - - //done - break; - } - - //nap - [NSThread sleepForTimeInterval:0.10f]; - } - - //add (remote) port - alertInfo[ALERT_PORT] = [NSNumber numberWithUnsignedShort:ntohs(event->remoteAddress.sin6_port)]; - - //add protocol (socket type) - alertInfo[ALERT_PROTOCOL] = [NSNumber numberWithInt:event->socketType]; - - //add signing info - if(nil != process.binary.signingInfo) - { - //add - alertInfo[ALERT_SIGNINGINFO] = process.binary.signingInfo; - } - - return alertInfo; -} - @end diff --git a/launchDaemon/launchDaemon/ProcListener.h b/launchDaemon/launchDaemon/ProcListener.h index dd3e152..85ad6f3 100644 --- a/launchDaemon/launchDaemon/ProcListener.h +++ b/launchDaemon/launchDaemon/ProcListener.h @@ -34,5 +34,4 @@ //setup/start process monitoring -(void)monitor; - @end diff --git a/loginItem/loginItem/AlertWindow.xib b/loginItem/loginItem/AlertWindow.xib index 7b9a6c0..5171855 100644 --- a/loginItem/loginItem/AlertWindow.xib +++ b/loginItem/loginItem/AlertWindow.xib @@ -1,8 +1,8 @@ - + - + @@ -17,6 +17,7 @@ + @@ -36,7 +37,7 @@ - + @@ -119,7 +120,7 @@ - + @@ -127,8 +128,17 @@ + + + + + + + + + - + @@ -137,7 +147,7 @@ - + @@ -149,7 +159,7 @@ - + @@ -158,7 +168,7 @@ - + @@ -293,6 +303,15 @@ + + + + + + + + + @@ -301,7 +320,7 @@ - + @@ -315,7 +334,7 @@ - + @@ -391,6 +410,15 @@ + @@ -410,7 +438,7 @@ - + @@ -448,6 +476,7 @@ + diff --git a/loginItem/loginItem/AlertWindowController.h b/loginItem/loginItem/AlertWindowController.h index a216dda..7ae0ede 100644 --- a/loginItem/loginItem/AlertWindowController.h +++ b/loginItem/loginItem/AlertWindowController.h @@ -66,6 +66,9 @@ //process id @property (weak) IBOutlet NSTextField *processID; +//process args +@property (weak) IBOutlet NSTextField *processArgs; + //process path @property (weak) IBOutlet NSTextField *processPath; diff --git a/loginItem/loginItem/AlertWindowController.m b/loginItem/loginItem/AlertWindowController.m index c70cd02..a089223 100644 --- a/loginItem/loginItem/AlertWindowController.m +++ b/loginItem/loginItem/AlertWindowController.m @@ -52,6 +52,9 @@ -(void)awakeFromNib // populate/configure alert window -(void)windowDidLoad { + //process args + NSMutableString* arguments = nil; + //remote addr NSString* remoteAddress = nil; @@ -101,6 +104,39 @@ -(void)windowDidLoad //process pid self.processID.stringValue = [self.alert[ALERT_PID] stringValue]; + //process args + // ignore argv[0], as this is just proc name + if( (nil != self.alert[ALERT_ARGS]) && + ([self.alert[ALERT_ARGS] count] > 1) ) + { + //alloc + arguments = [NSMutableString string]; + + //add each + // but skip argv[0] + for(NSUInteger i=0; i<[self.alert[ALERT_ARGS] count]; i++) + { + //skip first + if(0 == i) + { + //skip + continue; + } + + //add arg + [arguments appendFormat:@"%@ ", [self.alert[ALERT_ARGS] objectAtIndex:i]]; + } + + //add to UI + self.processArgs.stringValue = arguments; + } + //no args + else + { + //none + self.processArgs.stringValue = @"none"; + } + //process path self.processPath.stringValue = self.alert[ALERT_PATH]; diff --git a/loginItem/loginItem/AppDelegate.m b/loginItem/loginItem/AppDelegate.m index 9e4b6c2..5bbecc5 100644 --- a/loginItem/loginItem/AppDelegate.m +++ b/loginItem/loginItem/AppDelegate.m @@ -78,7 +78,7 @@ -(void)applicationDidFinishLaunching:(NSNotification *)aNotification logMsg(LOG_DEBUG, @"main application completed"); //remove observer - [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:observer]; + [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self.observer]; //unset self.observer = nil; diff --git a/loginItem/loginItem/SigningInfoViewController.h b/loginItem/loginItem/SigningInfoViewController.h index ab9f742..cd5787a 100644 --- a/loginItem/loginItem/SigningInfoViewController.h +++ b/loginItem/loginItem/SigningInfoViewController.h @@ -28,13 +28,15 @@ @property(nonatomic, retain)NSDictionary* alert; //signing icon -@property (weak) IBOutlet NSImageView *icon; +@property (weak) IBOutlet NSImageView* icon; //main signing msg -@property (weak) IBOutlet NSTextField *message; +@property (weak) IBOutlet NSTextField* message; //details -@property (weak) IBOutlet NSTextField *details; +@property (weak) IBOutlet NSTextField* details; +//no signing auths +@property (weak) IBOutlet NSTextField *noSigningAuths; @end diff --git a/loginItem/loginItem/SigningInfoViewController.m b/loginItem/loginItem/SigningInfoViewController.m index 362127f..9c21c17 100644 --- a/loginItem/loginItem/SigningInfoViewController.m +++ b/loginItem/loginItem/SigningInfoViewController.m @@ -35,6 +35,13 @@ -(void)popoverWillShow:(NSNotification *)notification; //start summary with item name [summary appendString:getProcessName(alert[ALERT_PATH])]; + //unset signing auth field + for(NSUInteger i=0; i<3; i++) + { + //unset + ((NSTextField*)[self.view viewWithTag:SIGNING_AUTH_1+i]).stringValue = @""; + } + //process switch([signingInfo[KEY_SIGNATURE_STATUS] integerValue]) { @@ -116,9 +123,6 @@ -(void)popoverWillShow:(NSNotification *)notification; //set details self.details.stringValue = [@"n/a" mutableCopy]; - //set signing auth field - ((NSTextField*)[self.view viewWithTag:SIGNING_AUTH_1]).stringValue = @"n/a"; - break; //everything else @@ -131,12 +135,17 @@ -(void)popoverWillShow:(NSNotification *)notification; //set details self.details.stringValue = [NSMutableString stringWithFormat:@"signing error: %ld", (long)[signingInfo[KEY_SIGNATURE_STATUS] integerValue]]; - //set signing auth field - ((NSTextField*)[self.view viewWithTag:SIGNING_AUTH_1]).stringValue = @"n/a"; - break; } + //no (valid) signing auths? + // show 'not applicable' msg + if(0 == [((NSTextField*)[self.view viewWithTag:SIGNING_AUTH_1]).stringValue length]) + { + //show + self.noSigningAuths.hidden = NO; + } + //assign summary to outlet self.message.stringValue = summary; diff --git a/lulu.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/lulu.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/lulu.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/mainApp/mainApp.xcodeproj/project.pbxproj b/mainApp/mainApp.xcodeproj/project.pbxproj index 0211b63..efb3ea3 100644 --- a/mainApp/mainApp.xcodeproj/project.pbxproj +++ b/mainApp/mainApp.xcodeproj/project.pbxproj @@ -332,7 +332,7 @@ 7D564DA11F18434F00B8AAD6 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = "Objective-See"; TargetAttributes = { 7D564DA81F18434F00B8AAD6 = { @@ -479,6 +479,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -486,6 +487,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -532,6 +534,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -539,6 +542,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/shared/consts.h b/shared/consts.h index 22a0672..f3a12b4 100644 --- a/shared/consts.h +++ b/shared/consts.h @@ -275,6 +275,7 @@ //keys for alert dictionary #define ALERT_PATH @"path" #define ALERT_PID @"pid" +#define ALERT_ARGS @"args" #define ALERT_USER @"user" #define ALERT_IPADDR @"ipAddr" #define ALERT_HOSTNAME @"hostName"