diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2014-05-27 23:55:17 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-06-03 13:52:45 +0200 |
commit | c05bf1914146281a934d573354c2fce2f466706e (patch) | |
tree | c5aeb7e1c641315e0b48b3fcb0adf20d051aedef /src | |
parent | ad962c5a98000c555669b7babd507e3a0c6e4f43 (diff) | |
download | sssd-c05bf1914146281a934d573354c2fce2f466706e.tar.gz sssd-c05bf1914146281a934d573354c2fce2f466706e.tar.xz sssd-c05bf1914146281a934d573354c2fce2f466706e.zip |
PAM: Define compatible macros for some functions.
Functions pam_vsyslog and pam_modutil_getlogin are not available in openpam.
This patch conditionally define macros for these function if they are not
available. Compatible macros use standard functions vsyslog, getlogin
Reviewed-by: Sumit Bose <sbose@redhat.com>
(cherry picked from commit 683e1f67d08be7165ea456d4594c4c8a4eddc9b3)
Diffstat (limited to 'src')
-rw-r--r-- | src/external/pam.m4 | 9 | ||||
-rw-r--r-- | src/sss_client/pam_sss.c | 4 | ||||
-rw-r--r-- | src/sss_client/sss_pam_compat.h | 45 |
3 files changed, 56 insertions, 2 deletions
diff --git a/src/external/pam.m4 b/src/external/pam.m4 index 90f89bee3..4776b6ae3 100644 --- a/src/external/pam.m4 +++ b/src/external/pam.m4 @@ -18,3 +18,12 @@ AC_CHECK_HEADERS([security/openpam.h],,,[ AC_CHECK_LIB([pam_misc], [misc_conv], [PAM_MISC_LIBS="-lpam_misc"]) + +dnl save LIBS to restore later +save_LIBS="$LIBS" +LIBS="$PAM_LIBS" + +AC_CHECK_FUNCS(pam_modutil_getlogin pam_vsyslog) + +dnl restore LIBS +LIBS="$save_LIBS" diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c index db18348b5..3a3935a6f 100644 --- a/src/sss_client/pam_sss.c +++ b/src/sss_client/pam_sss.c @@ -40,8 +40,8 @@ #include <security/pam_modules.h> #include <security/pam_appl.h> -#include <security/pam_ext.h> -#include <security/pam_modutil.h> + +#include "sss_pam_compat.h" #include "sss_pam_macros.h" #include "sss_cli.h" diff --git a/src/sss_client/sss_pam_compat.h b/src/sss_client/sss_pam_compat.h new file mode 100644 index 000000000..d131ceacb --- /dev/null +++ b/src/sss_client/sss_pam_compat.h @@ -0,0 +1,45 @@ +/* + SSSD + + Compat declarations for PAM. + + Authors: + Lukas Slebodnik <lslebodn@redhat.com> + + Copyright (C) Red Hat, Inc 2014 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _SSS_PAM_COMPAT_H +#define _SSS_PAM_COMPAT_H + +#ifdef HAVE_SECURITY_PAM_MODUTIL_H +# include <security/pam_modutil.h> +#endif /* HAVE_SECURITY_PAM_MODUTIL_H */ + +#ifdef HAVE_SECURITY_PAM_EXT_H +# include <security/pam_ext.h> +#endif /* HAVE_SECURITY_PAM_EXT_H */ + +#ifndef HAVE_PAM_VSYSLOG +#define pam_vsyslog(pamh, priority, fmt, vargs) \ + vsyslog((priority), (fmt), (vargs)) +#endif /* HAVE_PAM_VSYSLOG */ + +#ifndef PAM_BAD_ITEM +# define PAM_BAD_ITEM PAM_USER_UNKNOWN +#endif /* PAM_BAD_ITEM */ + +#endif /* _SSS_PAM_COMPAT_H */ |