summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2011-02-04 11:43:04 +1100
committerDamien Miller <djm@mindrot.org>2011-02-04 11:43:04 +1100
commit442366e667b29bba6c6a0bb400308a76e5db48bc (patch)
treea6f66f29af39db4a55d76fc8ac231f30353b7625
parent8ba5292c25655a1002ec790f5840a7b8420091bf (diff)
downloadopenssh-git-442366e667b29bba6c6a0bb400308a76e5db48bc.tar.gz
20110128
- (djm) [openbsd-compat/port-linux.c] Check whether SELinux is enabled before attempting setfscreatecon(). Check whether matchpathcon() succeeded before using its result. Patch from cjwatson AT debian.org; bz#1851
-rw-r--r--ChangeLog6
-rw-r--r--openbsd-compat/port-linux.c16
2 files changed, 15 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 6d2375a3..d0a3aa3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+20110128
+ - (djm) [openbsd-compat/port-linux.c] Check whether SELinux is enabled
+ before attempting setfscreatecon(). Check whether matchpathcon()
+ succeeded before using its result. Patch from cjwatson AT debian.org;
+ bz#1851
+
20110125
- (djm) [configure.ac Makefile.in ssh.c openbsd-compat/port-linux.c
openbsd-compat/port-linux.h] Move SELinux-specific code from ssh.c to
diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c
index ee4290b9..ede533fd 100644
--- a/openbsd-compat/port-linux.c
+++ b/openbsd-compat/port-linux.c
@@ -1,4 +1,4 @@
-/* $Id: port-linux.c,v 1.11.4.1 2011/02/04 00:42:21 djm Exp $ */
+/* $Id: port-linux.c,v 1.11.4.2 2011/02/04 00:43:08 djm Exp $ */
/*
* Copyright (c) 2005 Daniel Walsh <dwalsh@redhat.com>
@@ -209,13 +209,15 @@ ssh_selinux_change_context(const char *newname)
void
ssh_selinux_setfscreatecon(const char *path)
{
- security_context_t context;
+ security_context_t context;
- if (path == NULL) {
- setfscreatecon(NULL);
- return;
- }
- matchpathcon(path, 0700, &context);
+ if (!ssh_selinux_enabled())
+ return;
+ if (path == NULL)
+ setfscreatecon(NULL);
+ return;
+ }
+ if (matchpathcon(path, 0700, &context) == 0)
setfscreatecon(context);
}