オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

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

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

revision 1319 by kumaneko, Sun Jun 22 03:31:36 2008 UTC revision 1778 by kumaneko, Tue Nov 4 04:30:02 2008 UTC
# Line 1469  Fix 2008/06/10 Line 1469  Fix 2008/06/10
1469        To allow users specify locale specific files to globally readable files,        To allow users specify locale specific files to globally readable files,
1470        I relaxed checking in update_globally_readable_entry().        I relaxed checking in update_globally_readable_entry().
1471    
     @ Move ALLOW_ENFORCE_GRACE=enabled checking to write_answer().  
   
       To allow users use ccs-notifyd without turning ALLOW_ENFORCE_GRACE on,  
       I moved it from ccs_check_supervisor() to write_answer().  
   
1472  Fix 2008/06/11  Fix 2008/06/11
1473    
1474      @ Remove ALLOW_ENFORCE_GRACE parameter.      @ Remove ALLOW_ENFORCE_GRACE parameter.
# Line 1501  Fix 2008/06/22 Line 1496  Fix 2008/06/22
1496        which causes /proc/ccs/grant_log contain whitespace characters        which causes /proc/ccs/grant_log contain whitespace characters
1497        if execute handler's pathname contains whitespace characters.        if execute handler's pathname contains whitespace characters.
1498    
1499  Version 1.6.2 2008/??/??   Usability enhancement release.  Fix 2008/06/25
1500    
1501        @ Return 0 when ccs_may_umount() succeeds.
1502    
1503          I forgot to clear error value in ccs_may_umount() when the requested
1504          directory didn't match "deny_unmount" keyword. As a result, any umount()
1505          request with RESTRICT_UNMOUNT=enforcing returned -EPERM error.
1506    
1507    Version 1.6.2 2008/06/25   Usability enhancement release.
1508    
1509    Fix 2008/07/01
1510    
1511        @ Fix "Compilation failure" with 2.4.20 kernel.
1512    
1513          RedHat Linux 9's 2.4.20 kernel backported O(1) scheduler patch,
1514          resulting compilation error at ccs_load_policy().
1515          I added defined(TASK_DEAD) check.
1516    
1517    Fix 2008/07/08
1518    
1519        @ Don't check permissions if vfsmount is NULL.
1520    
1521          Some filesystems (e.g. unionfs) pass NULL vfsmount.
1522          I changed fs/tomoyo_file.c not to try to calculate pathnames
1523          if vfsmount is NULL.
1524    
1525    Version 1.6.3 2008/07/15   Bug fix release.
1526    
1527    Fix 2008/08/21
1528    
1529        @ Add workaround for gcc 4.3's bug.
1530    
1531          In some environments, fs/tomoyo_network.c could not be compiled
1532          because of gcc 4.3's bug.
1533          I modified save_ipv6_address() to use "integer literal" value
1534          instead for "static const u8" variable.
1535    
1536        @ Change prototypes of some functions.
1537    
1538          To support 2.6.27 kernels, I replaced "struct nameidata" with
1539          "struct path" for some functions.
1540    
1541        @ Detect distributor specific patches automatically.
1542    
1543          Since kernels with AppArmor patch applied is increasing,
1544          I introduced a mechanism which determines whether specific patches
1545          are applied or not, based on "#define" directives in the patches.
1546    
1547    Fix 2008/08/29
1548    
1549        @ Remove "-ccs" suffix from Makefile's EXTRAVERSION.
1550    
1551          To reduce conflicts on Makefile's EXTRAVERSION,
1552          I removed "-ccs" suffix from ccs-patch-2.\*.diff .
1553          Those who build kernels without using specs/build-\*.sh ,
1554          please edit EXTRAVERSION tag manually so that original kernels
1555          will not be overwritten by TOMOYO Linux kernels.
1556    
1557    Version 1.6.4 2008/09/03   Minor update release.
1558    
1559    Fix 2008/09/09
1560    
1561        @ Add "try again" response to "delayed enforcing" mode.
1562    
1563          To be able to handle pathname changes caused by software updates,
1564          "delayed enforcing" mode was introduced. It allows administrator to
1565          grant access requests which are about to be rejected by the kernel.
1566    
1567          To be able to handle pathname changes caused by software updates better,
1568          I introduced "try again" response. As "delayed enforcing" mode sleeps
1569          a process which violated policy, administrator can update policy while
1570          the process is sleeping. This "try again" response allows administrator
1571          to restart policy checks from the beginning after updating policy.
1572    
1573    Fix 2008/09/11
1574    
1575        @ Remember whether the process is allowed to write to /proc/ccs/ interface.
1576    
1577          Since programs for manipulating policy (e.g. ccs-queryd ) are installed
1578          in the form of RPM/DEB packages, these programs lose the original
1579          pathnames when they are updated by the package manager. The package
1580          manager renames these programs before deleting these programs so that
1581          the package manager can rollback the operation.
1582          This causes a problem when the programs are listed into /proc/ccs/manager
1583          using pathnames, as the programs will no longer be allowed to write to
1584          /proc/ccs/ interface while the process of old version of the program is
1585          alive.
1586    
1587          To solve this problem, I modified to remember the fact that the process
1588          is once allowed to write to /proc/ccs/ interface until the process
1589          attempts to execute a different program.
1590          This change makes it impossible to revoke permission to write to
1591          /proc/ccs/ interface without killing the process, but it will be better
1592          than nonfunctioning ccs-queryd program.
1593    
1594    Fix 2008/09/19
1595    
1596        @ Allow selecting a domain by PID.
1597    
1598          Sometimes we want to know what ACLs are given to specific PID, but
1599          finding a domainname for that PID from /proc/ccs/.process_status and
1600          reading ACLs from /proc/ccs/domain_policy by the domainname is very slow.
1601          Thus, I modified /proc/ccs/domain_policy to allow selecting a domain by
1602          PID. For example, to read domain ACL of current process from bash,
1603          run as follows.
1604    
1605          # exec 100<>/proc/ccs/domain_policy
1606          # echo select pid=$$ >&100
1607          # while read -u 100; do echo $REPLY; done
1608    
1609          If a domain is once selected by PID, reading /proc/ccs/domain_policy will
1610          print only that domain if that PID exists or print nothing otherwise.
1611    
1612        @ Disallow concurrent /proc/ccs/ access using the same file descriptor.
1613    
1614          Until now, one process can read() from /proc/ccs/ while other process
1615          that shares the file descriptor can write() to /proc/ccs/ .
1616          But to implement "Allow selecting a domain by PID" feature, I disabled
1617          concurrent read()/write() because the feature need to modify read buffer
1618          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.
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().

Legend:
Removed from v.1319  
changed lines
  Added in v.1778

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