Untitled diff

Created Diff never expires
34 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
40 lines
112 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
106 lines
/* @class OSSystemExtensionPointListener */
/* @class OSSystemExtensionPointListener */
-(char)listener:(void *)arg2 shouldAcceptNewConnection:(void *)arg3 {
-(char)listener:(void *)arg2 shouldAcceptNewConnection:(void *)arg3 {
var_38 = [arg2 retain];
r12 = self;
r14 = [arg3 retain];
r13 = [arg2 retain];
os_unfair_lock_lock(self + 0x8);
rax = [arg3 retain];
rax = [self currentConnection];
if (rax != 0x0) {
rax = [rax retain];
r15 = rax;
[rax invalidate];
rax = [rax valueForEntitlement:@"com.apple.private.security.storage.SystemExtensionManagement"];
[rax release];
rax = [rax retain];
[self setCurrentConnection:r14];
var_40 = rax;
os_unfair_lock_unlock(self + 0x8);
if (*(int8_t *)__systemextensions_framework_testing_active != 0x0) {
objc_initWeak(&var_30, r14);
os_unfair_lock_lock(r12 + 0x8);
*(&var_40 - 0x28) = *__NSConcreteStackBlock;
rax = [r12 currentConnection];
*(&var_40 - 0x20) = 0xffffffffc2000000;
rax = [rax retain];
*(&var_40 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke;
[rax invalidate];
*(&var_40 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
[rax release];
*(&var_40 - 0x8) = self;
[r12 setCurrentConnection:r15];
objc_copyWeak(&var_40, &var_30);
os_unfair_lock_unlock(r12 + 0x8);
[r14 setInvalidationHandler:&var_68];
objc_initWeak(&var_30, r15);
*(&var_70 - 0x28) = *__NSConcreteStackBlock;
*(&var_48 - 0x28) = *__NSConcreteStackBlock;
*(&var_70 - 0x20) = 0xffffffffc2000000;
*(&var_48 - 0x20) = 0xffffffffc2000000;
*(&var_70 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke.396;
*(&var_48 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke;
*(&var_70 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
*(&var_48 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
*(&var_70 - 0x8) = self;
*(&var_48 - 0x8) = r12;
objc_copyWeak(&var_70, &var_30);
objc_copyWeak(&var_48, &var_30);
[r14 setInterruptionHandler:&var_98];
[r15 setInvalidationHandler:&var_70];
rax = [NSXPCInterface interfaceWithProtocol:@protocol(_OSSystemExtensionPointInterface)];
*(&var_78 - 0x28) = *__NSConcreteStackBlock;
rax = [rax retain];
*(&var_78 - 0x20) = 0xffffffffc2000000;
[r14 setExportedInterface:rax];
*(&var_78 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke.407;
[rax release];
*(&var_78 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
[r14 setExportedObject:self];
*(&var_78 - 0x8) = r12;
[r14 resume];
objc_copyWeak(&var_78, &var_30);
objc_destroyWeak(&var_70);
[r15 setInterruptionHandler:&var_A0];
objc_destroyWeak(&var_40);
rax = [NSXPCInterface interfaceWithProtocol:@protocol(_OSSystemExtensionPointInterface)];
objc_destroyWeak(&var_30);
rax = [rax retain];
[r14 release];
[r15 setExportedInterface:rax];
[var_38 release];
[rax release];
return 0x1;
[r15 setExportedObject:r12];
[r15 resume];
objc_destroyWeak(&var_78);
objc_destroyWeak(&var_48);
objc_destroyWeak(&var_30);
r14 = 0x1;
r13 = r13;
}
else {
rbx = rax;
if (rax != 0x0 && [rbx isKindOfClass:[NSNumber class]] != 0x0) {
if ([rbx boolValue] == 0x0) {
r14 = 0x0;
NSLog(@"XPC denied because caller lacks entitlement");
[r15 invalidate];
}
else {
os_unfair_lock_lock(r12 + 0x8);
rax = [r12 currentConnection];
rax = [rax retain];
[rax invalidate];
[rax release];
[r12 setCurrentConnection:r15];
os_unfair_lock_unlock(r12 + 0x8);
objc_initWeak(&var_30, r15);
*(&var_48 - 0x28) = *__NSConcreteStackBlock;
*(&var_48 - 0x20) = 0xffffffffc2000000;
*(&var_48 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke;
*(&var_48 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
*(&var_48 - 0x8) = r12;
objc_copyWeak(&var_48, &var_30);
[r15 setInvalidationHandler:&var_70];
*(&var_78 - 0x28) = *__NSConcreteStackBlock;
*(&var_78 - 0x20) = 0xffffffffc2000000;
*(&var_78 - 0x18) = ___69-[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:]_block_invoke.407;
*(&var_78 - 0x10) = ___block_descriptor_48_e8_32s40w_e5_v8?0l;
*(&var_78 - 0x8) = r12;
objc_copyWeak(&var_78, &var_30);
[r15 setInterruptionHandler:&var_A0];
rax = [NSXPCInterface interfaceWithProtocol:@protocol(_OSSystemExtensionPointInterface)];
rax = [rax retain];
[r15 setExportedInterface:rax];
[rax release];
[r15 setExportedObject:r12];
[r15 resume];
objc_destroyWeak(&var_78);
objc_destroyWeak(&var_48);
objc_destroyWeak(&var_30);
r14 = 0x1;
r13 = r13;
}
}
else {
r14 = 0x0;
NSLog(@"XPC denied because caller lacks entitlement");
[r15 invalidate];
}
}
[var_40 release];
[r15 release];
[r13 release];
rax = r14 & 0xff;
}
else {
rax = -[OSSystemExtensionPointListener listener:shouldAcceptNewConnection:].cold.1();
}
return rax;
}
}