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