aboutsummaryrefslogtreecommitdiffstats
path: root/net/samba36/files/patch-nsswitch__pam_winbind.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/samba36/files/patch-nsswitch__pam_winbind.c')
-rw-r--r--net/samba36/files/patch-nsswitch__pam_winbind.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/net/samba36/files/patch-nsswitch__pam_winbind.c b/net/samba36/files/patch-nsswitch__pam_winbind.c
new file mode 100644
index 00000000000..9c32da334bd
--- /dev/null
+++ b/net/samba36/files/patch-nsswitch__pam_winbind.c
@@ -0,0 +1,52 @@
+--- ./nsswitch/pam_winbind.c.orig 2011-08-09 13:17:47.000000000 +0200
++++ ./nsswitch/pam_winbind.c 2011-09-06 23:23:18.000000000 +0200
+@@ -163,7 +163,6 @@
+ }
+ #endif
+
+-
+ /*
+ * Work around the pam API that has functions with void ** as parameters
+ * These lead to strict aliasing warnings with gcc.
+@@ -173,14 +172,20 @@
+ const void *_item)
+ {
+ const void **item = (const void **)_item;
+- return pam_get_item(pamh, item_type, item);
++ return pam_get_item((pam_handle_t *)pamh, item_type, item);
+ }
++
+ static int _pam_get_data(const pam_handle_t *pamh,
+ const char *module_data_name,
+ const void *_data)
+ {
++#if PAM_GET_DATA_ARG3_CONST_VOID_PP
+ const void **data = (const void **)_data;
+- return pam_get_data(pamh, module_data_name, data);
++ return pam_get_data((pam_handle_t *)pamh, module_data_name, data);
++#else
++ void **data = (void **)_data;
++ return pam_get_data((pam_handle_t *)pamh, module_data_name, data);
++#endif
+ }
+
+ /* some syslogging */
+@@ -311,7 +316,7 @@
+ if (item_type != 0) {
+ pam_get_item(ctx->pamh, item_type, &data);
+ } else {
+- pam_get_data(ctx->pamh, key, &data);
++ _pam_get_data(ctx->pamh, key, &data);
+ }
+ if (data != NULL) {
+ const char *type = (item_type != 0) ? "ITEM" : "DATA";
+@@ -2835,8 +2840,7 @@
+ ret = PAM_USER_UNKNOWN;
+ goto out;
+ case 0:
+- pam_get_data(pamh, PAM_WINBIND_NEW_AUTHTOK_REQD,
+- (const void **)&tmp);
++ _pam_get_data(pamh, PAM_WINBIND_NEW_AUTHTOK_REQD, &tmp);
+ if (tmp != NULL) {
+ ret = atoi((const char *)tmp);
+ switch (ret) {