X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_sasl.c;h=dd97bfa81333ebd9f65350daec17723c42272db2;hp=6da72b59c176870072eb6d0563971d592f23aa62;hb=9b39bf88d172cfc4f8d6f9979900861726ae4dc5;hpb=ccf415cc4f84e7bf503f401e1adeb321ca3ae448 diff --git a/mutt_sasl.c b/mutt_sasl.c index 6da72b5..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); @@ -302,7 +302,7 @@ static int mutt_sasl_cb_pass(sasl_conn_t *conn __attribute__ ((unused)), *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; } @@ -434,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;