From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Aug 26 15:20:03 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E3A5A675 for ; Mon, 26 Aug 2013 15:20:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BFAC72B0D for ; Mon, 26 Aug 2013 15:20:03 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r7QFK3In020371 for ; Mon, 26 Aug 2013 15:20:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r7QFK3vA020370; Mon, 26 Aug 2013 15:20:03 GMT (envelope-from gnats) Resent-Date: Mon, 26 Aug 2013 15:20:03 GMT Resent-Message-Id: <201308261520.r7QFK3vA020370@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Lukas Slebodnik Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A0BB05E2 for ; Mon, 26 Aug 2013 15:14:01 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8CD632ACB for ; Mon, 26 Aug 2013 15:14:01 +0000 (UTC) Received: from oldred.freebsd.org ([127.0.1.6]) by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r7QFE1tI031393 for ; Mon, 26 Aug 2013 15:14:01 GMT (envelope-from nobody@oldred.freebsd.org) Received: (from nobody@localhost) by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r7QFE1NL031386; Mon, 26 Aug 2013 15:14:01 GMT (envelope-from nobody) Message-Id: <201308261514.r7QFE1NL031386@oldred.freebsd.org> Date: Mon, 26 Aug 2013 15:14:01 GMT From: Lukas Slebodnik To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/181566: [update] security/sssd to 1.9.5 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 15:20:04 -0000 >Number: 181566 >Category: ports >Synopsis: [update] security/sssd to 1.9.5 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Mon Aug 26 15:20:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Lukas Slebodnik >Release: 9.1-RELEASE-p6 >Organization: >Environment: >Description: Update sssd to 1.9.5, because 1.6.1 is outdated and there are some problems with sssd compilation http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/e.8.20130820094743.pointyhat/sssd-1.6.1_5.log >How-To-Repeat: >Fix: Patch attached with submission follows: Index: Makefile =================================================================== --- Makefile (revision 325399) +++ Makefile (working copy) @@ -1,70 +1,93 @@ -# New ports collection makefile for: sssd -# Date created: Sep 6 2011 -# Whom: Andrew Elble +# Created by: Lukas Slebodnik +# $FreeBSD: security/sssd/Makefile 325398 2013-08-26 16:05:24Z$ # -# $FreeBSD$ -# PORTNAME= sssd -DISTVERSION= 1.6.1 +DISTVERSION= 1.9.5 PORTREVISION= 1 CATEGORIES= security -MASTER_SITES= https://fedorahosted.org/released/${PORTNAME}/ +MASTER_SITES= https://fedorahosted.org/released/${PORTNAME}/ \ + http://mirrors.rit.edu/zi/ MAINTAINER= aweits@rit.edu COMMENT= System Security Services Daemon LICENSE= GPLv3 -LIB_DEPENDS= popt.0:${PORTSDIR}/devel/popt \ - talloc.2:${PORTSDIR}/devel/talloc \ - tevent.0:${PORTSDIR}/devel/tevent \ - xslt.2:${PORTSDIR}/textproc/libxslt \ - tdb.1:${PORTSDIR}/databases/tdb \ +LIB_DEPENDS= popt:${PORTSDIR}/devel/popt \ + talloc:${PORTSDIR}/devel/talloc \ + tevent:${PORTSDIR}/devel/tevent \ + xslt:${PORTSDIR}/textproc/libxslt \ + tdb:${PORTSDIR}/databases/tdb \ ldb:${PORTSDIR}/databases/ldb \ - cares.2:${PORTSDIR}/dns/c-ares \ + cares:${PORTSDIR}/dns/c-ares \ dbus:${PORTSDIR}/devel/dbus \ - dhash.1:${PORTSDIR}/devel/ding-libs \ - pcre.1:${PORTSDIR}/devel/pcre \ - unistring.1:${PORTSDIR}/devel/libunistring \ - nss3.1:${PORTSDIR}/security/nss \ - sasl2.2:${PORTSDIR}/security/cyrus-sasl2 \ - xml2:${PORTSDIR}/textproc/libxml2 + dhash:${PORTSDIR}/devel/ding-libs \ + pcre:${PORTSDIR}/devel/pcre \ + unistring:${PORTSDIR}/devel/libunistring \ + nss3:${PORTSDIR}/security/nss \ + sasl2:${PORTSDIR}/security/cyrus-sasl2 \ + krb5:${PORTSDIR}/security/krb5 \ + ldap:${PORTSDIR}/net/openldap24-sasl-client BUILD_DEPENDS= xmlcatalog:${PORTSDIR}/textproc/libxml2 \ - docbook-xsl>=0:${PORTSDIR}/textproc/docbook-xsl -RUN_DEPENDS= xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr + docbook-xsl>=1:${PORTSDIR}/textproc/docbook-xsl \ + xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr \ + krb5>=1.10:${PORTSDIR}/security/krb5 GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-selinux=no --with-semanage=no \ - --with-ldb-lib-dir=${LOCALBASE}/lib/ldb \ + --with-ldb-lib-dir=${LOCALBASE}/lib/shared-modules/ldb/ \ --with-xml-catalog-path=${LOCALBASE}/share/xml/catalog \ - --with-libnl=no --with-init-dir=no \ + --with-libnl=no --with-init-dir=no --datadir=${DATADIR} \ --docdir=${WRKDIR}/docs --with-pid-path=/var/run \ --localstatedir=/var --enable-pammoddir=${PREFIX}/lib \ --with-db-path=/var/db/sss --with-pipe-path=/var/run/sss \ - --with-pubconf-path=/var/run/sss -CFLAGS+= -L${LOCALBASE}/lib -fstack-protector-all + --with-pubconf-path=/var/run/sss --with-mcache-path=/var/db/sss_mc \ + --with-unicode-lib=libunistring --with-autofs=no +CFLAGS+= -L${LOCALBASE}/lib -fstack-protector-all -Wno-format PLIST_SUB= PYTHON_VER=${PYTHON_VER} -#DEBUG_FLAGS= -g +#DEBUG_FLAGS= -g +MAKE_ENV+= LINGUAS="bg de eu es fr hu id it ja nb nl pl pt ru sv tg tr uk zh_CN zh_TW" +SUB_FILES= pkg-message -USE_AUTOTOOLS= autoconf automake +USE_AUTOTOOLS= autoconf automake libtoolize +AUTOMAKE_ARGS= --add-missing USE_LDCONFIG= yes USE_PYTHON= yes USE_OPENLDAP= yes USE_GMAKE= yes -USE_GNOME= pkgconfig -USE_GETTEXT= yes -USE_ICONV= yes +USES= gettext iconv pkgconfig USE_PYTHON= yes USE_RC_SUBR= ${PORTNAME} -MAN5= sssd-ipa.5 sssd-krb5.5 sssd-ldap.5 sssd-simple.5 \ - sssd.conf.5 -MAN8= pam_sss.8 sss_cache.8 sss_groupadd.8 sss_groupdel.8 \ - sss_groupmod.8 sss_groupshow.8 sss_obfuscate.8 \ +MANLANG= "" cs es ja nl pt uk +MAN1_EN= sss_ssh_authorizedkeys.1 sss_ssh_knownhostsproxy.1 +MAN1_JA= sss_ssh_authorizedkeys.1 sss_ssh_knownhostsproxy.1 +MAN1_UK= sss_ssh_authorizedkeys.1 sss_ssh_knownhostsproxy.1 +MAN5_EN= sssd-ad.5 sssd-ldap.5 sssd.conf.5 sssd-sudo.5 sssd-ipa.5 \ + sssd-krb5.5 sssd-simple.5 +MAN5_JA= sssd-ipa.5 sssd-ldap.5 sssd-simple.5 sssd.conf.5 +MAN5_UK= sssd-ad.5 sssd-ipa.5 sssd-krb5.5 sssd-ldap.5 sssd-simple.5 \ + sssd-sudo.5 sssd.conf.5 +#MAN8_CS= sss_groupdel.8 +MAN8_EN= sss_usermod.8 sssd.8 sss_seed.8 sss_groupmod.8 sss_groupshow.8\ + sss_debuglevel.8 sss_obfuscate.8 sss_groupadd.8 pam_sss.8 \ + sss_cache.8 sss_groupdel.8 sss_useradd.8 sss_userdel.8 \ + sssd_krb5_locator_plugin.8 +#MAN8_ES= sss_groupmod.8 +MAN8_JA= pam_sss.8 sss_cache.8 sss_debuglevel.8 sss_groupadd.8 \ + sss_groupdel.8 sss_groupmod.8 sss_groupshow.8 sss_obfuscate.8 \ sss_useradd.8 sss_userdel.8 sss_usermod.8 sssd.8 \ sssd_krb5_locator_plugin.8 +MAN8_NL= sss_groupmod.8 +MAN8_PT= sss_groupdel.8 sss_groupmod.8 +MAN8_UK= pam_sss.8 sss_cache.8 sss_debuglevel.8 sss_groupadd.8 \ + sss_groupdel.8 sss_groupmod.8 sss_groupshow.8 sss_obfuscate.8 \ + sss_seed.8 sss_useradd.8 sss_userdel.8 sss_usermod.8 sssd.8 \ + sssd_krb5_locator_plugin.8 +PORTDATA= * + .include .if ${OSVERSION} < 800107 @@ -74,40 +97,46 @@ BROKEN= Does not link on ia64, powerpc, or sparc64 .endif -AUTOTOOLSFILES= aclocal.m4 - post-patch: - @${REINPLACE_CMD} -e 's|1.11.1|%%AUTOMAKE_APIVER%%|g' ${WRKSRC}/aclocal.m4 @${REINPLACE_CMD} -e 's|SIGCLD|SIGCHLD|g' ${WRKSRC}/src/util/signal.c - @${REINPLACE_CMD} -e '/#define SIZE_T_MAX ((size_t) -1)/d' ${WRKSRC}/src/util/util.h - @${REINPLACE_CMD} -e '/pam_misc/d' ${WRKSRC}/src/sss_client/pam_test_client.c - @${REINPLACE_CMD} -e '/ETIME/d' ${WRKSRC}/src/sss_client/common.c - @${REINPLACE_CMD} -e 's| -lpam_misc||g' ${WRKSRC}/Makefile.am ${WRKSRC}/Makefile.in - @${REINPLACE_CMD} -e 's|security/pam_misc.h||g' ${WRKSRC}/configure* ${WRKSRC}/src/external/pam.m4 - @${REINPLACE_CMD} -e 's|NSS_STATUS_NOTFOUND|NS_NOTFOUND|g' ${WRKSRC}/src/sss_client/common.c - @${REINPLACE_CMD} -e 's|NSS_STATUS_UNAVAIL|NS_UNAVAIL|g' ${WRKSRC}/src/sss_client/common.c - @${REINPLACE_CMD} -e 's|NSS_STATUS_TRYAGAIN|NS_TRYAGAIN|g' ${WRKSRC}/src/sss_client/common.c - @${REINPLACE_CMD} -e 's|NSS_STATUS_SUCCESS|NS_SUCCESS|g' ${WRKSRC}/src/sss_client/common.c - @${REINPLACE_CMD} -e 's|security/pam_ext.h|security/pam_appl.h|g' ${WRKSRC}/src/sss_client/pam_sss.c - @${REINPLACE_CMD} -e 's|security/_pam_macros.h|pam_macros.h|g' ${WRKSRC}/src/sss_client/sss_pam_macros.h - @${REINPLACE_CMD} -e 's|#include ||g' ${WRKSRC}/src/sss_client/pam_sss.c - @${REINPLACE_CMD} -e 's|PAM_BAD_ITEM|PAM_USER_UNKNOWN|g' ${WRKSRC}/src/sss_client/pam_sss.c - @${REINPLACE_CMD} -e 's|pam_vsyslog(pamh,|vsyslog(|g' ${WRKSRC}/src/sss_client/pam_sss.c - @${REINPLACE_CMD} -e 's|pam_modutil_getlogin(pamh)|getlogin()|g' ${WRKSRC}/src/sss_client/pam_sss.c - @${REINPLACE_CMD} -e '/..MAKE. ..AM_MAKEFLAGS. install-data-hook/d' ${WRKSRC}/Makefile.in - @${REINPLACE_CMD} -e 's|install-data-hook install-dist_initSCRIPTS|install-dist_initSCRIPTS|g' \ + @${REINPLACE_CMD} -e '/#define SIZE_T_MAX ((size_t) -1)/d' \ + ${WRKSRC}/src/util/util.h + @${REINPLACE_CMD} -e '/pam_misc/d' \ + ${WRKSRC}/src/sss_client/pam_test_client.c + @${REINPLACE_CMD} -e 's|security/pam_misc.h||g' \ + ${WRKSRC}/configure* ${WRKSRC}/src/external/pam.m4 + @${REINPLACE_CMD} -e 's|NSS_STATUS_NOTFOUND|NS_NOTFOUND|g' \ + -e 's|NSS_STATUS_UNAVAIL|NS_UNAVAIL|g' \ + -e 's|NSS_STATUS_TRYAGAIN|NS_TRYAGAIN|g' \ + -e '/ETIME/d' \ + -e 's|NSS_STATUS_SUCCESS|NS_SUCCESS|g' \ + ${WRKSRC}/src/sss_client/common.c + @${REINPLACE_CMD} -e 's|security/_pam_macros.h|pam_macros.h|g' \ + ${WRKSRC}/src/sss_client/sss_pam_macros.h + @${REINPLACE_CMD} -e 's|#include ||g' \ + -e 's|PAM_BAD_ITEM|PAM_USER_UNKNOWN|g' \ + -e 's|security/pam_ext.h|security/pam_appl.h|g' \ + -e 's|pam_modutil_getlogin(pamh)|getlogin()|g' \ + -e 's|pam_vsyslog(pamh,|vsyslog(|g' \ + ${WRKSRC}/src/sss_client/pam_sss.c + @${REINPLACE_CMD} -e '/..MAKE. ..AM_MAKEFLAGS. install-data-hook/d' \ + ${WRKSRC}/Makefile.in + @${REINPLACE_CMD} -e 's|libdir)/pkgconfig|prefix)/libdata/pkgconfig|' \ + -e 's|install-data-hook install-dist_initSCRIPTS|install-dist_initSCRIPTS|g' \ + -e 's|install-data-hook|notinstall-data-hook|g' \ + -e 's| -lpam_misc||g' \ ${WRKSRC}/Makefile.in ${WRKSRC}/Makefile.am - @${REINPLACE_CMD} -e 's|install-data-hook|notinstall-data-hook|g' ${WRKSRC}/Makefile.in \ - ${WRKSRC}/Makefile.am - @${REINPLACE_CMD} -e 's|libdir)/pkgconfig|prefix)/libdata/pkgconfig|' ${WRKSRC}/Makefile.in \ - ${WRKSRC}/Makefile.am - @${REINPLACE_CMD} -e 's|/etc/sssd/|${ETCDIR}/|g' ${WRKSRC}/src/man/*xml - @${REINPLACE_CMD} -e 's|/etc/openldap/|${PREFIX}/etc/openldap/|g' ${WRKSRC}/src/man/*xml + @${REINPLACE_CMD} -e 's|/etc/sssd/|${ETCDIR}/|g' \ + -e 's|/etc/openldap/|${LOCALBASE}/etc/openldap/|g' \ + ${WRKSRC}/src/man/*xml @${CP} ${FILESDIR}/pam_macros.h ${WRKSRC}/pam_macros.h @${CP} ${FILESDIR}/bsdnss.c ${WRKSRC}/src/sss_client/bsdnss.c +pre-configure: + (cd ${WRKSRC} && ${AUTORECONF} -i -f) + post-install: - ${INSTALL_DATA} ${WRKSRC}/src/examples/sssd.conf ${ETCDIR}/sssd.conf.sample + ${INSTALL_DATA} ${WRKSRC}/src/examples/sssd-example.conf ${ETCDIR}/sssd.conf.sample (cd ${PREFIX}/lib && ${LN} -s nss_sss.so.2 nss_sss.so.1) (cd ${PREFIX}/lib && ${LN} -s pam_sss.so pam_sss.so.5) @${RM} -f ${PREFIX}/lib/ldb/memberof.la Index: distinfo =================================================================== --- distinfo (revision 325399) +++ distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (sssd-1.6.1.tar.gz) = ba30d8cf7eae1fd66053b4f11e8e5b98bc6db113cf6d2f33e429f2e21d90ade9 -SIZE (sssd-1.6.1.tar.gz) = 1406047 +SHA256 (sssd-1.9.5.tar.gz) = a377c436901e92d689de811d48e37d88764460e889e47bfddd90626f0a8a015c +SIZE (sssd-1.9.5.tar.gz) = 3106988 Index: files/patch-Makefile.am =================================================================== --- files/patch-Makefile.am (revision 325399) +++ files/patch-Makefile.am (working copy) @@ -1,22 +1,43 @@ ---- ./Makefile.am.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./Makefile.am 2011-10-13 12:13:42.000000000 -0400 -@@ -33,7 +33,7 @@ - systemdunitdir = @systemdunitdir@ - logpath = @logpath@ - pubconfpath = @pubconfpath@ --pkgconfigdir = $(libdir)/pkgconfig -+pkgconfigdir = $(prefix)/libdata/pkgconfig +From 2f2d2045b64edf63bbfb845095dbfaf754dc5ad3 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 01/34] patch-Makefile.am + +--- + Makefile.am | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git Makefile.am Makefile.am +index f0ee88b..10e1e73 100644 +--- Makefile.am ++++ Makefile.am +@@ -649,7 +649,6 @@ sssd_be_SOURCES = \ + src/providers/data_provider_callbacks.c \ + $(SSSD_FAILOVER_OBJ) + sssd_be_LDADD = \ +- -ldl \ + $(SSSD_LIBS) \ + $(CARES_LIBS) \ + libsss_util.la +@@ -772,7 +771,7 @@ sss_sudo_cli_SOURCES = \ + src/sss_client/sudo/sss_sudo_response.c \ + src/sss_client/sudo_testcli/sudo_testcli.c + sss_sudo_cli_CFLAGS = $(AM_CFLAGS) +-sss_sudo_cli_LDFLAGS = $(CLIENT_LIBS) ++sss_sudo_cli_LDFLAGS = $(CLIENT_LIBS) -lintl + endif - AM_CFLAGS = - if WANT_AUX_INFO -@@ -753,21 +753,22 @@ + if BUILD_SSH +@@ -1159,7 +1158,7 @@ noinst_PROGRAMS += autofs_test_client + endif - noinst_PROGRAMS = pam_test_client pam_test_client_SOURCES = src/sss_client/pam_test_client.c -pam_test_client_LDFLAGS = -lpam -lpam_misc +pam_test_client_LDFLAGS = -lpam - #################### + if BUILD_AUTOFS + autofs_test_client_SOURCES = src/sss_client/autofs/autofs_test_client.c \ +@@ -1173,9 +1172,10 @@ endif # Client Libraries # #################### @@ -29,33 +50,32 @@ src/sss_client/nss_passwd.c \ src/sss_client/nss_group.c \ src/sss_client/nss_netgroup.c \ - src/sss_client/sss_cli.h \ - src/sss_client/nss_compat.h +@@ -1187,7 +1187,7 @@ libnss_sss_la_SOURCES = \ + src/sss_client/nss_mc_passwd.c \ + src/sss_client/nss_mc_group.c \ + src/sss_client/nss_mc.h -libnss_sss_la_LDFLAGS = \ +nss_sss_la_LDFLAGS = \ + $(CLIENT_LIBS) \ -module \ -version-info 2:0:0 \ - -Wl,--version-script,$(srcdir)/src/sss_client/sss_nss.exports -@@ -780,6 +781,7 @@ - src/sss_client/sss_pam_macros.h +@@ -1203,6 +1203,7 @@ pam_sss_la_SOURCES = \ pam_sss_la_LDFLAGS = \ + $(CLIENT_LIBS) \ + -lintl \ -lpam \ -module \ -avoid-version \ -@@ -1122,10 +1124,10 @@ +@@ -1727,7 +1728,7 @@ else mkdir -p $(DESTDIR)$(initdir) endif -install-data-hook: -- rm $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2 \ -- $(DESTDIR)/$(nsslibdir)/libnss_sss.so -- mv $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2.0.0 $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2 -+notnotnotnotnotnotnotnotnotnotnotnotnotnotnotnotnotinstall-data-hook: -+ rm $(DESTDIR)/$(nsslibdir)/nss_sss.so.2 \ -+ $(DESTDIR)/$(nsslibdir)/nss_sss.so -+ mv $(DESTDIR)/$(nsslibdir)/nss_sss.so.2.0.0 $(DESTDIR)/$(nsslibdir)/nss_sss.so.2 - - uninstall-hook: - if [ -f $(abs_builddir)/src/config/.files ]; then \ ++nopenopeinstall-data-hook: + rm $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2 \ + $(DESTDIR)/$(nsslibdir)/libnss_sss.so + mv $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2.0.0 $(DESTDIR)/$(nsslibdir)/libnss_sss.so.2 +-- +1.8.0 + Index: files/patch-configure.ac =================================================================== --- files/patch-configure.ac (revision 0) +++ files/patch-configure.ac (working copy) @@ -0,0 +1,24 @@ +From 281379e22034335ebcc64b1759564310cad91bce Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 02/34] patch-configure.ac + +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git configure.ac configure.ac +index 70671ae..0668884 100644 +--- configure.ac ++++ configure.ac +@@ -18,6 +18,7 @@ AM_INIT_AUTOMAKE([-Wall foreign subdir-objects tar-pax]) + AM_PROG_CC_C_O + AC_DISABLE_STATIC + AC_PROG_INSTALL ++AM_PROG_AR + AC_PROG_LIBTOOL + AC_CONFIG_MACRO_DIR([m4]) + AM_GNU_GETTEXT([external]) +-- +1.8.0 + Index: files/patch-src__confdb__confdb.c =================================================================== --- files/patch-src__confdb__confdb.c (revision 325399) +++ files/patch-src__confdb__confdb.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/confdb/confdb.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/confdb/confdb.c 2011-10-13 12:15:03.000000000 -0400 +From 18614fe436d525826e260e7a0e8334c41bd2ce37 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 03/34] patch-src__confdb__confdb.c + +--- + src/confdb/confdb.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/confdb/confdb.c src/confdb/confdb.c +index d70dc36..9ee1f8c 100644 +--- src/confdb/confdb.c ++++ src/confdb/confdb.c @@ -28,6 +28,11 @@ #include "util/strtonum.h" #include "db/sysdb.h" @@ -12,3 +23,6 @@ #define CONFDB_ZERO_CHECK_OR_JUMP(var, ret, err, label) do { \ if (!var) { \ ret = err; \ +-- +1.8.0 + Index: files/patch-src__lib__idmap__sss_idmap_conv.c =================================================================== --- files/patch-src__lib__idmap__sss_idmap_conv.c (revision 0) +++ files/patch-src__lib__idmap__sss_idmap_conv.c (working copy) @@ -0,0 +1,24 @@ +From 194aa2e2960a2a67f9c0beb771635b8392e6e337 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 15:25:53 +0200 +Subject: [PATCH 34/34] patch-src__lib__idmap__sss_idmap_conv.c + +--- + src/lib/idmap/sss_idmap_conv.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/lib/idmap/sss_idmap_conv.c src/lib/idmap/sss_idmap_conv.c +index a336042..ac07746 100644 +--- src/lib/idmap/sss_idmap_conv.c ++++ src/lib/idmap/sss_idmap_conv.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "lib/idmap/sss_idmap.h" + #include "lib/idmap/sss_idmap_private.h" +-- +1.8.0 + Index: files/patch-src__monitor__monitor.c =================================================================== --- files/patch-src__monitor__monitor.c (revision 325399) +++ files/patch-src__monitor__monitor.c (working copy) @@ -1,24 +1,40 @@ ---- ./src/monitor/monitor.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/monitor/monitor.c 2011-10-13 12:15:03.000000000 -0400 -@@ -57,6 +57,10 @@ +From 628c783aa78c576f10087e3e4812904b90d218b0 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 04/34] patch-src__monitor__monitor.c + +--- + src/monitor/monitor.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git src/monitor/monitor.c src/monitor/monitor.c +index 8612524..3d3cab8 100644 +--- src/monitor/monitor.c ++++ src/monitor/monitor.c +@@ -90,6 +90,11 @@ int cmdline_debug_level; + int cmdline_debug_timestamps; + int cmdline_debug_microseconds; - int cmdline_debug_level; - +errno_t monitor_config_file_fallback(TALLOC_CTX *mem_ctx, + struct mt_ctx *ctx, + const char *file, -+ monitor_reconf_fn fn); ++ monitor_reconf_fn fn, ++ bool ignore_missing); struct svc_spy; - struct mt_svc { -@@ -1606,10 +1610,6 @@ + enum mt_svc_type { +@@ -1792,11 +1797,6 @@ done: talloc_free(tmp_ctx); } -errno_t monitor_config_file_fallback(TALLOC_CTX *mem_ctx, - struct mt_ctx *ctx, - const char *file, -- monitor_reconf_fn fn); +- monitor_reconf_fn fn, +- bool ignore_missing); static void rewatch_config_file(struct tevent_context *ev, struct tevent_timer *te, struct timeval t, void *ptr) +-- +1.8.0 + Index: files/patch-src__providers__ad__ad_access.c =================================================================== --- files/patch-src__providers__ad__ad_access.c (revision 0) +++ files/patch-src__providers__ad__ad_access.c (working copy) @@ -0,0 +1,24 @@ +From 630e5b96040869f6ce24ac1d10bb370e819795e7 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 15:04:27 +0200 +Subject: [PATCH 33/34] patch-src__providers__ad__ad_access.c + +--- + src/providers/ad/ad_access.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/providers/ad/ad_access.c src/providers/ad/ad_access.c +index 314cdcf..ca0fb8b 100644 +--- src/providers/ad/ad_access.c ++++ src/providers/ad/ad_access.c +@@ -21,6 +21,7 @@ + */ + + #include ++#include + #include "src/util/util.h" + #include "src/providers/data_provider.h" + #include "src/providers/dp_backend.h" +-- +1.8.0 + Index: files/patch-src__providers__ad__ad_common.c =================================================================== --- files/patch-src__providers__ad__ad_common.c (revision 0) +++ files/patch-src__providers__ad__ad_common.c (working copy) @@ -0,0 +1,43 @@ +From 7223f18bd8ea22ed801a115934a2fe8dc0c0cdb8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 15:03:49 +0200 +Subject: [PATCH 32/34] patch-src__providers__ad__ad_common.c + +--- + src/providers/ad/ad_common.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/providers/ad/ad_common.c src/providers/ad/ad_common.c +index 8600dab..d628385 100644 +--- src/providers/ad/ad_common.c ++++ src/providers/ad/ad_common.c +@@ -38,7 +38,7 @@ ad_get_common_options(TALLOC_CTX *mem_ctx, + char *server; + char *realm; + char *ad_hostname; +- char hostname[HOST_NAME_MAX + 1]; ++ char hostname[_POSIX_HOST_NAME_MAX + 1]; + + opts = talloc_zero(mem_ctx, struct ad_options); + if (!opts) return ENOMEM; +@@ -75,7 +75,7 @@ ad_get_common_options(TALLOC_CTX *mem_ctx, + */ + ad_hostname = dp_opt_get_string(opts->basic, AD_HOSTNAME); + if (ad_hostname == NULL) { +- gret = gethostname(hostname, HOST_NAME_MAX); ++ gret = gethostname(hostname, _POSIX_HOST_NAME_MAX); + if (gret != 0) { + ret = errno; + DEBUG(SSSDBG_FATAL_FAILURE, +@@ -83,7 +83,7 @@ ad_get_common_options(TALLOC_CTX *mem_ctx, + strerror(ret))); + goto done; + } +- hostname[HOST_NAME_MAX] = '\0'; ++ hostname[_POSIX_HOST_NAME_MAX] = '\0'; + DEBUG(SSSDBG_CONF_SETTINGS, + ("Setting ad_hostname to [%s].\n", hostname)); + ret = dp_opt_set_string(opts->basic, AD_HOSTNAME, hostname); +-- +1.8.0 + Index: files/patch-src__providers__data_provider_be.c =================================================================== --- files/patch-src__providers__data_provider_be.c (revision 325399) +++ files/patch-src__providers__data_provider_be.c (working copy) @@ -1,15 +1,17 @@ ---- ./src/providers/data_provider_be.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/data_provider_be.c 2011-10-13 12:15:03.000000000 -0400 -@@ -512,7 +512,7 @@ - return EIO; - } - -- pd->pam_status = PAM_SYSTEM_ERR; -+ pd->pam_status = PAM_SERVICE_ERR; - pd->domain = talloc_strdup(pd, becli->bectx->domain->name); - if (pd->domain == NULL) { - talloc_free(be_req); -@@ -1013,7 +1013,7 @@ +From f6d110d1f78a78ee957f7fce975d09fc698e0949 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 05/34] patch-src__providers__data_provider_be.c + +--- + src/providers/data_provider_be.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/providers/data_provider_be.c src/providers/data_provider_be.c +index 33590ae..1a25959 100644 +--- src/providers/data_provider_be.c ++++ src/providers/data_provider_be.c +@@ -2316,7 +2316,7 @@ static int load_backend_module(struct be_ctx *ctx, if (!handle) { DEBUG(0, ("Unable to load %s module with path (%s), error: %s\n", mod_name, path, dlerror())); @@ -18,7 +20,7 @@ goto done; } -@@ -1033,7 +1033,7 @@ +@@ -2336,7 +2336,7 @@ static int load_backend_module(struct be_ctx *ctx, } else { DEBUG(0, ("Unable to load init fn %s from module %s, error: %s\n", mod_init_fn_name, mod_name, dlerror())); @@ -27,3 +29,6 @@ } goto done; } +-- +1.8.0 + Index: files/patch-src__providers__fail_over.c =================================================================== --- files/patch-src__providers__fail_over.c (revision 325399) +++ files/patch-src__providers__fail_over.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/providers/fail_over.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/fail_over.c 2011-10-13 12:15:03.000000000 -0400 -@@ -1191,7 +1191,7 @@ +From 9c10da92d16e5daa9589ca0e3e5f43f399844071 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 06/34] patch-src__providers__fail_over.c + +--- + src/providers/fail_over.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/providers/fail_over.c src/providers/fail_over.c +index e7c4417..120022a 100644 +--- src/providers/fail_over.c ++++ src/providers/fail_over.c +@@ -1320,7 +1320,7 @@ resolve_srv_recv(struct tevent_req *req, struct fo_server **server) *******************************************************************/ struct resolve_get_domain_state { char *fqdn; @@ -9,7 +20,7 @@ }; static void resolve_get_domain_done(struct tevent_req *subreq); -@@ -1211,13 +1211,13 @@ +@@ -1340,13 +1340,13 @@ resolve_get_domain_send(TALLOC_CTX *mem_ctx, return NULL; } @@ -25,3 +36,6 @@ DEBUG(7, ("Host name is: %s\n", state->hostname)); subreq = resolv_gethostbyname_send(state, ev, resolv, +-- +1.8.0 + Index: files/patch-src__providers__ipa__ipa_common.c =================================================================== --- files/patch-src__providers__ipa__ipa_common.c (revision 325399) +++ files/patch-src__providers__ipa__ipa_common.c (working copy) @@ -1,15 +1,26 @@ ---- ./src/providers/ipa/ipa_common.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/ipa/ipa_common.c 2011-10-13 12:15:03.000000000 -0400 -@@ -191,7 +191,7 @@ +From acb17ace2b204146e4b821fd7d5e27de5d8ee588 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 07/34] patch-src__providers__ipa__ipa_common.c + +--- + src/providers/ipa/ipa_common.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/providers/ipa/ipa_common.c src/providers/ipa/ipa_common.c +index eb384a1..d7d8052 100644 +--- src/providers/ipa/ipa_common.c ++++ src/providers/ipa/ipa_common.c +@@ -47,7 +47,7 @@ int ipa_get_options(TALLOC_CTX *memctx, + char *realm; char *ipa_hostname; int ret; - int i; - char hostname[HOST_NAME_MAX + 1]; + char hostname[_POSIX_HOST_NAME_MAX + 1]; opts = talloc_zero(memctx, struct ipa_options); if (!opts) return ENOMEM; -@@ -220,14 +220,14 @@ +@@ -76,14 +76,14 @@ int ipa_get_options(TALLOC_CTX *memctx, ipa_hostname = dp_opt_get_string(opts->basic, IPA_HOSTNAME); if (ipa_hostname == NULL) { @@ -26,3 +37,6 @@ DEBUG(9, ("Setting ipa_hostname to [%s].\n", hostname)); ret = dp_opt_set_string(opts->basic, IPA_HOSTNAME, hostname); if (ret != EOK) { +-- +1.8.0 + Index: files/patch-src__providers__ipa__ipa_hbac.h =================================================================== --- files/patch-src__providers__ipa__ipa_hbac.h (revision 0) +++ files/patch-src__providers__ipa__ipa_hbac.h (working copy) @@ -0,0 +1,24 @@ +From 08d2bd8bcd975f1bbd2ea3671ba42f022779d3a8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 08/34] patch-src__providers__ipa__ipa_hbac.h + +--- + src/providers/ipa/ipa_hbac.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/providers/ipa/ipa_hbac.h src/providers/ipa/ipa_hbac.h +index 02077e3..b1d8efa 100644 +--- src/providers/ipa/ipa_hbac.h ++++ src/providers/ipa/ipa_hbac.h +@@ -39,6 +39,7 @@ + + #include + #include ++#include + + /** Result of HBAC evaluation */ + enum hbac_eval_result { +-- +1.8.0 + Index: files/patch-src__providers__krb5__krb5_child.c =================================================================== --- files/patch-src__providers__krb5__krb5_child.c (revision 325399) +++ files/patch-src__providers__krb5__krb5_child.c (working copy) @@ -1,377 +0,0 @@ ---- ./src/providers/krb5/krb5_child.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/krb5/krb5_child.c 2011-10-13 12:15:03.000000000 -0400 -@@ -39,6 +39,15 @@ - - #define SSSD_KRB5_CHANGEPW_PRINCIPAL "kadmin/changepw" - -+typedef struct _krb5_ticket_times { -+ krb5_timestamp authtime; /* XXX ? should ktime in KDC_REP == authtime -+ in ticket? otherwise client can't get this */ -+ krb5_timestamp starttime; /* optional in ticket, if not present, -+ use authtime */ -+ krb5_timestamp endtime; -+ krb5_timestamp renew_till; -+} krb5_ticket_times; -+ - struct krb5_child_ctx { - /* opts taken from kinit */ - /* in seconds */ -@@ -100,10 +109,10 @@ - - static krb5_context krb5_error_ctx; - static const char *__krb5_error_msg; --#define KRB5_DEBUG(level, krb5_error) do { \ -- __krb5_error_msg = sss_krb5_get_error_message(krb5_error_ctx, krb5_error); \ -+#define KRB5_DEBUG(level, krb5_error, ctx) do { \ -+ __krb5_error_msg = sss_krb5_get_error_message(ctx, krb5_error); \ - DEBUG(level, ("%d: [%d][%s]\n", __LINE__, krb5_error, __krb5_error_msg)); \ -- sss_krb5_free_error_message(krb5_error_ctx, __krb5_error_msg); \ -+ sss_krb5_free_error_message(ctx, __krb5_error_msg); \ - } while(0); - - static void sss_krb5_expire_callback_func(krb5_context context, void *data, -@@ -267,13 +276,13 @@ - - kerr = krb5_cc_resolve(ctx, tmp_ccname, &tmp_cc); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - - kerr = krb5_cc_initialize(ctx, tmp_cc, princ); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - if (fd != -1) { -@@ -284,7 +293,7 @@ - if (creds == NULL) { - kerr = create_empty_cred(ctx, princ, &l_cred); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - } else { -@@ -293,13 +302,13 @@ - - kerr = krb5_cc_store_cred(ctx, tmp_cc, l_cred); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - - kerr = krb5_cc_close(ctx, tmp_cc); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - tmp_cc = NULL; -@@ -420,7 +429,7 @@ - talloc_zfree(msg); - } - } else { -- krb5_msg = sss_krb5_get_error_message(krb5_error_ctx, kerr); -+ krb5_msg = sss_krb5_get_error_message(kr->ctx, kerr); - if (krb5_msg == NULL) { - DEBUG(1, ("sss_krb5_get_error_message failed.\n")); - return NULL; -@@ -429,7 +438,7 @@ - ret = pam_add_response(kr->pd, SSS_PAM_SYSTEM_INFO, - strlen(krb5_msg) + 1, - (const uint8_t *) krb5_msg); -- sss_krb5_free_error_message(krb5_error_ctx, krb5_msg); -+ sss_krb5_free_error_message(kr->ctx, krb5_msg); - } - if (ret != EOK) { - DEBUG(1, ("pam_add_response failed.\n")); -@@ -527,7 +536,7 @@ - break; - } - -- kerr = krb5_free_keytab_entry_contents(kr->ctx, &entry); -+ kerr = krb5_kt_free_entry(kr->ctx, &entry); - if (kerr != 0) { - DEBUG(1, ("Failed to free keytab entry.\n")); - } -@@ -575,7 +584,7 @@ - if (krb5_kt_close(kr->ctx, keytab) != 0) { - DEBUG(1, ("krb5_kt_close failed")); - } -- if (krb5_free_keytab_entry_contents(kr->ctx, &entry) != 0) { -+ if (krb5_kt_free_entry(kr->ctx, &entry) != 0) { - DEBUG(1, ("Failed to free keytab entry.\n")); - } - if (principal != NULL) { -@@ -605,13 +614,13 @@ - kerr = krb5_get_init_creds_keytab(ctx, &creds, princ, keytab, 0, NULL, - &options); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - return kerr; - } - - kerr = create_ccache_file(ctx, princ, ccname, &creds); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, ctx); - goto done; - } - kerr = 0; -@@ -633,21 +642,21 @@ - sss_krb5_expire_callback_func, - kr); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - DEBUG(1, ("Failed to set expire callback, continue without.\n")); - } - kerr = krb5_get_init_creds_password(kr->ctx, kr->creds, kr->princ, - password, sss_krb5_prompter, kr, 0, - NULL, kr->options); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - return kerr; - } - - if (kr->validate) { - kerr = validate_tgt(kr); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - return kerr; - } - -@@ -668,7 +677,7 @@ - - kerr = create_ccache_file(kr->ctx, kr->princ, kr->ccname, kr->creds); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto done; - } - -@@ -692,7 +701,7 @@ - krb5_error_code kerr = 0; - char *pass_str = NULL; - char *newpass_str = NULL; -- int pam_status = PAM_SYSTEM_ERR; -+ int pam_status = PAM_SERVICE_ERR; - int result_code = -1; - krb5_data result_code_string; - krb5_data result_string; -@@ -734,7 +743,7 @@ - changepw_princ, - kr->options); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - if (kerr == KRB5_KDC_UNREACH) { - pam_status = PAM_AUTHINFO_UNAVAIL; - } -@@ -773,7 +782,7 @@ - - if (kerr != 0 || result_code != 0) { - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - } else { - kerr = KRB5KRB_ERR_GENERIC; - } -@@ -825,7 +834,7 @@ - memset(kr->pd->newauthtok, 0, kr->pd->newauthtok_size); - - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - if (kerr == KRB5_KDC_UNREACH) { - pam_status = PAM_AUTHINFO_UNAVAIL; - } -@@ -846,7 +855,7 @@ - krb5_error_code kerr = 0; - char *pass_str = NULL; - char *changepw_princ = NULL; -- int pam_status = PAM_SYSTEM_ERR; -+ int pam_status = PAM_SERVICE_ERR; - - if (kr->pd->authtok_type != SSS_AUTHTOK_TYPE_PASSWORD) { - pam_status = PAM_CRED_INSUFFICIENT; -@@ -881,7 +890,7 @@ - kr->options, - NULL, NULL); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - DEBUG(1, ("Failed to unset expire callback, continue ...\n")); - } - kerr = krb5_get_init_creds_password(kr->ctx, kr->creds, kr->princ, -@@ -899,7 +908,7 @@ - memset(kr->pd->authtok, 0, kr->pd->authtok_size); - - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - switch (kerr) { - case KRB5_KDC_UNREACH: - pam_status = PAM_AUTHINFO_UNAVAIL; -@@ -911,7 +920,7 @@ - pam_status = PAM_CRED_ERR; - break; - default: -- pam_status = PAM_SYSTEM_ERR; -+ pam_status = PAM_SERVICE_ERR; - } - } - -@@ -981,13 +990,13 @@ - - kerr = krb5_cc_resolve(kr->ctx, ccname, &ccache); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto done; - } - - kerr = krb5_get_renewed_creds(kr->ctx, kr->creds, kr->princ, ccache, NULL); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - if (kerr == KRB5_KDC_UNREACH) { - status = PAM_AUTHINFO_UNAVAIL; - } -@@ -997,7 +1006,7 @@ - if (kr->validate) { - kerr = validate_tgt(kr); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto done; - } - -@@ -1019,13 +1028,13 @@ - - kerr = krb5_cc_initialize(kr->ctx, ccache, kr->princ); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto done; - } - - kerr = krb5_cc_store_cred(kr->ctx, ccache, kr->creds); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto done; - } - -@@ -1059,8 +1068,8 @@ - - ret = create_ccache_file(kr->ctx, kr->princ, kr->ccname, NULL); - if (ret != 0) { -- KRB5_DEBUG(1, ret); -- pam_status = PAM_SYSTEM_ERR; -+ KRB5_DEBUG(1, ret, kr->ctx); -+ pam_status = PAM_SERVICE_ERR; - } - - ret = sendresponse(fd, ret, pam_status, kr); -@@ -1375,19 +1384,20 @@ - - kerr = krb5_init_context(&kr->ctx); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ /* FIXME: This sucks */ -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - - kerr = krb5_parse_name(kr->ctx, kr->upn, &kr->princ); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - - kerr = krb5_unparse_name(kr->ctx, kr->princ, &kr->name); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - -@@ -1400,18 +1410,18 @@ - - kerr = sss_krb5_get_init_creds_opt_alloc(kr->ctx, &kr->options); - if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - - /* A prompter is used to catch messages about when a password will - * expired. The library shall not use the prompter to ask for a new password - * but shall return KRB5KDC_ERR_KEY_EXP. */ -- krb5_get_init_creds_opt_set_change_password_prompt(kr->options, 0); -- if (kerr != 0) { -- KRB5_DEBUG(1, kerr); -- goto failed; -- } -+ // krb5_get_init_creds_opt_set_change_password_prompt(kr->options, 0); -+ // if (kerr != 0) { -+ // KRB5_DEBUG(1, kerr, kr->ctx); -+ // goto failed; -+ // } - - lifetime_str = getenv(SSSD_KRB5_RENEWABLE_LIFETIME); - if (lifetime_str == NULL) { -@@ -1422,7 +1432,7 @@ - if (kerr != 0) { - DEBUG(1, ("krb5_string_to_deltat failed for [%s].\n", - lifetime_str)); -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - krb5_get_init_creds_opt_set_renew_life(kr->options, lifetime); -@@ -1437,7 +1447,7 @@ - if (kerr != 0) { - DEBUG(1, ("krb5_string_to_deltat failed for [%s].\n", - lifetime_str)); -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - krb5_get_init_creds_opt_set_tkt_life(kr->options, lifetime); -@@ -1486,7 +1496,7 @@ - kr, &kr->fast_ccname); - if (kerr != 0) { - DEBUG(1, ("check_fast_ccache failed.\n")); -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - -@@ -1496,7 +1506,7 @@ - if (kerr != 0) { - DEBUG(1, ("sss_krb5_get_init_creds_opt_set_fast_ccache_name " - "failed.\n")); -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - -@@ -1507,7 +1517,7 @@ - if (kerr != 0) { - DEBUG(1, ("sss_krb5_get_init_creds_opt_set_fast_flags " - "failed.\n")); -- KRB5_DEBUG(1, kerr); -+ KRB5_DEBUG(1, kerr, kr->ctx); - goto failed; - } - } Index: files/patch-src__providers__krb5__krb5_utils.c =================================================================== --- files/patch-src__providers__krb5__krb5_utils.c (revision 325399) +++ files/patch-src__providers__krb5__krb5_utils.c (working copy) @@ -1,17 +0,0 @@ ---- ./src/providers/krb5/krb5_utils.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/krb5/krb5_utils.c 2011-10-13 12:15:03.000000000 -0400 -@@ -435,10 +435,10 @@ - } - - server_name = talloc_asprintf(NULL, "krbtgt/%.*s@%.*s", -- krb5_princ_realm(ctx, client_princ)->length, -- krb5_princ_realm(ctx, client_princ)->data, -- krb5_princ_realm(ctx, client_princ)->length, -- krb5_princ_realm(ctx, client_princ)->data); -+ krb5_realm_length(krb5_princ_realm(ctx, client_princ)), -+ krb5_princ_realm(ctx, client_princ), -+ krb5_realm_length(krb5_princ_realm(ctx, client_princ)), -+ krb5_princ_realm(ctx, client_princ)); - if (server_name == NULL) { - kerr = KRB5_CC_NOMEM; - DEBUG(1, ("talloc_asprintf failed.\n")); Index: files/patch-src__providers__ldap__ldap_auth.c =================================================================== --- files/patch-src__providers__ldap__ldap_auth.c (revision 325399) +++ files/patch-src__providers__ldap__ldap_auth.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/providers/ldap/ldap_auth.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/ldap/ldap_auth.c 2011-10-13 12:15:03.000000000 -0400 +From ad4b85556ddea5d5d2d6bcc5f00a8492b0b15c46 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 09/34] patch-src__providers__ldap__ldap_auth.c + +--- + src/providers/ldap/ldap_auth.c | 60 ++++++++++++++++++++++++++---------------- + 1 file changed, 37 insertions(+), 23 deletions(-) + +diff --git src/providers/ldap/ldap_auth.c src/providers/ldap/ldap_auth.c +index b0dd30c..6b1ad83 100644 +--- src/providers/ldap/ldap_auth.c ++++ src/providers/ldap/ldap_auth.c @@ -37,7 +37,6 @@ #include #include @@ -8,15 +19,7 @@ #include #include "util/util.h" -@@ -46,6 +45,7 @@ - #include "providers/ldap/ldap_common.h" - #include "providers/ldap/sdap_async.h" - -+ - /* MIT Kerberos has the same hardcoded warning interval of 7 days. Due to the - * fact that using the expiration time of a Kerberos password with LDAP - * authentication is presumably a rare case a separate config option is not -@@ -59,6 +59,22 @@ +@@ -56,6 +55,22 @@ enum pwexpire { PWEXPIRE_SHADOW }; @@ -39,7 +42,7 @@ static errno_t add_expired_warning(struct pam_data *pd, long exp_time) { int ret; -@@ -111,17 +127,16 @@ +@@ -110,17 +125,16 @@ static errno_t check_pwexpire_kerberos(const char *expire_date, time_t now, return EINVAL; } @@ -61,7 +64,7 @@ if (difftime(now, expire_time) > 0.0) { DEBUG(4, ("Kerberos password expired.\n")); -@@ -742,7 +757,7 @@ +@@ -762,7 +776,7 @@ void sdap_pam_chpass_handler(struct be_req *breq) DEBUG(2, ("starting password change request for user [%s].\n", pd->user)); @@ -70,7 +73,7 @@ if (pd->cmd != SSS_PAM_CHAUTHTOK && pd->cmd != SSS_PAM_CHAUTHTOK_PRELIM) { DEBUG(2, ("chpass target was called by wrong pam command.\n")); -@@ -799,7 +814,7 @@ +@@ -821,7 +835,7 @@ static void sdap_auth4chpass_done(struct tevent_req *req) &pw_expire_type, &pw_expire_data); talloc_zfree(req); if (ret) { @@ -79,7 +82,7 @@ goto done; } -@@ -819,7 +834,7 @@ +@@ -841,7 +855,7 @@ static void sdap_auth4chpass_done(struct tevent_req *req) &result); if (ret != EOK) { DEBUG(1, ("check_pwexpire_shadow failed.\n")); @@ -88,8 +91,8 @@ goto done; } break; -@@ -828,14 +843,14 @@ - &result); +@@ -850,14 +864,14 @@ static void sdap_auth4chpass_done(struct tevent_req *req) + state->breq->domain->pwd_expiration_warning); if (ret != EOK) { DEBUG(1, ("check_pwexpire_kerberos failed.\n")); - state->pd->pam_status = PAM_SYSTEM_ERR; @@ -105,7 +108,7 @@ goto done; } break; -@@ -844,7 +859,7 @@ +@@ -866,7 +880,7 @@ static void sdap_auth4chpass_done(struct tevent_req *req) break; default: DEBUG(1, ("Unknow pasword expiration type.\n")); @@ -114,7 +117,7 @@ goto done; } } -@@ -884,7 +899,7 @@ +@@ -906,7 +920,7 @@ static void sdap_auth4chpass_done(struct tevent_req *req) dp_err = DP_ERR_OFFLINE; break; default: @@ -123,25 +126,43 @@ } done: -@@ -905,7 +920,7 @@ +@@ -929,7 +943,7 @@ static void sdap_pam_chpass_done(struct tevent_req *req) ret = sdap_exop_modify_passwd_recv(req, state, &result, &user_error_message); talloc_zfree(req); - if (ret) { + if (ret && ret != EIO) { - state->pd->pam_status = PAM_SYSTEM_ERR; + state->pd->pam_status = PAM_SERVICE_ERR; goto done; } -@@ -964,7 +979,7 @@ +@@ -970,7 +984,7 @@ static void sdap_pam_chpass_done(struct tevent_req *req) + state->dn, + lastchanged_name); + if (subreq == NULL) { +- state->pd->pam_status = PAM_SYSTEM_ERR; ++ state->pd->pam_status = PAM_SERVICE_ERR; + goto done; + } + +@@ -991,7 +1005,7 @@ static void sdap_lastchange_done(struct tevent_req *req) + + ret = sdap_modify_shadow_lastchange_recv(req); + if (ret != EOK) { +- state->pd->pam_status = PAM_SYSTEM_ERR; ++ state->pd->pam_status = PAM_SERVICE_ERR; goto done; } +@@ -1032,7 +1046,7 @@ void sdap_pam_auth_handler(struct be_req *breq) + goto done; + } + - pd->pam_status = PAM_SYSTEM_ERR; + pd->pam_status = PAM_SERVICE_ERR; switch (pd->cmd) { case SSS_PAM_AUTHENTICATE: -@@ -1021,7 +1036,7 @@ +@@ -1090,7 +1104,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) &pw_expire_type, &pw_expire_data); talloc_zfree(req); if (ret != EOK) { @@ -150,7 +171,7 @@ dp_err = DP_ERR_FATAL; goto done; } -@@ -1033,7 +1048,7 @@ +@@ -1102,7 +1116,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) state->pd, &result); if (ret != EOK) { DEBUG(1, ("check_pwexpire_shadow failed.\n")); @@ -159,8 +180,8 @@ goto done; } break; -@@ -1042,7 +1057,7 @@ - state->pd, &result); +@@ -1112,7 +1126,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) + be_ctx->domain->pwd_expiration_warning); if (ret != EOK) { DEBUG(1, ("check_pwexpire_kerberos failed.\n")); - state->pd->pam_status = PAM_SYSTEM_ERR; @@ -168,8 +189,8 @@ goto done; } break; -@@ -1050,7 +1065,7 @@ - ret = check_pwexpire_ldap(state->pd, pw_expire_data, &result); +@@ -1121,7 +1135,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) + be_ctx->domain->pwd_expiration_warning); if (ret != EOK) { DEBUG(1, ("check_pwexpire_ldap failed.\n")); - state->pd->pam_status = PAM_SYSTEM_ERR; @@ -177,7 +198,7 @@ goto done; } break; -@@ -1058,7 +1073,7 @@ +@@ -1129,7 +1143,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) break; default: DEBUG(1, ("Unknow pasword expiration type.\n")); @@ -186,7 +207,7 @@ goto done; } } -@@ -1080,7 +1095,7 @@ +@@ -1151,7 +1165,7 @@ static void sdap_pam_auth_done(struct tevent_req *req) state->pd->pam_status = PAM_NEW_AUTHTOK_REQD; break; default: @@ -195,3 +216,6 @@ dp_err = DP_ERR_FATAL; } +-- +1.8.0 + Index: files/patch-src__providers__ldap__ldap_child.c =================================================================== --- files/patch-src__providers__ldap__ldap_child.c (revision 325399) +++ files/patch-src__providers__ldap__ldap_child.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/providers/ldap/ldap_child.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/ldap/ldap_child.c 2011-10-13 12:15:03.000000000 -0400 -@@ -165,7 +165,7 @@ +From 144bf96dbd929248159bf932c1d3b5bccf451bee Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 10/34] patch-src__providers__ldap__ldap_child.c + +--- + src/providers/ldap/ldap_child.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/providers/ldap/ldap_child.c src/providers/ldap/ldap_child.c +index f35d946..9a45cf5 100644 +--- src/providers/ldap/ldap_child.c ++++ src/providers/ldap/ldap_child.c +@@ -206,7 +206,7 @@ static krb5_error_code ldap_child_get_tgt_sync(TALLOC_CTX *memctx, } realm_name = talloc_strdup(memctx, default_realm); @@ -9,35 +20,6 @@ if (!realm_name) { krberr = KRB5KRB_ERR_GENERIC; goto done; -@@ -279,20 +279,20 @@ - goto done; - } - -- krberr = krb5_get_time_offsets(context, &kdc_time_offset, &kdc_time_offset_usec); -- if (krberr) { -- DEBUG(2, ("Failed to get KDC time offset: %s\n", -- sss_krb5_get_error_message(context, krberr))); -- kdc_time_offset = 0; -- } else { -- if (kdc_time_offset_usec > 0) { -- kdc_time_offset++; -- } -- } -+ // krberr = krb5_get_time_offsets(context, &kdc_time_offset, &kdc_time_offset_usec); -+ // if (krberr) { -+ // DEBUG(2, ("Failed to get KDC time offset: %s\n", -+ // sss_krb5_get_error_message(context, krberr))); -+ // kdc_time_offset = 0; -+ // } else { -+ // if (kdc_time_offset_usec > 0) { -+ // kdc_time_offset++; -+ // } -+ // } - - krberr = 0; - *ccname_out = ccname; -- *expire_time_out = my_creds.times.endtime - kdc_time_offset; -+ *expire_time_out = my_creds.times.endtime; - - done: - if (keytab) krb5_kt_close(context, keytab); +-- +1.8.0 + Index: files/patch-src__providers__ldap__ldap_common.c =================================================================== --- files/patch-src__providers__ldap__ldap_common.c (revision 325399) +++ files/patch-src__providers__ldap__ldap_common.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/providers/ldap/ldap_common.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/ldap/ldap_common.c 2011-10-13 12:15:03.000000000 -0400 -@@ -749,7 +749,7 @@ +From 5becc163a7101c94c84c4b7e330b62eb137c3bd7 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 11/34] patch-src__providers__ldap__ldap_common.c + +--- + src/providers/ldap/ldap_common.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/providers/ldap/ldap_common.c src/providers/ldap/ldap_common.c +index f8b921a..84e51ae 100644 +--- src/providers/ldap/ldap_common.c ++++ src/providers/ldap/ldap_common.c +@@ -1109,7 +1109,7 @@ sdap_gssapi_get_default_realm(TALLOC_CTX *mem_ctx) } realm = talloc_strdup(mem_ctx, krb5_realm); @@ -9,3 +20,6 @@ if (!realm) { DEBUG(0, ("Out of memory\n")); goto done; +-- +1.8.0 + Index: files/patch-src__providers__ldap__sdap_access.c =================================================================== --- files/patch-src__providers__ldap__sdap_access.c (revision 325399) +++ files/patch-src__providers__ldap__sdap_access.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/providers/ldap/sdap_access.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/ldap/sdap_access.c 2011-10-13 12:15:03.000000000 -0400 +From cebca2806d06fce5a5c610a39044a5a4039f71ef Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 12/34] patch-src__providers__ldap__sdap_access.c + +--- + src/providers/ldap/sdap_access.c | 43 +++++++++++++++++++--------------------- + 1 file changed, 20 insertions(+), 23 deletions(-) + +diff --git src/providers/ldap/sdap_access.c src/providers/ldap/sdap_access.c +index b198e04..37eae45 100644 +--- src/providers/ldap/sdap_access.c ++++ src/providers/ldap/sdap_access.c @@ -22,9 +22,7 @@ along with this program. If not, see . */ @@ -10,7 +21,7 @@ #include #include #include -@@ -119,7 +117,7 @@ +@@ -109,7 +107,7 @@ void sdap_pam_access_handler(struct be_req *breq) pd); if (req == NULL) { DEBUG(1, ("Unable to start sdap_access request\n")); @@ -19,16 +30,16 @@ return; } -@@ -157,7 +155,7 @@ +@@ -149,7 +147,7 @@ sdap_access_send(TALLOC_CTX *mem_ctx, - state->be_ctx = be_ctx; + state->be_req = be_req; state->pd = pd; - state->pam_status = PAM_SYSTEM_ERR; + state->pam_status = PAM_SERVICE_ERR; state->ev = ev; state->access_ctx = access_ctx; state->current_rule = 0; -@@ -502,18 +500,17 @@ +@@ -502,18 +500,17 @@ static bool nds_check_expired(const char *exp_time_str) return true; } @@ -51,7 +62,7 @@ if (difftime(now, expire_time) > 0.0) { DEBUG(4, ("NDS account expired.\n")); -@@ -663,7 +660,7 @@ +@@ -662,7 +659,7 @@ static struct tevent_req *sdap_account_expired_send(TALLOC_CTX *mem_ctx, return NULL; } @@ -60,7 +71,7 @@ expire = dp_opt_get_cstring(access_ctx->id_ctx->opts->basic, SDAP_ACCOUNT_EXPIRE_POLICY); -@@ -747,7 +744,7 @@ +@@ -746,7 +743,7 @@ static void sdap_account_expired_done(struct tevent_req *subreq) talloc_zfree(subreq); if (ret != EOK) { DEBUG(1, ("Error retrieving access check result.\n")); @@ -69,17 +80,17 @@ tevent_req_error(req, ret); return; } -@@ -807,7 +804,7 @@ +@@ -806,7 +803,7 @@ static struct tevent_req *sdap_access_filter_send(TALLOC_CTX *mem_ctx, state->filter = NULL; - state->be_ctx = be_ctx; + state->be_req = be_req; state->username = username; - state->pam_status = PAM_SYSTEM_ERR; + state->pam_status = PAM_SERVICE_ERR; state->sdap_ctx = access_ctx->id_ctx; state->ev = ev; state->access_ctx = access_ctx; -@@ -953,7 +950,7 @@ - SDAP_SEARCH_TIMEOUT)); +@@ -953,7 +950,7 @@ static void sdap_access_filter_connect_done(struct tevent_req *subreq) + false); if (subreq == NULL) { DEBUG(1, ("Could not start LDAP communication\n")); - state->pam_status = PAM_SYSTEM_ERR; @@ -87,7 +98,7 @@ tevent_req_error(req, EIO); return; } -@@ -984,13 +981,13 @@ +@@ -984,13 +981,13 @@ static void sdap_access_filter_get_access_done(struct tevent_req *subreq) if (ret == EOK) { return; } @@ -103,7 +114,7 @@ } goto done; -@@ -1009,7 +1006,7 @@ +@@ -1009,7 +1006,7 @@ static void sdap_access_filter_get_access_done(struct tevent_req *subreq) else if (results == NULL) { DEBUG(1, ("num_results > 0, but results is NULL\n")); ret = EIO; @@ -112,7 +123,7 @@ goto done; } else if (num_results > 1) { -@@ -1018,7 +1015,7 @@ +@@ -1018,7 +1015,7 @@ static void sdap_access_filter_get_access_done(struct tevent_req *subreq) */ DEBUG(1, ("Received multiple replies\n")); ret = EIO; @@ -121,7 +132,7 @@ goto done; } else { /* Ok, we got a single reply */ -@@ -1106,7 +1103,7 @@ +@@ -1104,7 +1101,7 @@ static void sdap_access_filter_done(struct tevent_req *subreq) talloc_zfree(subreq); if (ret != EOK) { DEBUG(1, ("Error retrieving access check result.\n")); @@ -130,7 +141,7 @@ tevent_req_error(req, ret); return; } -@@ -1247,7 +1244,7 @@ +@@ -1244,7 +1241,7 @@ static void sdap_access_service_done(struct tevent_req *subreq) talloc_zfree(subreq); if (ret != EOK) { DEBUG(1, ("Error retrieving access check result.\n")); @@ -139,7 +150,7 @@ tevent_req_error(req, ret); return; } -@@ -1274,7 +1271,7 @@ +@@ -1269,7 +1266,7 @@ static struct tevent_req *sdap_access_host_send( struct ldb_message_element *el; unsigned int i; char *host; @@ -148,7 +159,7 @@ req = tevent_req_create(mem_ctx, &state, struct sdap_access_host_ctx); if (!req) { -@@ -1370,7 +1367,7 @@ +@@ -1365,7 +1362,7 @@ static void sdap_access_host_done(struct tevent_req *subreq) talloc_zfree(subreq); if (ret != EOK) { DEBUG(1, ("Error retrieving access check result.\n")); @@ -157,7 +168,7 @@ tevent_req_error(req, ret); return; } -@@ -1395,7 +1392,7 @@ +@@ -1391,7 +1388,7 @@ sdap_access_recv(struct tevent_req *req, int *pam_status) static void sdap_access_done(struct tevent_req *req) { errno_t ret; @@ -166,7 +177,7 @@ struct be_req *breq = tevent_req_callback_data(req, struct be_req); -@@ -1403,7 +1400,7 @@ +@@ -1399,7 +1396,7 @@ static void sdap_access_done(struct tevent_req *req) talloc_zfree(req); if (ret != EOK) { DEBUG(1, ("Error retrieving access check result.\n")); @@ -175,3 +186,6 @@ } sdap_access_reply(breq, pam_status); +-- +1.8.0 + Index: files/patch-src__providers__ldap__sdap_async_sudo_hostinfo.c =================================================================== --- files/patch-src__providers__ldap__sdap_async_sudo_hostinfo.c (revision 0) +++ files/patch-src__providers__ldap__sdap_async_sudo_hostinfo.c (working copy) @@ -0,0 +1,42 @@ +From 58d918d01b03a3332b3e9da917a45b4b7ef7a427 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 15:01:26 +0200 +Subject: [PATCH 30/34] patch-src__providers__ldap__sdap_async_sudo_hostinfo.c + +--- + src/providers/ldap/sdap_async_sudo_hostinfo.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/providers/ldap/sdap_async_sudo_hostinfo.c src/providers/ldap/sdap_async_sudo_hostinfo.c +index 0a695cd..108b4c2 100644 +--- src/providers/ldap/sdap_async_sudo_hostinfo.c ++++ src/providers/ldap/sdap_async_sudo_hostinfo.c +@@ -371,7 +371,7 @@ static struct tevent_req *sdap_sudo_get_hostnames_send(TALLOC_CTX *mem_ctx, + struct tevent_req *subreq = NULL; + struct sdap_sudo_get_hostnames_state *state = NULL; + char *dot = NULL; +- char hostname[HOST_NAME_MAX + 1]; ++ char hostname[_POSIX_HOST_NAME_MAX + 1]; + int resolv_timeout; + int ret; + +@@ -395,14 +395,14 @@ static struct tevent_req *sdap_sudo_get_hostnames_send(TALLOC_CTX *mem_ctx, + /* get hostname */ + + errno = 0; +- ret = gethostname(hostname, HOST_NAME_MAX); ++ ret = gethostname(hostname, _POSIX_HOST_NAME_MAX); + if (ret != EOK) { + ret = errno; + DEBUG(SSSDBG_CRIT_FAILURE, ("Unable to retrieve machine hostname " + "[%d]: %s\n", ret, strerror(ret))); + goto done; + } +- hostname[HOST_NAME_MAX] = '\0'; ++ hostname[_POSIX_HOST_NAME_MAX] = '\0'; + + state->hostnames[0] = talloc_strdup(state->hostnames, hostname); + if (state->hostnames[0] == NULL) { +-- +1.8.0 + Index: files/patch-src__providers__proxy__proxy_init.c =================================================================== --- files/patch-src__providers__proxy__proxy_init.c (revision 325399) +++ files/patch-src__providers__proxy__proxy_init.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/providers/proxy/proxy_init.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/providers/proxy/proxy_init.c 2011-10-13 12:15:03.000000000 -0400 -@@ -124,7 +124,7 @@ +From 6d9c90d8cd4dedbc0f3642e9fc8287eb34504e1a Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 13/34] patch-src__providers__proxy__proxy_init.c + +--- + src/providers/proxy/proxy_init.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git src/providers/proxy/proxy_init.c src/providers/proxy/proxy_init.c +index de4d7b6..99b464a 100644 +--- src/providers/proxy/proxy_init.c ++++ src/providers/proxy/proxy_init.c +@@ -123,7 +123,7 @@ int sssm_proxy_id_init(struct be_ctx *bectx, if (!ctx->handle) { DEBUG(0, ("Unable to load %s module with path, error: %s\n", libpath, dlerror())); @@ -9,7 +20,7 @@ goto done; } -@@ -132,7 +132,7 @@ +@@ -131,7 +131,7 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getpwnam_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -18,7 +29,7 @@ goto done; } -@@ -140,14 +140,14 @@ +@@ -139,14 +139,14 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getpwuid_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -35,7 +46,7 @@ goto done; } -@@ -155,14 +155,14 @@ +@@ -154,14 +154,14 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getpwent_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -52,7 +63,7 @@ goto done; } -@@ -170,7 +170,7 @@ +@@ -169,7 +169,7 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getgrnam_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -61,7 +72,7 @@ goto done; } -@@ -178,14 +178,14 @@ +@@ -177,14 +177,14 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getgrgid_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -78,7 +89,7 @@ goto done; } -@@ -193,14 +193,14 @@ +@@ -192,14 +192,14 @@ int sssm_proxy_id_init(struct be_ctx *bectx, libname); if (!ctx->ops.getgrent_r) { DEBUG(0, ("Failed to load NSS fns, error: %s\n", dlerror())); @@ -95,3 +106,6 @@ goto done; } +-- +1.8.0 + Index: files/patch-src__resolv__async_resolv.c =================================================================== --- files/patch-src__resolv__async_resolv.c (revision 325399) +++ files/patch-src__resolv__async_resolv.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/resolv/async_resolv.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/resolv/async_resolv.c 2011-10-13 12:15:03.000000000 -0400 -@@ -1073,7 +1073,6 @@ +From 5434161320c86634512ac70e1d49c63375a71dc4 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 14/34] patch-src__resolv__async_resolv.c + +--- + src/resolv/async_resolv.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/resolv/async_resolv.c src/resolv/async_resolv.c +index 268d266..1bb84e5 100644 +--- src/resolv/async_resolv.c ++++ src/resolv/async_resolv.c +@@ -1203,7 +1203,6 @@ resolv_is_address(const char *name) hints.ai_flags = AI_NUMERICHOST; /* No network lookups */ ret = getaddrinfo(name, NULL, &hints, &res); @@ -8,7 +19,7 @@ if (ret != 0) { if (ret == -2) { DEBUG(9, ("[%s] does not look like an IP address\n", name)); -@@ -1081,6 +1080,8 @@ +@@ -1211,6 +1210,8 @@ resolv_is_address(const char *name) DEBUG(2, ("getaddrinfo failed [%d]: %s\n", ret, gai_strerror(ret))); } @@ -17,3 +28,6 @@ } return ret == 0; +-- +1.8.0 + Index: files/patch-src__responder__common__responder_common.c =================================================================== --- files/patch-src__responder__common__responder_common.c (revision 325399) +++ files/patch-src__responder__common__responder_common.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/responder/common/responder_common.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/responder/common/responder_common.c 2011-10-13 12:15:03.000000000 -0400 -@@ -195,7 +195,7 @@ +From b668ec58a5d60c65e24c3b123ab7589fb28c3e83 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 15/34] patch-src__responder__common__responder_common.c + +--- + src/responder/common/responder_common.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/responder/common/responder_common.c src/responder/common/responder_common.c +index c5d7577..965a870 100644 +--- src/responder/common/responder_common.c ++++ src/responder/common/responder_common.c +@@ -308,7 +308,7 @@ static void client_recv(struct cli_ctx *cctx) talloc_free(cctx); break; @@ -9,3 +20,6 @@ DEBUG(5, ("Client disconnected!\n")); talloc_free(cctx); break; +-- +1.8.0 + Index: files/patch-src__responder__common__responder_dp.c =================================================================== --- files/patch-src__responder__common__responder_dp.c (revision 325399) +++ files/patch-src__responder__common__responder_dp.c (working copy) @@ -1,15 +1,17 @@ ---- ./src/responder/common/responder_dp.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/responder/common/responder_dp.c 2011-10-13 12:15:03.000000000 -0400 -@@ -210,7 +210,7 @@ - &sdp_req->err_min, - &sdp_req->err_msg); - if (ret != EOK) { -- if (ret == ETIME) { -+ if (ret == ETIMEDOUT) { - sdp_req->err_maj = DP_ERR_TIMEOUT; - sdp_req->err_min = ret; - sdp_req->err_msg = talloc_strdup(sdp_req, "Request timed out"); -@@ -569,7 +569,7 @@ +From e98e59d8a6958ac1dc87b53f71aa9f51251b4568 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 16/34] patch-src__responder__common__responder_dp.c + +--- + src/responder/common/responder_dp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/responder/common/responder_dp.c src/responder/common/responder_dp.c +index d15ca4d..3cb406a 100644 +--- src/responder/common/responder_dp.c ++++ src/responder/common/responder_dp.c +@@ -213,7 +213,7 @@ static int sss_dp_get_reply(DBusPendingCall *pending, case DBUS_MESSAGE_TYPE_ERROR: if (strcmp(dbus_message_get_error_name(reply), DBUS_ERROR_NO_REPLY) == 0) { @@ -18,3 +20,15 @@ goto done; } DEBUG(0,("The Data Provider returned an error [%s]\n", +@@ -734,7 +734,7 @@ static void sss_dp_internal_get_done(DBusPendingCall *pending, void *ptr) + &sdp_req->dp_ret, + &sdp_req->err_msg); + if (ret != EOK) { +- if (ret == ETIME) { ++ if (ret == ETIMEDOUT) { + sdp_req->dp_err = DP_ERR_TIMEOUT; + sdp_req->dp_ret = ret; + sdp_req->err_msg = talloc_strdup(sdp_req, "Request timed out"); +-- +1.8.0 + Index: files/patch-src__responder__common__responder_packet.c =================================================================== --- files/patch-src__responder__common__responder_packet.c (revision 325399) +++ files/patch-src__responder__common__responder_packet.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/responder/common/responder_packet.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/responder/common/responder_packet.c 2011-10-13 12:15:03.000000000 -0400 -@@ -192,7 +192,7 @@ +From dd2d4ee745852a6d059b07966d1728b10c1240ff Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 17/34] patch-src__responder__common__responder_packet.c + +--- + src/responder/common/responder_packet.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/responder/common/responder_packet.c src/responder/common/responder_packet.c +index 5132d95..09b8d6d 100644 +--- src/responder/common/responder_packet.c ++++ src/responder/common/responder_packet.c +@@ -192,7 +192,7 @@ int sss_packet_recv(struct sss_packet *packet, int fd) } if (rb == 0) { @@ -9,3 +20,6 @@ } if (*packet->len > packet->memsize) { +-- +1.8.0 + Index: files/patch-src__sss_client__common.c =================================================================== --- files/patch-src__sss_client__common.c (revision 325399) +++ files/patch-src__sss_client__common.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/sss_client/common.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/sss_client/common.c 2011-10-13 12:15:03.000000000 -0400 -@@ -26,6 +26,7 @@ +From f40ad7e39f68345f3bfec169556463c1a13706e0 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 18/34] patch-src__sss_client__common.c + +--- + src/sss_client/common.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git src/sss_client/common.c src/sss_client/common.c +index 6639ae1..d0b5c6d 100644 +--- src/sss_client/common.c ++++ src/sss_client/common.c +@@ -25,6 +25,7 @@ #include "config.h" #include @@ -8,7 +19,18 @@ #include #include #include -@@ -111,7 +112,6 @@ +@@ -61,6 +62,10 @@ + #define SSS_DEFAULT_WRITE_FLAGS 0 + #endif + ++#ifndef EOWNERDEAD ++#define EOWNERDEAD 130 ++#endif ++ + /* common functions */ + + int sss_cli_sd = -1; /* the sss client socket descriptor */ +@@ -124,7 +129,6 @@ static enum sss_status sss_cli_send_req(enum sss_cli_command cmd, *errnop = error; break; case 0: @@ -16,15 +38,15 @@ break; case 1: if (pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { -@@ -216,7 +216,6 @@ +@@ -232,7 +236,6 @@ static enum sss_status sss_cli_recv_rep(enum sss_cli_command cmd, *errnop = error; break; case 0: - *errnop = ETIME; break; case 1: - if (pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { -@@ -638,7 +637,6 @@ + if (pfd.revents & (POLLHUP)) { +@@ -669,7 +672,6 @@ static enum sss_status sss_cli_check_socket(int *errnop, const char *socket_name *errnop = error; break; case 0: @@ -32,7 +54,7 @@ break; case 1: if (pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { -@@ -688,23 +686,23 @@ +@@ -719,23 +721,23 @@ enum nss_status sss_nss_make_request(enum sss_cli_command cmd, /* avoid looping in the nss daemon */ envval = getenv("_SSS_LOOPS"); if (envval && strcmp(envval, "NO") == 0) { @@ -61,3 +83,15 @@ } } +@@ -984,7 +986,7 @@ errno_t sss_strnlen(const char *str, size_t maxlen, size_t *len) + *len = 0; + while (*len < maxlen) { + if (str[*len] == '\0') break; +- len++; ++ ++*len; + } + #endif + +-- +1.8.0 + Index: files/patch-src__sss_client__nss_group.c =================================================================== --- files/patch-src__sss_client__nss_group.c (revision 325399) +++ files/patch-src__sss_client__nss_group.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/sss_client/nss_group.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/sss_client/nss_group.c 2011-10-13 12:15:03.000000000 -0400 -@@ -248,6 +248,77 @@ +From 36ea9e6d18578237b9e7ffef382788736eab49f5 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 19/34] patch-src__sss_client__nss_group.c + +--- + src/sss_client/nss_group.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 71 insertions(+) + +diff --git src/sss_client/nss_group.c src/sss_client/nss_group.c +index e6ea54b..88cd1ab 100644 +--- src/sss_client/nss_group.c ++++ src/sss_client/nss_group.c +@@ -343,6 +343,77 @@ out: } @@ -78,3 +89,6 @@ enum nss_status _nss_sss_getgrnam_r(const char *name, struct group *result, char *buffer, size_t buflen, int *errnop) { +-- +1.8.0 + Index: files/patch-src__sss_client__pam_sss.c =================================================================== --- files/patch-src__sss_client__pam_sss.c (revision 0) +++ files/patch-src__sss_client__pam_sss.c (working copy) @@ -0,0 +1,29 @@ +From 86816db5982df0c1b0c5f5722e23111c62ff362e Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 15:02:31 +0200 +Subject: [PATCH 31/34] patch-src__sss_client__pam_sss.c + +--- + src/sss_client/pam_sss.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/sss_client/pam_sss.c src/sss_client/pam_sss.c +index 3734c8f..7110d38 100644 +--- src/sss_client/pam_sss.c ++++ src/sss_client/pam_sss.c +@@ -125,10 +125,12 @@ static void free_exp_data(pam_handle_t *pamh, void *ptr, int err) + + static void close_fd(pam_handle_t *pamh, void *ptr, int err) + { ++#ifdef PAM_DATA_REPLACE + if (err & PAM_DATA_REPLACE) { + /* Nothing to do */ + return; + } ++#endif /* PAM_DATA_REPLACE */ + + D(("Closing the fd")); + sss_pam_close_fd(); +-- +1.8.0 + Index: files/patch-src__sss_client__pam_test_client.c =================================================================== --- files/patch-src__sss_client__pam_test_client.c (revision 325399) +++ files/patch-src__sss_client__pam_test_client.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/sss_client/pam_test_client.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/sss_client/pam_test_client.c 2011-10-13 12:15:03.000000000 -0400 +From d15b99c87c08f17eef814f431a4a58ed4a3ba9b6 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 20/34] patch-src__sss_client__pam_test_client.c + +--- + src/sss_client/pam_test_client.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git src/sss_client/pam_test_client.c src/sss_client/pam_test_client.c +index ef424e7..d8cf36c 100644 +--- src/sss_client/pam_test_client.c ++++ src/sss_client/pam_test_client.c @@ -24,12 +24,13 @@ #include @@ -16,3 +27,6 @@ NULL }; +-- +1.8.0 + Index: files/patch-src__sss_client__sss_nss.exports =================================================================== --- files/patch-src__sss_client__sss_nss.exports (revision 325399) +++ files/patch-src__sss_client__sss_nss.exports (working copy) @@ -1,6 +1,17 @@ ---- ./src/sss_client/sss_nss.exports.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/sss_client/sss_nss.exports 2011-10-13 12:13:42.000000000 -0400 -@@ -3,6 +3,7 @@ +From d7dcd7c8796efbecd4e41931080d7d28f72f9ee1 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:11 +0200 +Subject: [PATCH 21/34] patch-src__sss_client__sss_nss.exports + +--- + src/sss_client/sss_nss.exports | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git src/sss_client/sss_nss.exports src/sss_client/sss_nss.exports +index 1eefea8..8e85a05 100644 +--- src/sss_client/sss_nss.exports ++++ src/sss_client/sss_nss.exports +@@ -3,6 +3,7 @@ EXPORTED { # public functions global: @@ -8,7 +19,7 @@ _nss_sss_getpwnam_r; _nss_sss_getpwuid_r; _nss_sss_setpwent; -@@ -14,8 +15,25 @@ +@@ -14,8 +15,25 @@ EXPORTED { _nss_sss_setgrent; _nss_sss_getgrent_r; _nss_sss_endgrent; @@ -34,3 +45,6 @@ #_nss_sss_getaliasbyname_r; #_nss_sss_setaliasent; #_nss_sss_getaliasent_r; +-- +1.8.0 + Index: files/patch-src__util__crypto__libcrypto__crypto_sha512crypt.c =================================================================== --- files/patch-src__util__crypto__libcrypto__crypto_sha512crypt.c (revision 325399) +++ files/patch-src__util__crypto__libcrypto__crypto_sha512crypt.c (working copy) @@ -1,20 +1,54 @@ ---- ./src/util/crypto/libcrypto/crypto_sha512crypt.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/crypto/libcrypto/crypto_sha512crypt.c 2011-10-13 12:15:03.000000000 -0400 -@@ -265,7 +265,7 @@ - goto done; - } +From 557ea27d9f1a8f86dc769ea6c174055992ebf803 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 22/34] patch-src__util__crypto__libcrypto__crypto_sha512crypt.c + +--- + src/util/crypto/libcrypto/crypto_sha512crypt.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git src/util/crypto/libcrypto/crypto_sha512crypt.c src/util/crypto/libcrypto/crypto_sha512crypt.c +index f4c3e0d..ed77fa6 100644 +--- src/util/crypto/libcrypto/crypto_sha512crypt.c ++++ src/util/crypto/libcrypto/crypto_sha512crypt.c +@@ -10,9 +10,7 @@ + /* SHA512-based Unix crypt implementation. + Released into the Public Domain by Ulrich Drepper . */ -- cp = __stpncpy(buffer, sha512_salt_prefix, SALT_PREF_SIZE); -+ cp = stpncpy(buffer, sha512_salt_prefix, SALT_PREF_SIZE); - buflen -= SALT_PREF_SIZE; +-#include "config.h" +- +-#include ++#include + #include + #include + #include +@@ -41,6 +39,8 @@ const char sha512_rounds_prefix[] = "rounds="; + #define ROUNDS_MIN 1000 + #define ROUNDS_MAX 999999999 - if (rounds_custom) { -@@ -283,7 +283,7 @@ - ret = ERANGE; - goto done; ++#define __stpncpy(x, y, z) stpncpy(x, y, z) ++ + /* Table with characters for base64 transformation. */ + const char b64t[64] = + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; +@@ -198,7 +198,7 @@ static int sha512_crypt_r(const char *key, + /* Create byte sequence P. */ + cp = p_bytes = alloca(key_len); + for (cnt = key_len; cnt >= 64; cnt -= 64) { +- cp = mempcpy(cp, temp_result, 64); ++ cp = (char *) memcpy(cp, temp_result, 64) + 64; } -- cp = __stpncpy(cp, salt, salt_len); -+ cp = stpncpy(cp, salt, salt_len); - *cp++ = '$'; - buflen -= salt_len + 1; + memcpy(cp, temp_result, cnt); +@@ -219,7 +219,7 @@ static int sha512_crypt_r(const char *key, + /* Create byte sequence S. */ + cp = s_bytes = alloca(salt_len); + for (cnt = salt_len; cnt >= 64; cnt -= 64) { +- cp = mempcpy(cp, temp_result, 64); ++ cp = (char *) memcpy(cp, temp_result, 64) + 64; + } + memcpy(cp, temp_result, cnt); + +-- +1.8.0 + Index: files/patch-src__util__crypto__nss__nss_sha512crypt.c =================================================================== --- files/patch-src__util__crypto__nss__nss_sha512crypt.c (revision 325399) +++ files/patch-src__util__crypto__nss__nss_sha512crypt.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/util/crypto/nss/nss_sha512crypt.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/crypto/nss/nss_sha512crypt.c 2011-10-13 12:15:03.000000000 -0400 +From f5fbf2eee46f33a4614f0553403c8590ca04bb59 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 23/34] patch-src__util__crypto__nss__nss_sha512crypt.c + +--- + src/util/crypto/nss/nss_sha512crypt.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git src/util/crypto/nss/nss_sha512crypt.c src/util/crypto/nss/nss_sha512crypt.c +index 76eb8a6..db7582d 100644 +--- src/util/crypto/nss/nss_sha512crypt.c ++++ src/util/crypto/nss/nss_sha512crypt.c @@ -10,7 +10,7 @@ #include "config.h" @@ -9,21 +20,33 @@ #include #include #include -@@ -267,7 +267,7 @@ - goto done; +@@ -42,6 +42,8 @@ const char sha512_rounds_prefix[] = "rounds="; + #define ROUNDS_MIN 1000 + #define ROUNDS_MAX 999999999 + ++#define __stpncpy(x, y, z) stpncpy(x, y, z) ++ + /* Table with characters for base64 transformation. */ + const char b64t[64] = + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; +@@ -205,7 +207,7 @@ static int sha512_crypt_r(const char *key, + /* Create byte sequence P. */ + cp = p_bytes = alloca(key_len); + for (cnt = key_len; cnt >= 64; cnt -= 64) { +- cp = mempcpy(cp, temp_result, 64); ++ cp = (char *) memcpy(cp, temp_result, 64) + 64; } + memcpy(cp, temp_result, cnt); -- cp = __stpncpy(buffer, sha512_salt_prefix, SALT_PREF_SIZE); -+ cp = stpncpy(buffer, sha512_salt_prefix, SALT_PREF_SIZE); - buflen -= SALT_PREF_SIZE; - - if (rounds_custom) { -@@ -285,7 +285,7 @@ - ret = ERANGE; - goto done; +@@ -223,7 +225,7 @@ static int sha512_crypt_r(const char *key, + /* Create byte sequence S. */ + cp = s_bytes = alloca(salt_len); + for (cnt = salt_len; cnt >= 64; cnt -= 64) { +- cp = mempcpy(cp, temp_result, 64); ++ cp = (char *) memcpy(cp, temp_result, 64) + 64; } -- cp = __stpncpy(cp, salt, salt_len); -+ cp = stpncpy(cp, salt, salt_len); - *cp++ = '$'; - buflen -= salt_len + 1; + memcpy(cp, temp_result, cnt); +-- +1.8.0 + Index: files/patch-src__util__find_uid.c =================================================================== --- files/patch-src__util__find_uid.c (revision 325399) +++ files/patch-src__util__find_uid.c (working copy) @@ -1,6 +1,17 @@ ---- ./src/util/find_uid.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/find_uid.c 2011-10-13 12:15:03.000000000 -0400 -@@ -67,7 +67,7 @@ +From 0b1b319b34db96e2088c1f71d51ce95f819ccce8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 24/34] patch-src__util__find_uid.c + +--- + src/util/find_uid.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git src/util/find_uid.c src/util/find_uid.c +index d34a4ab..b309b19 100644 +--- src/util/find_uid.c ++++ src/util/find_uid.c +@@ -67,7 +67,7 @@ static errno_t get_uid_from_pid(const pid_t pid, uid_t *uid) uint32_t num=0; errno_t error; @@ -9,7 +20,7 @@ if (ret < 0) { DEBUG(1, ("snprintf failed")); return EINVAL; -@@ -204,7 +204,7 @@ +@@ -206,7 +206,7 @@ static errno_t get_active_uid_linux(hash_table_t *table, uid_t search_uid) hash_key_t key; hash_value_t value; @@ -18,7 +29,7 @@ if (proc_dir == NULL) { ret = errno; DEBUG(1, ("Cannot open proc dir.\n")); -@@ -278,9 +278,8 @@ +@@ -280,9 +280,8 @@ done: errno_t get_uid_table(TALLOC_CTX *mem_ctx, hash_table_t **table) { @@ -29,3 +40,6 @@ ret = hash_create_ex(INITIAL_TABLE_SIZE, table, 0, 0, 0, 0, hash_talloc, hash_talloc_free, mem_ctx, NULL, NULL); +-- +1.8.0 + Index: files/patch-src__util__murmurhash3.c =================================================================== --- files/patch-src__util__murmurhash3.c (revision 0) +++ files/patch-src__util__murmurhash3.c (working copy) @@ -0,0 +1,27 @@ +From 1295f600b3e94e02d8c5181b1b156325619c449f Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 25/34] patch-src__util__murmurhash3.c + +--- + src/util/murmurhash3.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git src/util/murmurhash3.c src/util/murmurhash3.c +index 80e52ed..341505c 100644 +--- src/util/murmurhash3.c ++++ src/util/murmurhash3.c +@@ -8,9 +8,8 @@ + + #include + #include +-#include ++#include + #include +-#include + + /* support RHEL5 lack of definitions */ + #ifndef le32toh +-- +1.8.0 + Index: files/patch-src__util__server.c =================================================================== --- files/patch-src__util__server.c (revision 325399) +++ files/patch-src__util__server.c (working copy) @@ -1,22 +1,35 @@ ---- ./src/util/server.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/server.c 2011-10-13 12:15:03.000000000 -0400 -@@ -296,14 +296,15 @@ - BlockSignals(false, SIGTERM); +From 43f9d669315d710d8479b259e33d1f16afcba1d2 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 26/34] patch-src__util__server.c + +--- + src/util/server.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git src/util/server.c src/util/server.c +index b3073fc..2def1f6 100644 +--- src/util/server.c ++++ src/util/server.c +@@ -321,12 +321,13 @@ static void setup_signals(void) + BlockSignals(false, SIGTERM); - CatchSignal(SIGHUP, sig_hup); + CatchSignal(SIGHUP, sig_hup); - #ifndef HAVE_PRCTL - /* If prctl is not defined on the system, try to handle - * some common termination signals gracefully */ -- CatchSignal(SIGSEGV, sig_segv_abrt); -- CatchSignal(SIGABRT, sig_segv_abrt); -+ /* -+ CatchSignal(SIGSEGV, sig_segv_abrt); -+ CatchSignal(SIGABRT, sig_segv_abrt); -+ */ +- /* If prctl is not defined on the system, try to handle +- * some common termination signals gracefully */ +- CatchSignal(SIGSEGV, sig_segv_abrt); +- CatchSignal(SIGABRT, sig_segv_abrt); ++ /* If prctl is not defined on the system, try to handle ++ * some common termination signals gracefully */ ++ /* ++ CatchSignal(SIGSEGV, sig_segv_abrt); ++ CatchSignal(SIGABRT, sig_segv_abrt); ++ */ #endif -- -+ + } - - /* +-- +1.8.0 + Index: files/patch-src__util__sss_krb5.c =================================================================== --- files/patch-src__util__sss_krb5.c (revision 325399) +++ files/patch-src__util__sss_krb5.c (working copy) @@ -1,58 +0,0 @@ ---- ./src/util/sss_krb5.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/sss_krb5.c 2011-10-13 12:15:03.000000000 -0400 -@@ -165,8 +165,8 @@ - - if (_realm) { - *_realm = talloc_asprintf(mem_ctx, "%.*s", -- krb5_princ_realm(ctx, client_princ)->length, -- krb5_princ_realm(ctx, client_princ)->data); -+ krb5_realm_length(krb5_princ_realm(krb_ctx, client_princ)), -+ krb5_princ_realm(krb_ctx, client_princ)); - if (!*_realm) { - DEBUG(1, ("talloc_asprintf failed")); - if (_principal) talloc_zfree(*_principal); -@@ -243,7 +243,7 @@ - } - - realm_name = talloc_strdup(tmp_ctx, default_realm); -- krb5_free_default_realm(context, default_realm); -+ free(default_realm); - if (!realm_name) { - ret = ENOMEM; - goto done; -@@ -322,7 +322,7 @@ - found = true; - } - free(kt_principal); -- krberr = krb5_free_keytab_entry_contents(context, &entry); -+ krberr = krb5_kt_free_entry(context, &entry); - if (krberr) { - /* This should never happen. The API docs for this function - * specify only success for this function -@@ -466,7 +466,7 @@ - break; - } - -- kerr = krb5_free_keytab_entry_contents(ctx, &entry); -+ kerr = krb5_kt_free_entry(ctx, &entry); - if (kerr != 0) { - DEBUG(1, ("Failed to free keytab entry.\n")); - } -@@ -504,7 +504,7 @@ - kerr = 0; - - done: -- kerr_d = krb5_free_keytab_entry_contents(ctx, &entry); -+ kerr_d = krb5_kt_free_entry(ctx, &entry); - if (kerr_d != 0) { - DEBUG(1, ("Failed to free keytab entry.\n")); - } -@@ -540,7 +540,7 @@ - void KRB5_CALLCONV sss_krb5_free_error_message(krb5_context ctx, const char *s) - { - #ifdef HAVE_KRB5_GET_ERROR_MESSAGE -- krb5_free_error_message(ctx, s); -+ free(s); - #else - free(s); - #endif Index: files/patch-src__util__sss_krb5.h =================================================================== --- files/patch-src__util__sss_krb5.h (revision 325399) +++ files/patch-src__util__sss_krb5.h (working copy) @@ -1,11 +0,0 @@ ---- ./src/util/sss_krb5.h.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/sss_krb5.h 2011-10-13 12:15:09.000000000 -0400 -@@ -34,6 +34,8 @@ - - #include "util/util.h" - -+#define KRB5_CALLCONV -+ - const char * KRB5_CALLCONV sss_krb5_get_error_message (krb5_context, - krb5_error_code); - Index: files/patch-src__util__sss_ldap.c =================================================================== --- files/patch-src__util__sss_ldap.c (revision 325399) +++ files/patch-src__util__sss_ldap.c (working copy) @@ -1,6 +1,27 @@ ---- ./src/util/sss_ldap.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/sss_ldap.c 2011-10-13 12:15:03.000000000 -0400 -@@ -267,7 +267,7 @@ +From 074dd84d5ed0e5d2b48d2aeb1b92e51507516c2d Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 16:08:12 +0200 +Subject: [PATCH 27/34] patch-src__util__sss_ldap.c + +--- + src/util/sss_ldap.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git src/util/sss_ldap.c src/util/sss_ldap.c +index 060aacf..a2cc82a 100644 +--- src/util/sss_ldap.c ++++ src/util/sss_ldap.c +@@ -208,6 +208,9 @@ static void sdap_async_sys_connect_done(struct tevent_context *ev, + errno = 0; + ret = connect(state->fd, (struct sockaddr *) &state->addr, + state->addr_len); ++ if (errno == EISCONN) { ++ ret = EOK; ++ } + if (ret != EOK) { + ret = errno; + if (ret == EINPROGRESS || ret == EINTR) { +@@ -268,7 +271,7 @@ static errno_t set_fd_flags_and_opts(int fd) strerror(ret))); } @@ -9,7 +30,7 @@ if (ret != 0) { ret = errno; DEBUG(5, ("setsockopt TCP_NODELAY failed.[%d][%s].\n", ret, -@@ -340,7 +340,7 @@ +@@ -341,7 +344,7 @@ struct tevent_req *sss_ldap_init_send(TALLOC_CTX *mem_ctx, DEBUG(9, ("Using file descriptor [%d] for LDAP connection.\n", state->sd)); subreq = sdap_async_sys_connect_send(state, ev, state->sd, @@ -18,3 +39,6 @@ if (subreq == NULL) { ret = ENOMEM; DEBUG(1, ("sdap_async_sys_connect_send failed.\n")); +-- +1.8.0 + Index: files/patch-src__util__util.c =================================================================== --- files/patch-src__util__util.c (revision 325399) +++ files/patch-src__util__util.c (working copy) @@ -1,5 +1,16 @@ ---- ./src/util/util.c.orig 2011-08-29 11:39:05.000000000 -0400 -+++ ./src/util/util.c 2011-10-13 12:15:03.000000000 -0400 +From a6a31d9de9d15c1e4627f2a7cfb8cb83a6d3e99a Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 4 May 2013 17:08:09 +0200 +Subject: [PATCH 28/34] patch-src__util__util.c + +--- + src/util/util.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/util/util.c src/util/util.c +index ab98077..e279a2e 100644 +--- src/util/util.c ++++ src/util/util.c @@ -18,6 +18,7 @@ along with this program. If not, see . */ @@ -7,4 +18,7 @@ +#include #include #include - + #include +-- +1.8.0 + Index: files/patch-src__util__util.h =================================================================== --- files/patch-src__util__util.h (revision 0) +++ files/patch-src__util__util.h (working copy) @@ -0,0 +1,48 @@ +From 4fb9ecea7fca68a58515e1552dfdb408ae28baeb Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Sat, 27 Jul 2013 14:59:04 +0200 +Subject: [PATCH 29/34] patch-src__util__util.h + +--- + src/util/util.h | 25 +++++++------------------ + 1 file changed, 7 insertions(+), 18 deletions(-) + +diff --git src/util/util.h src/util/util.h +index 1f7c6c3..82988eb 100644 +--- src/util/util.h ++++ src/util/util.h +@@ -567,24 +567,13 @@ struct sss_domain_info *copy_subdomain(TALLOC_CTX *mem_ctx, + errno_t sss_br_lock_file(int fd, size_t start, size_t len, + int num_tries, useconds_t wait); + +-/* Endianness-compatibility for systems running older versions of glibc */ +- +-#ifndef le32toh +-#include +- +-/* Copied from endian.h on glibc 2.15 */ +-#ifdef __USE_BSD +-/* Conversion interfaces. */ +-# if __BYTE_ORDER == __LITTLE_ENDIAN +-# define le32toh(x) (x) +-# define htole32(x) (x) +-# else +-# define le32toh(x) __bswap_32 (x) +-# define htole32(x) __bswap_32 (x) +-# endif +-#endif /* __USE_BSD */ +- +-#endif /* le32toh */ ++#define BSD_ERR_MASK (0xB5DE <<16) ++#ifndef EUCLEAN ++#define EUCLEAN (BSD_ERR_MASK | 117) ++#endif ++#ifndef EMEDIUMTYPE ++#define EMEDIUMTYPE (BSD_ERR_MASK | 124) ++#endif + + #ifdef HAVE_PAC_RESPONDER + #define BUILD_WITH_PAC_RESPONDER true +-- +1.8.0 + Index: files/pkg-message.in =================================================================== --- files/pkg-message.in (revision 0) +++ files/pkg-message.in (working copy) @@ -0,0 +1,21 @@ +================================================================================ +Copy %%PREFIX%%/etc/sssd/sssd.conf.sample to %%PREFIX%%/etc/sssd/sssd.conf +and edit %%PREFIX%%/etc/sssd/sssd.conf (see man sssd.conf for details) + +To load sssd at startup, add sssd_enable="YES" to /etc/rc.conf + +To enable pam integration, add a line similar to the following to +/etc/pam.d/system: + +login auth sufficient %%PREFIX%%/lib/pam_sss.so + +To enable NSS integration, update /etc/nsswitch.conf as follows: + +group: sss files +passwd: sss files + +For additional details, please see the man pages for pam.conf and nsswitch.conf + +An sssd HOWTO is also available: +https://fedorahosted.org/sssd/wiki/HOWTO_Configure_1_0_2 +================================================================================ Index: files/sssd.in =================================================================== --- files/sssd.in (revision 325399) +++ files/sssd.in (working copy) @@ -21,7 +21,7 @@ rcvar=sssd_enable command="%%PREFIX%%/sbin/$name" -sssd_flags="-D" +sssd_flags="-f -D" pidfile="/var/run/$name.pid" required_files="%%PREFIX%%/etc/$name/$name.conf" Index: pkg-message =================================================================== --- pkg-message (revision 325399) +++ pkg-message (working copy) @@ -1,21 +0,0 @@ -================================================================================ -Copy %%PREFIX%%/etc/sssd/sssd.conf.sample to %%PREFIX%%/etc/sssd/sssd.conf -and edit %%PREFIX%%/etc/sssd/sssd.conf (see man sssd.conf for details) - -To load sssd at startup, add sssd_enable="YES" to /etc/rc.conf - -To enable pam integration, add a line similar to the following to -/etc/pam.d/system: - -login auth sufficient %%PREFIX%%/lib/pam_sss.so - -To enable NSS integration, update /etc/nsswitch.conf as follows: - -group: sss files -passwd: sss files - -For additional details, please see the man pages for pam.conf and nsswitch.conf - -An sssd HOWTO is also available: -https://fedorahosted.org/sssd/wiki/HOWTO_Configure_1_0_2 -================================================================================ Index: pkg-plist =================================================================== --- pkg-plist (revision 325399) +++ pkg-plist (working copy) @@ -1,16 +1,3 @@ -share/locale/zh_TW/LC_MESSAGES/sssd.mo -share/locale/uk/LC_MESSAGES/sssd.mo -share/locale/sv/LC_MESSAGES/sssd.mo -share/locale/ru/LC_MESSAGES/sssd.mo -share/locale/pt/LC_MESSAGES/sssd.mo -share/locale/pl/LC_MESSAGES/sssd.mo -share/locale/nl/LC_MESSAGES/sssd.mo -share/locale/ja/LC_MESSAGES/sssd.mo -share/locale/it/LC_MESSAGES/sssd.mo -share/locale/id/LC_MESSAGES/sssd.mo -share/locale/fr/LC_MESSAGES/sssd.mo -share/locale/es/LC_MESSAGES/sssd.mo -share/locale/de/LC_MESSAGES/sssd.mo sbin/sssd sbin/sss_usermod sbin/sss_userdel @@ -20,10 +7,16 @@ sbin/sss_groupmod sbin/sss_groupdel sbin/sss_groupadd +sbin/sss_debuglevel sbin/sss_cache +sbin/sss_seed +bin/sss_ssh_authorizedkeys +bin/sss_ssh_knownhostsproxy libexec/sssd/sssd_pam libexec/sssd/sssd_nss libexec/sssd/sssd_be +libexec/sssd/sssd_sudo +libexec/sssd/sssd_ssh libexec/sssd/proxy_child libexec/sssd/ldap_child libexec/sssd/krb5_child @@ -48,37 +41,48 @@ lib/libipa_hbac.so.0 lib/libipa_hbac.so lib/libipa_hbac.la -lib/ldb/memberof.so -%%PYTHON_SITELIBDIR%%/sssd_upgrade_config.pyc -%%PYTHON_SITELIBDIR%%/sssd_upgrade_config.py +lib/libsss_idmap.so.0 +lib/libsss_idmap.so +lib/libsss_idmap.la +libdata/pkgconfig/sss_idmap.pc +lib/libsss_sudo.so +lib/libsss_sudo.la +lib/sssd/libsss_ad.so +lib/sssd/libsss_ad.la +lib/krb5/plugins/libkrb5/sssd_krb5_locator_plugin.so +lib/krb5/plugins/libkrb5/sssd_krb5_locator_plugin.la +lib/shared-modules/ldb/memberof.so +lib/shared-modules/ldb/memberof.la %%PYTHON_SITELIBDIR%%/pysss.so %%PYTHON_SITELIBDIR%%/pysss.la +%%PYTHON_SITELIBDIR%%/pysss_murmur.so +%%PYTHON_SITELIBDIR%%/pysss_murmur.la %%PYTHON_SITELIBDIR%%/pyhbac.so %%PYTHON_SITELIBDIR%%/pyhbac.la -%%PYTHON_SITELIBDIR%%/ipachangeconf.pyc -%%PYTHON_SITELIBDIR%%/ipachangeconf.py -%%PYTHON_SITELIBDIR%%/SSSDConfig.pyc -%%PYTHON_SITELIBDIR%%/SSSDConfig.py -%%PYTHON_SITELIBDIR%%/SSSDConfig-1-py%%PYTHON_VER%%.egg-info +%%PYTHON_SITELIBDIR%%/SSSDConfig/__init__.pyc +%%PYTHON_SITELIBDIR%%/SSSDConfig/__init__.py +%%PYTHON_SITELIBDIR%%/SSSDConfig/ipachangeconf.pyc +%%PYTHON_SITELIBDIR%%/SSSDConfig/ipachangeconf.py +%%PYTHON_SITELIBDIR%%/SSSDConfig/sssd_upgrade_config.pyc +%%PYTHON_SITELIBDIR%%/SSSDConfig/sssd_upgrade_config.py +%%PYTHON_SITELIBDIR%%/SSSDConfig-1.9.5-py%%PYTHON_VER%%.egg-info +etc/sssd/sssd.conf.sample include/ipa_hbac.h -etc/sssd/sssd.api.d/sssd-simple.conf -etc/sssd/sssd.api.d/sssd-proxy.conf -etc/sssd/sssd.api.d/sssd-local.conf -etc/sssd/sssd.api.d/sssd-ldap.conf -etc/sssd/sssd.api.d/sssd-krb5.conf -etc/sssd/sssd.api.d/sssd-ipa.conf -etc/sssd/sssd.api.conf -etc/sssd/sssd.conf.sample -@dirrmtry lib/pkgconfig -@dirrmtry lib/ldb -@dirrmtry etc/sssd/sssd.api.d +include/sss_sudo.h +include/sss_idmap.h +@dirrmtry lib/shared-modules/ldb +@dirrmtry lib/shared-modules +@dirrm %%PYTHON_SITELIBDIR%%/SSSDConfig +@dirrm lib/sssd/modules +@dirrm lib/sssd @dirrmtry etc/sssd -@dirrm share/sssd/introspect -@dirrm share/sssd +@dirrmtry share/sssd/sssd/sssd.api.d +@dirrmtry share/sssd/sssd +@dirrmtry share/sssd @dirrm libexec/sssd -@dirrm lib/sssd @unexec if cmp -s %D/etc/sssd/sssd.conf.sample %D/etc/sssd/sssd.conf; then rm -f %D/etc/sssd/sssd.conf; fi @exec if [ ! -f %D/etc/sssd/sssd.conf ]; then cp -p %D/%F %B/sssd.conf; fi @unexec if [ -d %%ETCDIR%% ]; then echo "==> If you are permanently removing this port, you should do a ``rm -rf %%ETCDIR%%`` to remove any configuration files."; fi @unexec if [ -d /var/db/sss ]; then echo "==> If you are permanently removing this port, you should do a ``rm -rf /var/db/sss`` to remove any additional files."; fi +@unexec if [ -d /var/db/sss_mc ]; then echo "==> If you are permanently removing this port, you should do a ``rm -rf /var/db/sss_mc`` to remove any additional files."; fi @unexec if [ -d /var/run/sss ]; then echo "==> If you are permanently removing this port, you should do a ``rm -rf /var/run/sss`` to remove any additional files."; fi >Release-Note: >Audit-Trail: >Unformatted: