1 diff -Naur cyrus-imapd-2.2.12.orig/imap/mupdate.c cyrus-imapd-2.2.12/imap/mupdate.c
2 --- cyrus-imapd-2.2.12.orig/imap/mupdate.c 2004-12-17 17:32:16.000000000 +0100
3 +++ cyrus-imapd-2.2.12/imap/mupdate.c 2005-11-04 14:24:04.000000000 +0100
10 + * The auth_*.c backends called by mysasl_proxy_policy()
11 + * use static variables which we need to protect with a mutex.
13 +static pthread_mutex_t proxy_policy_mutex = PTHREAD_MUTEX_INITIALIZER;
15 +static int mupdate_proxy_policy(sasl_conn_t *conn,
17 + const char *requested_user, unsigned rlen,
18 + const char *auth_identity, unsigned alen,
19 + const char *def_realm,
21 + struct propctx *propctx)
25 + pthread_mutex_lock(&proxy_policy_mutex); /* LOCK */
27 + r = mysasl_proxy_policy(conn, context, requested_user, rlen,
28 + auth_identity, alen, def_realm, urlen, propctx);
30 + pthread_mutex_unlock(&proxy_policy_mutex); /* UNLOCK */
35 static struct sasl_callback mysasl_cb[] = {
36 { SASL_CB_GETOPT, &mysasl_config, NULL },
37 - { SASL_CB_PROXY_POLICY, &mysasl_proxy_policy, NULL },
38 + { SASL_CB_PROXY_POLICY, &mupdate_proxy_policy, NULL },
39 { SASL_CB_LIST_END, NULL, NULL }