Loading...
--- xnu/xnu-517.7.21/iokit/Kernel/IONVRAM.cpp
+++ xnu/xnu-344.12.2/iokit/Kernel/IONVRAM.cpp
@@ -258,7 +258,7 @@
if (_ofDict == 0) return 0;
// Verify permissions.
- result = IOUserClient::clientHasPrivilege(current_task(), kIOClientPrivilegeAdministrator);
+ result = IOUserClient::clientHasPrivilege(current_task(), "root");
if (result != kIOReturnSuccess) {
variablePerm = getOFVariablePerm(aKey);
if (variablePerm == kOFVariablePermRootOnly) return 0;
@@ -291,7 +291,7 @@
if (_ofDict == 0) return false;
// Verify permissions.
- result = IOUserClient::clientHasPrivilege(current_task(), kIOClientPrivilegeAdministrator);
+ result = IOUserClient::clientHasPrivilege(current_task(), "root");
if (result != kIOReturnSuccess) {
propPerm = getOFVariablePerm(aKey);
if (propPerm != kOFVariablePermUserWrite) return false;
@@ -1421,23 +1421,18 @@
nvPath = start;
else if (nvName == 0)
nvName = start;
- else {
- IORegistryEntry * compareEntry = IORegistryEntry::fromPath((const char *) nvPath, gIODTPlane);
- if (entry == compareEntry) {
- if (compareEntry)
- compareEntry->release();
- *name = OSSymbol::withCString((const char *) nvName);
- *value = unescapeBytesToData(start, where - start - 1);
- if ((*name != 0) && (*value != 0))
- err = kIOReturnSuccess;
- else
- err = kIOReturnNoMemory;
- break;
- }
- if (compareEntry)
- compareEntry->release();
+ else if (entry ==
+ IORegistryEntry::fromPath((const char *) nvPath, gIODTPlane)) {
+ *name = OSSymbol::withCString((const char *) nvName);
+ *value = unescapeBytesToData(start, where - start - 1);
+ if ((*name != 0) && (*value != 0))
+ err = kIOReturnSuccess;
+ else
+ err = kIOReturnNoMemory;
+ break;
+ } else
nvPath = nvName = 0;
- }
+
start = where;
}
@@ -1480,21 +1475,15 @@
nvPath = start;
else if (nvName == 0)
nvName = start;
- else {
- IORegistryEntry * compareEntry = IORegistryEntry::fromPath((const char *) nvPath, gIODTPlane);
- if (entry == compareEntry) {
- if (compareEntry)
- compareEntry->release();
- // delete old property (nvPath -> where)
- data = OSData::withBytes(propStart, nvPath - propStart);
- if (data)
- ok &= data->appendBytes(where, end - where);
- break;
- }
- if (compareEntry)
- compareEntry->release();
+ else if (entry ==
+ IORegistryEntry::fromPath((const char *) nvPath, gIODTPlane)) {
+ // delete old property (nvPath -> where)
+ data = OSData::withBytes(propStart, nvPath - propStart);
+ if (data)
+ ok &= data->appendBytes(where, end - where);
+ break;
+ } else
nvPath = nvName = 0;
- }
start = where;
}