diff options
Diffstat (limited to 'net/samba36/files/patch-nsswitch__pam_winbind.c')
-rw-r--r-- | net/samba36/files/patch-nsswitch__pam_winbind.c | 52 |
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) { |