xserver: Branch 'master' - 2 commits

Adam Jackson ajax at kemper.freedesktop.org
Mon Sep 21 10:10:06 PDT 2015


 configure.ac            |   22 +++++++++++++++++++++-
 include/dix-config.h.in |    3 +++
 os/access.c             |    1 -
 3 files changed, 24 insertions(+), 2 deletions(-)

New commits:
commit cdd1d58159140759052ec043bc9828d94ba97bc7
Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Mon Jul 6 17:15:44 2015 +0100

    mingw: Fix NO_LOCAL_CLIENT_CRED build
    
    Commit 4b4b9086 "os: support new implicit local user access mode [CVE-2015-3164
    2/3]" carefully places the relevant code it adds under !NO_LOCAL_CLIENT_CRED,
    but unfortunately doesn't notice that NO_LOCAL_CLIENT_CRED is defined as a
    side-effect in the middle of GetLocalClientCreds(), so many of these checks
    precede its definition.
    
    Move the check if NO_LOCAL_CLIENT_CRED should be defined to configure.ac, so it
    always occurs before it's first use.
    
    v2:
    Move check to configure.ac
    
    v3:
    Use AC_CACHE_CHECK and name cache varaible appropriately
    
    [ajax: Massaged commit message]
    
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Ray Strode <rstrode at redhat.com>

diff --git a/configure.ac b/configure.ac
index bab7d89..0ab756d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -223,6 +223,24 @@ AC_REPLACE_FUNCS([reallocarray strcasecmp strcasestr strlcat strlcpy strndup])
 
 AC_CHECK_DECLS([program_invocation_short_name], [], [], [[#include <errno.h>]])
 
+dnl Check for SO_PEERCRED #define
+AC_CACHE_CHECK([for SO_PEERCRED in sys/socket.h],
+	       [xorg_cv_sys_have_so_peercred],
+	       [AC_EGREP_CPP(yes_have_so_peercred,[
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef SO_PEERCRED
+yes_have_so_peercred
+#endif
+],
+	       [xorg_cv_sys_have_so_peercred=yes],
+	       [xorg_cv_sys_have_so_peercred=no])])
+
+dnl define NO_LOCAL_CLIENT_CRED if no getpeereid, getpeerucred or SO_PEERCRED
+if test "x$ac_cv_func_getpeereid" = xno && test "x$ac_cv_func_getpeerucred" = xno && test "x$xorg_cv_sys_have_so_peercred" = xno ; then
+	AC_DEFINE([NO_LOCAL_CLIENT_CRED], 1, [Define to 1 if no local socket credentials interface exists])
+fi
+
 dnl Find the math libary, then check for cbrt function in it.
 AC_CHECK_LIB(m, sqrt)
 AC_CHECK_FUNCS([cbrt])
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index c2ba434..daaff8d 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -518,4 +518,7 @@
 /* Listen on local socket */
 #undef LISTEN_LOCAL
 
+/* Define if no local socket credentials interface exists */
+#undef NO_LOCAL_CLIENT_CRED
+
 #endif /* _DIX_CONFIG_H_ */
diff --git a/os/access.c b/os/access.c
index 75e7a69..54f0690 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1221,7 +1221,6 @@ GetLocalClientCreds(ClientPtr client, LocalClientCredRec ** lccp)
 #endif
 #else
     /* No system call available to get the credentials of the peer */
-#define NO_LOCAL_CLIENT_CRED
     return -1;
 #endif
 }
commit f8a2c087c89ed5b638a2e62987f255d3f04f914e
Author: Javier Jardón <jjardon at gnome.org>
Date:   Sun Mar 22 03:52:03 2015 +0000

    configure.ac: Add support for new versions of systemd
    
    ... that only provide a unique libsystemd.pc file
    
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Javier Jardón <jjardon at gnome.org>

diff --git a/configure.ac b/configure.ac
index 8d6a950..bab7d89 100644
--- a/configure.ac
+++ b/configure.ac
@@ -822,7 +822,9 @@ AC_ARG_WITH([systemd-daemon],
 		[support systemd socket activation (default: auto)]),
 	[WITH_SYSTEMD_DAEMON=$withval], [WITH_SYSTEMD_DAEMON=auto])
 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
-                  [HAVE_SYSTEMD_DAEMON=yes], [HAVE_SYSTEMD_DAEMON=no])
+                  [HAVE_SYSTEMD_DAEMON=yes],
+                  [PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd],
+                                     [HAVE_SYSTEMD_DAEMON=yes], [HAVE_SYSTEMD_DAEMON=no])])
 if test "x$WITH_SYSTEMD_DAEMON" = xauto; then
 	WITH_SYSTEMD_DAEMON="$HAVE_SYSTEMD_DAEMON"
 fi


More information about the xorg-commit mailing list