Loading...
iokit/Kernel/RootDomainUserClient.cpp xnu-4570.71.2 xnu-3248.30.4
--- xnu/xnu-4570.71.2/iokit/Kernel/RootDomainUserClient.cpp
+++ xnu/xnu-3248.30.4/iokit/Kernel/RootDomainUserClient.cpp
@@ -198,7 +198,7 @@
 }
 
 IOReturn RootDomainUserClient::secureGetSystemSleepType(
-    uint32_t    *outSleepType, uint32_t *sleepTimer)
+    uint32_t    *outSleepType)
 {
     int                     admin_priv = 0;
     IOReturn                ret;
@@ -207,7 +207,7 @@
     admin_priv = (kIOReturnSuccess == ret);
 
     if (admin_priv && fOwner) {
-        ret = fOwner->getSystemSleepType(outSleepType, sleepTimer);
+        ret = fOwner->getSystemSleepType(outSleepType);
     } else {
         ret = kIOReturnNotPrivileged;
     }
@@ -216,19 +216,14 @@
 
 IOReturn RootDomainUserClient::clientClose( void )
 {
-    terminate();
-
-    return kIOReturnSuccess;
-}
-
-void RootDomainUserClient::stop( IOService *provider)
-{
+    detach(fOwner);
+
     if(fOwningTask) {
         task_deallocate(fOwningTask);
         fOwningTask = 0;
     }
 
-    super::stop(provider);
+    return kIOReturnSuccess;
 }
 
 IOReturn RootDomainUserClient::externalMethod(
@@ -304,13 +299,10 @@
                     (uint32_t *)&arguments->scalarOutput[0]);
             break;
         case kPMSetMaintenanceWakeCalendar:
-            if ((arguments->structureInputSize >= sizeof(IOPMCalendarStruct)) &&
-                (arguments->structureOutputSize >= sizeof(uint32_t) )) {
-                ret = this->secureSetMaintenanceWakeCalendar(
-                                                             (IOPMCalendarStruct *)arguments->structureInput,
-                                                             (uint32_t *)&arguments->structureOutput);
-                arguments->structureOutputSize = sizeof(uint32_t);
-            }
+            ret = this->secureSetMaintenanceWakeCalendar(
+                    (IOPMCalendarStruct *)arguments->structureInput,
+                    (uint32_t *)&arguments->structureOutput);
+            arguments->structureOutputSize = sizeof(uint32_t);
             break;
 
         case kPMSetUserAssertionLevels:
@@ -333,11 +325,10 @@
             break;
 
         case kPMGetSystemSleepType:
-            if (2 == arguments->scalarOutputCount)
+            if (1 == arguments->scalarOutputCount)
             {
                 ret = this->secureGetSystemSleepType(
-                        (uint32_t *) &arguments->scalarOutput[0],
-                        (uint32_t *) &arguments->scalarOutput[1]);
+                        (uint32_t *) &arguments->scalarOutput[0]);
             }
             break;