]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/Kernel/RootDomainUserClient.cpp
xnu-3789.21.4.tar.gz
[apple/xnu.git] / iokit / Kernel / RootDomainUserClient.cpp
index ae122f4c1494b218e69b15de9379c550ad578fcd..a7836f4c394dc65e1802c474fa909d4679cc9365 100644 (file)
@@ -299,10 +299,13 @@ IOReturn RootDomainUserClient::externalMethod(
                     (uint32_t *)&arguments->scalarOutput[0]);
             break;
         case kPMSetMaintenanceWakeCalendar:
-            ret = this->secureSetMaintenanceWakeCalendar(
-                    (IOPMCalendarStruct *)arguments->structureInput,
-                    (uint32_t *)&arguments->structureOutput);
-            arguments->structureOutputSize = sizeof(uint32_t);
+            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);
+            }
             break;
 
         case kPMSetUserAssertionLevels: