selinux: fix case of names with whitespace/multibytes on /selinux/create
authorKohei Kaigai <Kohei.Kaigai@emea.nec.com>
Thu, 26 May 2011 18:59:25 +0000 (14:59 -0400)
committerEric Paris <eparis@redhat.com>
Thu, 26 May 2011 21:20:53 +0000 (17:20 -0400)
commit0f7e4c33eb2c40b1e9cc24d2eab6de5921bc619c
tree793c5f834751215dfc93b05540fa9ed46c64ee07
parentea77f7a2e8561012cf100c530170f12351c3b53e
selinux: fix case of names with whitespace/multibytes on /selinux/create

I submit the patch again, according to patch submission convension.

This patch enables to accept percent-encoded object names as forth
argument of /selinux/create interface to avoid possible bugs when we
give an object name including whitespace or multibutes.

E.g) if and when a userspace object manager tries to create a new object
 named as "resolve.conf but fake", it shall give this name as the forth
 argument of the /selinux/create. But sscanf() logic in kernel space
 fetches only the part earlier than the first whitespace.
 In this case, selinux may unexpectedly answer a default security context
 configured to "resolve.conf", but it is bug.

Although I could not test this patch on named TYPE_TRANSITION rules
actually, But debug printk() message seems to me the logic works
correctly.
I assume the libselinux provides an interface to apply this logic
transparently, so nothing shall not be changed from the viewpoint of
application.

Signed-off-by: KaiGai Kohei <kohei.kaigai@emea.nec.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
security/selinux/selinuxfs.c