Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

Diff of /trunk/1.8.x/ccs-patch/README.ccs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1606 by kumaneko, Fri Sep 19 05:02:59 2008 UTC revision 1764 by kumaneko, Wed Oct 29 12:10:18 2008 UTC
# Line 1603  Fix 2008/09/19 Line 1603  Fix 2008/09/19
1603        run as follows.        run as follows.
1604    
1605        # exec 100<>/proc/ccs/domain_policy        # exec 100<>/proc/ccs/domain_policy
1606        # echo select $$ >&100        # echo select pid=$$ >&100
1607        # while read -u 100; do echo $REPLY; done        # while read -u 100; do echo $REPLY; done
1608    
1609        If a domain is once selected by PID, reading /proc/ccs/domain_policy will        If a domain is once selected by PID, reading /proc/ccs/domain_policy will
# Line 1616  Fix 2008/09/19 Line 1616  Fix 2008/09/19
1616        But to implement "Allow selecting a domain by PID" feature, I disabled        But to implement "Allow selecting a domain by PID" feature, I disabled
1617        concurrent read()/write() because the feature need to modify read buffer        concurrent read()/write() because the feature need to modify read buffer
1618        while writing.        while writing.
1619    
1620    Fix 2008/10/01
1621    
1622        @ Add retry counter into /proc/ccs/query .
1623    
1624          To be able to handle some of queries from /proc/ccs/query without user's
1625          interaction, I added retry counter for avoiding infinite loop caused by
1626          "try again" response.
1627    
1628    Fix 2008/10/07
1629    
1630        @ Don't transit to new domain until do_execve() succeeds.
1631    
1632          Until now, a process's domain was updated to new domain which the process
1633          will belongs to before do_execve() succeeds so that the kernel can do
1634          permission checks for interpreters and environment variables based on
1635          new domain. But this caused a subtle problem when other process sends
1636          signals to the process, for the process returns to old domain if
1637          do_execve() failed.
1638    
1639          So, I modified to pass new domain to functions so that I can avoid
1640          modifying a process's domain before do_execve() succeeds.
1641    
1642        @ Use old task state for audit logs.
1643    
1644          Until now, audit logs were generated using the task state after
1645          processing "; set task.state" part. But to generate accurate logs,
1646          I modified to save the task state before processing "; set task.state"
1647          part and use the saved state for audit logs.
1648    
1649        @ Use a structure for passing parameters.
1650    
1651          As the number of parameters is increasing, I modified to use a structure
1652          for passing parameters.
1653    
1654    Fix 2008/10/11
1655    
1656        @ Remove domain_acl_lock mutex.
1657    
1658          I noticed that I don't need to keep all functions that modify an ACL of
1659          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.
1661          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.

Legend:
Removed from v.1606  
changed lines
  Added in v.1764

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26