summaryrefslogtreecommitdiff
path: root/net/samba3/files/patch-nsswitch_pam_winbind.c
diff options
context:
space:
mode:
authorTim Bishop <tdb@FreeBSD.org>2007-06-05 10:55:06 +0000
committerTim Bishop <tdb@FreeBSD.org>2007-06-05 10:55:06 +0000
commitc89e412277cdc50c394570dcc004ee3de96c8de5 (patch)
tree0257f96fa5822a7ea0de0e1e267ed038d02e03f0 /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.c149
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;