mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-08-17 09:06:50 +02:00
copy: fix a segfault in SELinux context copying code
* src/selinux.c (restorecon_private): On ArchLinux the `fakeroot cp -a file1 file2` command segfaulted due to getfscreatecon() returning a NULL context. So map this to the sometimes ignored ENODATA error, rather than crashing. * tests/cp/no-ctx.sh: Add a new test case. * tests/local.mk: Reference the new test. * NEWS: Mention the fix. Fixes http://bugs.gnu.org/16335
This commit is contained in:
committed by
Pádraig Brady
parent
ba25b75dc2
commit
d718331e59
@@ -192,6 +192,11 @@ restorecon_private (char const *path, bool local)
|
||||
{
|
||||
if (getfscreatecon (&tcon) < 0)
|
||||
return rc;
|
||||
if (!tcon)
|
||||
{
|
||||
errno = ENODATA;
|
||||
return rc;
|
||||
}
|
||||
rc = lsetfilecon (path, tcon);
|
||||
freecon (tcon);
|
||||
return rc;
|
||||
|
||||
Reference in New Issue
Block a user