diff --git a/Xext/xselinux.c b/Xext/xselinux.c index 3a6f096..c0b9c19 100644 --- a/Xext/xselinux.c +++ b/Xext/xselinux.c @@ -424,6 +424,13 @@ SELinuxTypeToClass(RESTYPE type) return knownTypes[type]; } +int +SELinuxNullPermissionHappened(void) +{ + ErrorF("SELinux: null permission!\n"); + return 0; +} + /* * Performs an SELinux permission check. */ @@ -438,6 +445,9 @@ SELinuxDoCheck(SELinuxSubjectRec *subj, SELinuxObjectRec *obj, auditdata->command = subj->command; errno = 0; + if (mode == DixUnknownAccess) + SELinuxNullPermissionHappened(); + if (avc_has_perm(subj->sid, obj->sid, class, mode, &subj->aeref, auditdata) < 0) { if (mode == DixUnknownAccess) diff --git a/configure.ac b/configure.ac index daddd09..5fd9cb1 100644 --- a/configure.ac +++ b/configure.ac @@ -1219,7 +1219,7 @@ PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS]) # XSERVER_SYS_LIBS is the set of out-of-tree libraries which all servers # require. # -XSERVER_CFLAGS="${XSERVERCFLAGS_CFLAGS} ${SHA1_CFLAGS}" +XSERVER_CFLAGS="${XSERVERCFLAGS_CFLAGS} ${SHA1_CFLAGS} -O0 -g3" XSERVER_LIBS="$DIX_LIB $CONFIG_LIB $MI_LIB $OS_LIB" XSERVER_SYS_LIBS="${XSERVERLIBS_LIBS} ${SYS_LIBS} ${LIBS} ${SHA1_LIB}" AC_SUBST([XSERVER_LIBS])