Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1587 → Rev 1588

/kernel/trunk/generic/src/security/cap.c
112,10 → 112,15
interrupts_restore(ipl);
return (__native) ENOENT;
}
spinlock_unlock(&tasks_lock);
spinlock_lock(&t->lock);
cap_set(t, cap_get(t) | caps);
spinlock_unlock(&t->lock);
spinlock_unlock(&tasks_lock);
 
interrupts_restore(ipl);
return 0;
}
149,7 → 154,6
interrupts_restore(ipl);
return (__native) ENOENT;
}
spinlock_unlock(&tasks_lock);
 
/*
* Revoking capabilities is different from granting them in that
157,12 → 161,17
* doesn't have CAP_CAP.
*/
if (!(cap_get(TASK) & CAP_CAP) || !(t == TASK)) {
spinlock_unlock(&tasks_lock);
interrupts_restore(ipl);
return (__native) EPERM;
}
spinlock_lock(&t->lock);
cap_set(t, cap_get(t) & ~caps);
spinlock_unlock(&t->lock);
 
cap_set(t, cap_get(t) & ~caps);
spinlock_unlock(&tasks_lock);
 
interrupts_restore(ipl);
return 0;
}