|
16 | 16 | #import <CommonCrypto/CommonDigest.h> |
17 | 17 | #import <Foundation/Foundation.h> |
18 | 18 | #import <Kernel/kern/cs_blobs.h> |
| 19 | +#include <stdlib.h> |
19 | 20 |
|
20 | 21 | #import "Source/common/MOLCertificate.h" |
21 | 22 | #import "Source/common/MOLCodesignChecker.h" |
@@ -292,14 +293,21 @@ - (void)runWithArguments:(NSArray *)arguments { |
292 | 293 | source:SNTRuleAddSourceSantactl |
293 | 294 | reply:^(BOOL success, NSArray<NSError *> *errors) { |
294 | 295 | if (success) { |
295 | | - TEE_LOGE(@"Rules were deleted, with the following warnings:"); |
| 296 | + TEE_LOGI(@"Rules were successfully deleted."); |
| 297 | + if (errors.count > 0) { |
| 298 | + TEE_LOGE(@"The following warnings were emitted:"); |
| 299 | + for (NSError *e in errors) { |
| 300 | + TEE_LOGW(@"\t%@", e.localizedDescription); |
| 301 | + } |
| 302 | + } |
296 | 303 | } else { |
297 | 304 | TEE_LOGE(@"Failed to delete rules:"); |
| 305 | + for (NSError *e in errors) { |
| 306 | + TEE_LOGE(@"\t%@", e.localizedDescription); |
| 307 | + } |
298 | 308 | } |
299 | | - for (NSError *e in errors) { |
300 | | - TEE_LOGE(@"\t%@", e.localizedDescription); |
301 | | - } |
302 | | - exit(EXIT_FAILURE); |
| 309 | + |
| 310 | + exit(success == NO ? EXIT_FAILURE : EXIT_SUCCESS); |
303 | 311 | }]; |
304 | 312 | exit(EXIT_SUCCESS); |
305 | 313 | } |
@@ -401,51 +409,40 @@ - (void)runWithArguments:(NSArray *)arguments { |
401 | 409 | ruleCleanup:SNTRuleCleanupNone |
402 | 410 | source:SNTRuleAddSourceSantactl |
403 | 411 | reply:^(BOOL success, NSArray<NSError *> *errors) { |
404 | | - if (!errors) { |
| 412 | + if (!success) { |
405 | 413 | TEE_LOGE(@"Failed to modify rules:"); |
406 | 414 | for (NSError *e in errors) { |
407 | 415 | TEE_LOGE(@"\t%@", e.localizedFailureReason); |
408 | 416 | } |
409 | | - exit(1); |
410 | | - } else { |
411 | | - if (errors.count > 0) { |
412 | | - TEE_LOGE(@"Rules were modified but with the following issues:"); |
413 | | - for (NSError *e in errors) { |
414 | | - TEE_LOGE(@"\t%@", e.localizedFailureReason); |
415 | | - } |
416 | | - } |
417 | | - NSString *ruleType; |
418 | | - switch (newRule.type) { |
419 | | - case SNTRuleTypeCertificate: |
420 | | - ruleType = @"Certificate SHA-256"; |
421 | | - break; |
422 | | - case SNTRuleTypeBinary: { |
423 | | - ruleType = @"SHA-256"; |
424 | | - break; |
425 | | - } |
426 | | - case SNTRuleTypeTeamID: { |
427 | | - ruleType = @"Team ID"; |
428 | | - break; |
429 | | - } |
430 | | - case SNTRuleTypeSigningID: { |
431 | | - ruleType = @"Signing ID"; |
432 | | - break; |
433 | | - } |
434 | | - case SNTRuleTypeCDHash: { |
435 | | - ruleType = @"CDHash"; |
436 | | - break; |
437 | | - } |
438 | | - default: ruleType = @"(Unknown type)"; |
439 | | - } |
440 | | - if (newRule.state == SNTRuleStateRemove) { |
441 | | - printf("Removed rule for %s: %s.\n", [ruleType UTF8String], |
442 | | - [newRule.identifier UTF8String]); |
443 | | - } else { |
444 | | - printf("Added rule for %s: %s.\n", [ruleType UTF8String], |
445 | | - [newRule.identifier UTF8String]); |
| 417 | + exit(EXIT_FAILURE); |
| 418 | + } |
| 419 | + |
| 420 | + if (errors.count > 0) { |
| 421 | + TEE_LOGW(@"Rules were modified but with the following issues:"); |
| 422 | + for (NSError *e in errors) { |
| 423 | + TEE_LOGW(@"\t%@", e.localizedFailureReason); |
446 | 424 | } |
447 | | - exit(0); |
448 | 425 | } |
| 426 | + |
| 427 | + NSString *ruleType; |
| 428 | + switch (newRule.type) { |
| 429 | + case SNTRuleTypeCertificate: |
| 430 | + ruleType = @"Certificate SHA-256"; |
| 431 | + break; |
| 432 | + case SNTRuleTypeBinary: ruleType = @"SHA-256"; break; |
| 433 | + case SNTRuleTypeTeamID: ruleType = @"Team ID"; break; |
| 434 | + case SNTRuleTypeSigningID: ruleType = @"Signing ID"; break; |
| 435 | + case SNTRuleTypeCDHash: ruleType = @"CDHash"; break; |
| 436 | + default: ruleType = @"(Unknown type)"; break; |
| 437 | + } |
| 438 | + if (newRule.state == SNTRuleStateRemove) { |
| 439 | + printf("Removed rule for %s: %s.\n", [ruleType UTF8String], |
| 440 | + [newRule.identifier UTF8String]); |
| 441 | + } else { |
| 442 | + printf("Added rule for %s: %s.\n", [ruleType UTF8String], |
| 443 | + [newRule.identifier UTF8String]); |
| 444 | + } |
| 445 | + exit(EXIT_SUCCESS); |
449 | 446 | }]; |
450 | 447 | } |
451 | 448 |
|
|
0 commit comments