1892 |
Thus, I made these pathnames configurable. |
Thus, I made these pathnames configurable. |
1893 |
|
|
1894 |
Version 1.6.7 2009/04/01 Feature enhancement release. |
Version 1.6.7 2009/04/01 Feature enhancement release. |
1895 |
|
|
1896 |
|
Fix 2009/04/06 |
1897 |
|
|
1898 |
|
@ Drop "undelete domain" command. |
1899 |
|
|
1900 |
|
I added "undelete domain" command on 2007/01/19, but never used by policy |
1901 |
|
management tools. The garbage collector I added on 2007/01/29 will |
1902 |
|
automatically reuse memory and allow administrators switch domain policy |
1903 |
|
periodically, provided that the administrator kills processes in old |
1904 |
|
domains before recreating new domains with the same domainnames. |
1905 |
|
|
1906 |
|
Thus, I dropped "undelete domain" command. |
1907 |
|
|
1908 |
|
@ Escape invalid characters in ccs_check_mount_permission2(). |
1909 |
|
|
1910 |
|
ccs_check_mount_permission2() was passing unencoded strings to printk() |
1911 |
|
and ccs_update_mount_acl() and ccs_check_supervisor(). This may cause |
1912 |
|
/proc/ccs/system_policy and /proc/ccs/query to contain invalid |
1913 |
|
characters within a string. |
1914 |
|
|
1915 |
|
Fix 2009/04/07 |
1916 |
|
|
1917 |
|
@ Fix IPv4's "address_group" handling error. |
1918 |
|
|
1919 |
|
Since 1.6.5 , due to lack of ntohl() (byte order conversion) in |
1920 |
|
ccs_update_address_group_entry(), "address_group" with IPv4 address was |
1921 |
|
not working. |
1922 |
|
|
1923 |
|
This problem happens on little endian platforms (e.g. x86). |
1924 |
|
|
1925 |
|
Fix 2009/04/20 |
1926 |
|
|
1927 |
|
@ Update recvmsg() hooks. |
1928 |
|
|
1929 |
|
Since 1.5.0, I was doing network access control for incoming UDP and RAW |
1930 |
|
packets inside skb_recv_datagram(). But to synchronize with LSM version, |
1931 |
|
I moved ccs_recv_datagram_permission() hook from skb_recv_datagram() to |
1932 |
|
udp_recvmsg()/udpv6_recvmsg()/raw_recvmsg()/rawv6_recvmsg() with name |
1933 |
|
change to ccs_recvmsg_permission(). |
1934 |
|
|
1935 |
|
Fix 2009/05/08 |
1936 |
|
|
1937 |
|
@ Add condition for symlink's target pathname. |
1938 |
|
|
1939 |
|
Until now, "allow_symlink" keyword allows creation of a symlink but does |
1940 |
|
not check the symlink's target. Usually it is no problem because |
1941 |
|
permission checks are done using dereferenced pathname. But in some |
1942 |
|
cases, we should restrict the symlink's target. For example, |
1943 |
|
"ln -s .htpasswd /var/www/html/readme.html" by CGI program should be |
1944 |
|
blocked because we will allow Apache to read both |
1945 |
|
/var/www/html/readme.html and /var/www/html/.htpasswd . |
1946 |
|
|
1947 |
|
Thus, I added new condition, "symlink.target". |
1948 |
|
|
1949 |
|
allow_symlink /var/www/html/\*.html if symlink.target="\*.html" |
1950 |
|
|
1951 |
|
allow_symlink /var/www/html/\*\-.\* if symlink.target="\*\-.\*" |
1952 |
|
|
1953 |
|
@ Don't return -EAGAIN at ccs_socket_recvmsg_permission(). |
1954 |
|
|
1955 |
|
It turned out that it is not permitted for accept() and recvmsg() to |
1956 |
|
return -EAGAIN if poll() said connections/datagrams are ready. However, |
1957 |
|
recvmsg() may return -EAGAIN and potentially confuse some applications |
1958 |
|
because ccs_socket_recvmsg_permission() is returning -EAGAIN. |
1959 |
|
|
1960 |
|
Thus, I modified ccs_socket_recvmsg_permission() to return -ENOMEM |
1961 |
|
rather than -EAGAIN. |
1962 |
|
|
1963 |
|
Fix 2009/05/19 |
1964 |
|
|
1965 |
|
@ Don't call get_fs_type() with a mutex held. |
1966 |
|
|
1967 |
|
Until now, when ccs_update_mount_acl() is called with unsupported |
1968 |
|
filesystem, /sbin/modprobe is executed from get_fs_type() to load |
1969 |
|
filesystem module. And get_fs_type() does not return until /sbin/modprobe |
1970 |
|
finishes. |
1971 |
|
|
1972 |
|
This means that it will cause deadlock if /sbin/modprobe (which is |
1973 |
|
executed via get_fs_type() in ccs_update_mount_acl()) calls |
1974 |
|
ccs_update_mount_acl(); although it won't happen unless an administrator |
1975 |
|
inserts execute_handler to call mount() requests in learning mode or to |
1976 |
|
add "allow_mount" entries to /proc/ccs/system_policy . |
1977 |
|
|
1978 |
|
I modified to unlock the mutex before calling get_fs_type(). |
1979 |
|
|
1980 |
|
Version 1.6.8 2009/05/?? Feature enhancement release. |