]> err.no Git - util-linux/commit
mkswap: possible to crash with SELinux relabeling support
authorKaiGai Kohei <kaigai@kaigai.gr.jp>
Mon, 22 Oct 2007 08:30:19 +0000 (10:30 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 25 Oct 2007 23:13:44 +0000 (01:13 +0200)
commitfb2da4155d099aad2c9da2eecd138a7668975667
treec347000ac580a845b2ade0d90a7bb147eebe802e
parent30c3cb74c927e2106e6792946298d1ee5a7de523
mkswap: possible to crash with SELinux relabeling support

When fgetfilecon() is failed with -ENODATA, this process does not
exit.  However, "oldcontext" is not initialized in this case, so
context_new() will be called with uninitialized "oldcontext" at the
next.

Finally, it makes a segmentation fault, because context_new() have to
refer an incorrect memory region.

The attached patch fixes this matter using matchpathcon().  If we
cannot obtain actual file context due to -ENODATA, a context which is
returned by matchpathcon() is applied as oldcontext.  Then, the type
of the context is relabeled to "swapfile_t" explicitly.

Signed-off-by: KaiGai Kohei <kaigai@kaigai.gr.jp>
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/mkswap.c