diff options
author | Tim Bishop <tdb@FreeBSD.org> | 2007-06-05 10:55:06 +0000 |
---|---|---|
committer | Tim Bishop <tdb@FreeBSD.org> | 2007-06-05 10:55:06 +0000 |
commit | c89e412277cdc50c394570dcc004ee3de96c8de5 (patch) | |
tree | 0257f96fa5822a7ea0de0e1e267ed038d02e03f0 /net/samba3/files/patch-nsswitch_pam_winbind.c | |
parent | - Fix typos in pkg-descr (diff) |
- Update to 3.0.25a.
Major bug fixes included in Samba 3.0.25a are:
o Missing supplementary Unix group membership when using "force
group".
o Premature expiration of domain user passwords when using a
Samba domain controller.
o Failure to open the Windows object picker against a server
configured to use "security = domain".
* Authentication failures when using security = server.
Plus additional local fixes.
PR: ports/113358
Submitted by: maintainer
Notes
Notes:
svn path=/head/; revision=192833
Diffstat (limited to 'net/samba3/files/patch-nsswitch_pam_winbind.c')
-rw-r--r-- | net/samba3/files/patch-nsswitch_pam_winbind.c | 149 |
1 files changed, 147 insertions, 2 deletions
diff --git a/net/samba3/files/patch-nsswitch_pam_winbind.c b/net/samba3/files/patch-nsswitch_pam_winbind.c index 9c1a8f1bdee5..750963f12048 100644 --- a/net/samba3/files/patch-nsswitch_pam_winbind.c +++ b/net/samba3/files/patch-nsswitch_pam_winbind.c @@ -1,5 +1,150 @@ ---- ./nsswitch/pam_winbind.c.orig Mon Apr 9 19:30:57 2007 -+++ ./nsswitch/pam_winbind.c Tue Apr 17 02:06:59 2007 +--- nsswitch/pam_winbind.c.orig Sat Apr 21 03:48:07 2007 ++++ nsswitch/pam_winbind.c Mon Jun 4 02:56:34 2007 +@@ -14,13 +14,13 @@ + + #define _PAM_LOG_FUNCTION_ENTER(function, pamh, ctrl, flags) \ + do { \ +- _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] ENTER: " function " (flags: 0x%04x)", (uint32) pamh, flags); \ ++ _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] ENTER: " function " (flags: 0x%04x)", pamh, flags); \ + _pam_log_state(pamh, ctrl); \ + } while (0) + + #define _PAM_LOG_FUNCTION_LEAVE(function, pamh, ctrl, retval) \ + do { \ +- _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] LEAVE: " function " returning %d", (uint32) pamh, retval); \ ++ _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] LEAVE: " function " returning %d", pamh, retval); \ + _pam_log_state(pamh, ctrl); \ + } while (0) + +@@ -32,16 +32,16 @@ + * Work around the pam API that has functions with void ** as parameters. + * These lead to strict aliasing warnings with gcc. + */ +-static int _pam_get_item(const pam_handle_t *pamh, int item_type, ++static int _pam_get_item(pam_handle_t *pamh, int item_type, + const void *_item) + { + const void **item = (const void **)_item; + return pam_get_item(pamh, item_type, item); + } +-static int _pam_get_data(const pam_handle_t *pamh, +- const char *module_data_name, const void *_data) ++static int _pam_get_data(pam_handle_t *pamh, ++ const char *module_data_name, void *_data) + { +- const void **data = (const void **)_data; ++ void **data = (void **)_data; + return pam_get_data(pamh, module_data_name, data); + } + +@@ -53,7 +53,7 @@ + pam_vsyslog(pamh, err, format, args); + } + #else +-static void _pam_log_int(const pam_handle_t *pamh, int err, const char *format, va_list args) ++static void _pam_log_int(pam_handle_t *pamh, int err, const char *format, va_list args) + { + char *format2 = NULL; + const char *service; +@@ -78,8 +78,8 @@ + return on(ctrl, WINBIND_SILENT); + } + +-static void _pam_log(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5); +-static void _pam_log(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) ++static void _pam_log(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5); ++static void _pam_log(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) + { + va_list args; + +@@ -118,8 +118,8 @@ + return _pam_log_is_debug_enabled(ctrl); + } + +-static void _pam_log_debug(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5); +-static void _pam_log_debug(const pam_handle_t *pamh, int ctrl, int err, const char *format, ...) ++static void _pam_log_debug(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) PRINTF_ATTRIBUTE(4,5); ++static void _pam_log_debug(pam_handle_t *pamh, int ctrl, int err, const char *format, ...) + { + va_list args; + +@@ -132,20 +132,20 @@ + va_end(args); + } + +-static void _pam_log_state_datum(const pam_handle_t *pamh, int ctrl, int item_type, const char *key, int is_string) ++static void _pam_log_state_datum(pam_handle_t *pamh, int ctrl, int item_type, const char *key, int is_string) + { +- const void *data = NULL; ++ void *data = NULL; + if (item_type != 0) { +- pam_get_item(pamh, item_type, &data); ++ _pam_get_item(pamh, item_type, &data); + } else { + pam_get_data(pamh, key, &data); + } + if (data != NULL) { + const char *type = (item_type != 0) ? "ITEM" : "DATA"; + if (is_string != 0) { +- _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] STATE: %s(%s) = \"%s\" (0x%08x)", (uint32) pamh, type, key, (const char *) data, (uint32) data); ++ _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] STATE: %s(%s) = \"%s\" (0x%p)", pamh, type, key, (const char *) data, data); + } else { +- _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] STATE: %s(%s) = 0x%08x", (uint32) pamh, type, key, (uint32) data); ++ _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] STATE: %s(%s) = 0x%p", pamh, type, key, data); + } + } + } +@@ -171,7 +171,7 @@ + #define _PAM_LOG_STATE_ITEM_PASSWORD(pamh, ctrl, item_type) \ + _pam_log_state_datum(pamh, ctrl, item_type, #item_type, _LOG_PASSWORD_AS_STRING) + +-static void _pam_log_state(const pam_handle_t *pamh, int ctrl) ++static void _pam_log_state(pam_handle_t *pamh, int ctrl) + { + if (!_pam_log_is_debug_state_enabled(ctrl)) { + return; +@@ -202,7 +202,7 @@ + _PAM_LOG_STATE_DATA_POINTER(pamh, ctrl, PAM_WINBIND_PWD_LAST_SET); + } + +-static int _pam_parse(const pam_handle_t *pamh, int flags, int argc, const char **argv, dictionary **result_d) ++static int _pam_parse(pam_handle_t *pamh, int flags, int argc, const char **argv, dictionary **result_d) + { + int ctrl = 0; + const char *config_file = NULL; +@@ -313,7 +313,7 @@ + { + int ctrl = _pam_parse(pamh, 0, 0, NULL, NULL); + if (_pam_log_is_debug_state_enabled(ctrl)) { +- _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%08x] CLEAN: cleaning up PAM data 0x%08x (error_status = %d)", (uint32) pamh, (uint32) data, error_status); ++ _pam_log_debug(pamh, ctrl, LOG_DEBUG, "[pamh: 0x%p] CLEAN: cleaning up PAM data 0x%p (error_status = %d)", pamh, data, error_status); + } + SAFE_FREE(data); + } +@@ -1441,7 +1441,7 @@ + return PAM_SUCCESS; + } + +-const char *get_conf_item_string(const pam_handle_t *pamh, ++const char *get_conf_item_string(pam_handle_t *pamh, + int argc, + const char **argv, + int ctrl, +@@ -1490,12 +1490,12 @@ + return parm_opt; + } + +-const char *get_krb5_cc_type_from_config(const pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d) ++const char *get_krb5_cc_type_from_config(pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d) + { + return get_conf_item_string(pamh, argc, argv, ctrl, d, "krb5_ccache_type", WINBIND_KRB5_CCACHE_TYPE); + } + +-const char *get_member_from_config(const pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d) ++const char *get_member_from_config(pam_handle_t *pamh, int argc, const char **argv, int ctrl, dictionary *d) + { + const char *ret = NULL; + ret = get_conf_item_string(pamh, argc, argv, ctrl, d, "require_membership_of", WINBIND_REQUIRED_MEMBERSHIP); @@ -1735,7 +1735,7 @@ ret = PAM_USER_UNKNOWN; goto out; |