diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2009-06-25 09:49:59 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2009-06-25 11:20:17 -0400 |
commit | a9d040767e6c6b9640d48b8cf12be8659a20895a (patch) | |
tree | a4b1ef58af71a3dc022a5d04962c9633983205ef | |
parent | 12cbba5545aefa59e27f683e17e05b8e80063718 (diff) | |
download | sssd-a9d040767e6c6b9640d48b8cf12be8659a20895a.tar.gz sssd-a9d040767e6c6b9640d48b8cf12be8659a20895a.tar.bz2 sssd-a9d040767e6c6b9640d48b8cf12be8659a20895a.zip |
Implement _pam_overwrite_n(n,x) for older systems
OSes based on older versions of the PAM development libraries lack
the _pam_overwrite_n(n,x) macro. This patch copies the Fedora 11
pam-devel-1.0.91-6 implementation into an SSSD private header.
This affects RHEL5 and SUSE10.
-rw-r--r-- | sss_client/pam_sss.c | 1 | ||||
-rw-r--r-- | sss_client/sss_pam_macros.h | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/sss_client/pam_sss.c b/sss_client/pam_sss.c index cf5c6a48..ccc205cc 100644 --- a/sss_client/pam_sss.c +++ b/sss_client/pam_sss.c @@ -14,6 +14,7 @@ #include <security/pam_modules.h> #include <security/pam_misc.h> #include <security/pam_ext.h> +#include "sss_pam_macros.h" #include "sss_cli.h" diff --git a/sss_client/sss_pam_macros.h b/sss_client/sss_pam_macros.h new file mode 100644 index 00000000..5277acd0 --- /dev/null +++ b/sss_client/sss_pam_macros.h @@ -0,0 +1,30 @@ +/* + * System Security Services Daemon. Client Interface for NSS and PAM. + * + * Copyright (C) Stephen Gallagher 2009 + * + * You can used this header file in any way you see fit provided copyright + * notices are preserved. + * + */ + +#ifndef _SSS_PAM_MACROS_H +#define _SSS_PAM_MACROS_H + +/* Older versions of the pam development headers do not include the + * _pam_overwrite_n(n,x) macro. This implementation is copied from + * the Fedora 11 _pam_macros.h. + */ +#include <security/_pam_macros.h> +#ifndef _pam_overwrite_n +#define _pam_overwrite_n(x,n) \ +do { \ + register char *__xx__; \ + register unsigned int __i__ = 0; \ + if ((__xx__=(x))) \ + for (;__i__<n; __i__++) \ + __xx__[__i__] = 0; \ +} while (0) +#endif /* _pam_overwrite_n */ + +#endif /* _SSS_PAM_MACROS_H */ |