1653 |
|
|
1654 |
@ Always allow updating task state for signal operations. |
@ Always allow updating task state for signal operations. |
1655 |
|
|
1656 |
ccs_check_signal_acl() was skipping permission checks if signal is NULL |
ccs_check_signal_acl() was skipping permission checks if signal is 0 |
1657 |
or sent to self or sent to same domain. To make it possible to update |
or sent to self or sent to same domain. To make it possible to update |
1658 |
task state when current process is sending NULL signal or to self or |
task state when current process is sending 0 signal or to self or |
1659 |
to same domain, I modified to check ACL anyway. The result of access |
to same domain, I modified to check ACL anyway. The result of access |
1660 |
control will not change, but this modification will generate granted logs |
control will not change, but this modification will generate granted logs |
1661 |
which were not generated until now. |
which were not generated until now. |
1662 |
|
|
|
@ Show process type in /proc/ccs/.process_status . |
|
|
|
|
|
To be able to determine a process's type, I added "(manager)" if the |
|
|
process is a policy manager and "(execute_handler)" if the process is an |
|
|
execute handler. |
|
|
|
|
1663 |
Fix 2008/10/11 |
Fix 2008/10/11 |
1664 |
|
|
1665 |
@ Remove domain_acl_lock mutex. |
@ Remove domain_acl_lock mutex. |
1668 |
a domain mutually exclusive. Since each functions handles different type |
a domain mutually exclusive. Since each functions handles different type |
1669 |
of ACL, locking is needed only when they append an ACL to a domain. |
of ACL, locking is needed only when they append an ACL to a domain. |
1670 |
So, I modified to use local locks. |
So, I modified to use local locks. |
1671 |
|
|
1672 |
|
Fix 2008/10/14 |
1673 |
|
|
1674 |
|
@ Fix ccs_check_condition() bug. |
1675 |
|
|
1676 |
|
Due to a bug in ccs_check_condition(), it was impossible to use |
1677 |
|
task.state[0] task.state[1] task.state[2] inside condition part |
1678 |
|
if the ACL does not treat a pathname. For example, an ACL like |
1679 |
|
|
1680 |
|
allow_network TCP connect @HTTP_SERVERS 80 if task.state[0]=100 |
1681 |
|
|
1682 |
|
didn't work. |
1683 |
|
|
1684 |
|
Fix 2008/10/15 |
1685 |
|
|
1686 |
|
@ Show process information in /proc/ccs/.process_status . |
1687 |
|
|
1688 |
|
To be able to determine a process's type, I added a command "info PID" |
1689 |
|
which returns process information of the specified PID in |
1690 |
|
"PID manager=\* execute_handler=\* state[0]=\$ state[1]=\$ state[2]=\$" |
1691 |
|
format. |
1692 |
|
|
1693 |
|
Fix 2008/10/20 |
1694 |
|
|
1695 |
|
@ Use rcu_dereference() when walking the list. |
1696 |
|
|
1697 |
|
I was using "dependency ordering" for appending an element to a list |
1698 |
|
without asking the reader to take a lock. But "dependency ordering" |
1699 |
|
is not respected by DEC Alpha or by some aggressive value-speculation |
1700 |
|
compiler optimizations. |
1701 |
|
|
1702 |
|
On such environment, use of "dependency ordering" can lead to system |
1703 |
|
crash because the reader might read uninitialized value of newly |
1704 |
|
appended element. |
1705 |
|
|
1706 |
|
To prevent the reader from reading uninitialized value of newly appended |
1707 |
|
element, I inserted rcu_dereference() when walking the list. |