summaryrefslogtreecommitdiffstats
path: root/sss_client
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-06-25 09:49:59 -0400
committerStephen Gallagher <sgallagh@redhat.com>2009-06-25 11:20:17 -0400
commita9d040767e6c6b9640d48b8cf12be8659a20895a (patch)
treea4b1ef58af71a3dc022a5d04962c9633983205ef /sss_client
parent12cbba5545aefa59e27f683e17e05b8e80063718 (diff)
downloadsssd-a9d040767e6c6b9640d48b8cf12be8659a20895a.tar.gz
sssd-a9d040767e6c6b9640d48b8cf12be8659a20895a.tar.xz
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.
Diffstat (limited to 'sss_client')
-rw-r--r--sss_client/pam_sss.c1
-rw-r--r--sss_client/sss_pam_macros.h30
2 files changed, 31 insertions, 0 deletions
diff --git a/sss_client/pam_sss.c b/sss_client/pam_sss.c
index cf5c6a484..ccc205cc6 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 000000000..5277acd0f
--- /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 */