X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_sasl.c;h=b615a523ca677ff4ca7bdee641689b97f7df54ea;hp=d78a7ebff663ad22a4459030c675b45cd02ad5f0;hb=6a0fbdc73204a837ec7d378eaf0e1248a982ba9d;hpb=b4827293ce79b576beb9550b91e71a198f2f5744 diff --git a/mutt_sasl.c b/mutt_sasl.c index d78a7eb..b615a52 100644 --- a/mutt_sasl.c +++ b/mutt_sasl.c @@ -123,7 +123,7 @@ static int iptostring (const struct sockaddr *addr, socklen_t addrlen, if (ret) return getnameinfo_err (ret); - if (outlen < safe_strlen (hbuf) + safe_strlen (pbuf) + 2) + if (outlen < str_len (hbuf) + str_len (pbuf) + 2) return SASL_BUFOVER; snprintf (out, outlen, "%s;%s", hbuf, pbuf); @@ -133,7 +133,7 @@ static int iptostring (const struct sockaddr *addr, socklen_t addrlen, #endif /* mutt_sasl_start: called before doing a SASL exchange - initialises library - * (if neccessary). */ + * (if necessary). */ int mutt_sasl_start (void) { static unsigned char sasl_init = 0; @@ -243,8 +243,8 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) /*** set sasl IP properties, necessary for use with krb4 ***/ /* Do we need to fail if this fails? I would assume having these unset - * would just disable KRB4. Who wrote this code? I'm not sure how this - * interacts with the NSS code either, since that mucks with the fd. */ + * would just disable KRB4. Who wrote this code? + */ #ifndef USE_SASL2 /* with SASLv2 this all happens in sasl_client_new */ { struct sockaddr_in local, remote; @@ -288,12 +288,7 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) return -1; } - /* we currently don't have an SSF finder for NSS (I don't know the API). - * If someone does it'd probably be trivial to write mutt_nss_get_ssf(). - * I have a feeling more SSL code could be shared between those two files, - * but I haven't looked into it yet, since I still don't know the APIs. */ -#if (defined(USE_SSL) || defined(USE_GNUTLS) && !defined(USE_NSS)) - if (conn->account.flags & M_ACCT_SSL) { + if (conn->ssf) { #ifdef USE_SASL2 /* I'm not sure this actually has an effect, at least with SASLv2 */ debug_print (2, ("External SSF: %d\n", conn->ssf)); if (sasl_setprop (*saslconn, SASL_SSF_EXTERNAL, &(conn->ssf)) != SASL_OK) @@ -316,7 +311,6 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) } #endif } -#endif return 0; } @@ -367,9 +361,9 @@ int mutt_sasl_interact (sasl_interact_t * interaction) if (mutt_get_field (prompt, resp, sizeof (resp), 0)) return SASL_FAIL; - interaction->len = safe_strlen (resp) + 1; - interaction->result = safe_malloc (interaction->len); - memcpy (interaction->result, resp, interaction->len); + interaction->len = str_len (resp) + 1; + interaction->result = mem_malloc (interaction->len); + memcpy ((char*) interaction->result, resp, interaction->len); interaction++; } @@ -395,7 +389,7 @@ int mutt_sasl_interact (sasl_interact_t * interaction) * for the read/write methods. */ void mutt_sasl_setup_conn (CONNECTION * conn, sasl_conn_t * saslconn) { - SASL_DATA *sasldata = (SASL_DATA *) safe_malloc (sizeof (SASL_DATA)); + SASL_DATA *sasldata = (SASL_DATA *) mem_malloc (sizeof (SASL_DATA)); sasldata->saslconn = saslconn; /* get ssf so we know whether we have to (en|de)code read/write */ @@ -471,7 +465,7 @@ static int mutt_sasl_cb_authname (void *context, int id, const char **result, } if (len) - *len = safe_strlen (*result); + *len = str_len (*result); return SASL_OK; } @@ -491,11 +485,11 @@ static int mutt_sasl_cb_pass (sasl_conn_t * conn, void *context, int id, if (mutt_account_getpass (account)) return SASL_FAIL; - len = safe_strlen (account->pass); + len = str_len (account->pass); - *psecret = (sasl_secret_t *) safe_malloc (sizeof (sasl_secret_t) + len); + *psecret = (sasl_secret_t *) mem_malloc (sizeof (sasl_secret_t) + len); (*psecret)->len = len; - strcpy ((*psecret)->data, account->pass); /* __STRCPY_CHECKED__ */ + strcpy ((char*) (*psecret)->data, account->pass); /* __STRCPY_CHECKED__ */ return SASL_OK; } @@ -536,9 +530,9 @@ static int mutt_sasl_conn_close (CONNECTION * conn) /* release sasl resources */ sasl_dispose (&sasldata->saslconn); #ifndef USE_SASL2 - FREE (&sasldata->buf); + mem_free (&sasldata->buf); #endif - FREE (&sasldata); + mem_free (&sasldata); /* call underlying close */ rc = (conn->conn_close) (conn); @@ -569,7 +563,7 @@ static int mutt_sasl_conn_read (CONNECTION * conn, char *buf, size_t len) conn->sockdata = sasldata->sockdata; #ifndef USE_SASL2 - FREE (&sasldata->buf); + mem_free (&sasldata->buf); #endif sasldata->bpos = 0; sasldata->blen = 0; @@ -640,7 +634,7 @@ static int mutt_sasl_conn_write (CONNECTION * conn, const char *buf, rc = (sasldata->msasl_write) (conn, pbuf, plen); #ifndef USE_SASL2 - FREE (&pbuf); + mem_free (&pbuf); #endif if (rc != plen) goto fail;