X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_sasl.c;h=dd97bfa81333ebd9f65350daec17723c42272db2;hp=374082bd028e1188c84209c16639b068c112715d;hb=9b39bf88d172cfc4f8d6f9979900861726ae4dc5;hpb=df2996444aa4027e4171de7fd2ecd92a2de73676 diff --git a/mutt_sasl.c b/mutt_sasl.c index 374082b..dd97bfa 100644 --- a/mutt_sasl.c +++ b/mutt_sasl.c @@ -186,8 +186,8 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn) int mutt_sasl_interact (sasl_interact_t * interaction) { - char prompt[SHORT_STRING]; - char resp[SHORT_STRING]; + char prompt[STRING]; + char resp[STRING]; while (interaction->id != SASL_CB_LIST_END) { snprintf (prompt, sizeof (prompt), "%s: ", interaction->prompt); @@ -285,7 +285,8 @@ static int mutt_sasl_cb_authname (void *context, int id, const char **result, return SASL_OK; } -static int mutt_sasl_cb_pass(sasl_conn_t *conn, void *context, int id, +static int mutt_sasl_cb_pass(sasl_conn_t *conn __attribute__ ((unused)), + void *context, int id __attribute__ ((unused)), sasl_secret_t **psecret) { ACCOUNT *account = (ACCOUNT *) context; @@ -301,7 +302,7 @@ static int mutt_sasl_cb_pass(sasl_conn_t *conn, void *context, int id, *psecret = xmalloc(sizeof(sasl_secret_t) + len); (*psecret)->len = len; - strcpy((char*)(*psecret)->data, account->pass); + memcpy((char*)(*psecret)->data, account->pass, len); return SASL_OK; } @@ -433,9 +434,9 @@ mutt_sasl_conn_write(CONNECTION * conn, const char *buf, ssize_t len) goto fail; } - rc = (sasldata->msasl_write)(conn, pbuf, plen); + plen -= (sasldata->msasl_write)(conn, pbuf, plen); p_delete(&pbuf); - if (rc != plen) + if (plen) goto fail; len -= olen;