diff options
Diffstat (limited to 'net/samba33/files/patch-nsswitch__pam_winbind.c')
-rw-r--r-- | net/samba33/files/patch-nsswitch__pam_winbind.c | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/net/samba33/files/patch-nsswitch__pam_winbind.c b/net/samba33/files/patch-nsswitch__pam_winbind.c new file mode 100644 index 000000000000..82dc73b4bd70 --- /dev/null +++ b/net/samba33/files/patch-nsswitch__pam_winbind.c @@ -0,0 +1,89 @@ +--- nsswitch/pam_winbind.c.orig 2009-02-24 07:38:16.000000000 +0000 ++++ nsswitch/pam_winbind.c 2009-02-26 02:17:02.000000000 +0000 +@@ -161,7 +161,6 @@ + } + #endif + +- + /* + * Work around the pam API that has functions with void ** as parameters + * These lead to strict aliasing warnings with gcc. +@@ -171,14 +170,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 */ +@@ -309,7 +314,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"; +@@ -1298,12 +1303,12 @@ + static bool _pam_check_remark_auth_err(struct pwb_context *ctx, + const struct wbcAuthErrorInfo *e, + const char *nt_status_string, +- int *pam_error) ++ int *pam_err) + { + const char *ntstatus = NULL; + const char *error_string = NULL; + +- if (!e || !pam_error) { ++ if (!e || !pam_err) { + return false; + } + +@@ -1317,18 +1322,18 @@ + error_string = _get_ntstatus_error_string(nt_status_string); + if (error_string) { + _make_remark(ctx, PAM_ERROR_MSG, error_string); +- *pam_error = e->pam_error; ++ *pam_err = e->pam_error; + return true; + } + + if (e->display_string) { + _make_remark(ctx, PAM_ERROR_MSG, e->display_string); +- *pam_error = e->pam_error; ++ *pam_err = e->pam_error; + return true; + } + + _make_remark(ctx, PAM_ERROR_MSG, nt_status_string); +- *pam_error = e->pam_error; ++ *pam_err = e->pam_error; + + return true; + } +@@ -2694,8 +2699,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) { |