X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_ssl_gnutls.c;h=a7181bdf1cdfe7a5b901c88495ab4f0aab42cb23;hp=1284aa39b2494596a9946a128bcb88cf28705df7;hb=73677f50e434a5c17a0d2c444dc2559c6540170b;hpb=18ea5e8b861632627335b8d94787c742dbf5f567 diff --git a/mutt_ssl_gnutls.c b/mutt_ssl_gnutls.c index 1284aa3..a7181bd 100644 --- a/mutt_ssl_gnutls.c +++ b/mutt_ssl_gnutls.c @@ -155,11 +155,11 @@ static int tls_negotiate (CONNECTION * conn) tlssockdata *data; int err; - data = (tlssockdata *) safe_calloc (1, sizeof (tlssockdata)); + data = (tlssockdata *) mem_calloc (1, sizeof (tlssockdata)); conn->sockdata = data; err = gnutls_certificate_allocate_credentials (&data->xcred); if (err < 0) { - FREE (&conn->sockdata); + mem_free (&conn->sockdata); mutt_error (_("gnutls_certificate_allocate_credentials: %s"), gnutls_strerror (err)); mutt_sleep (2); @@ -256,7 +256,7 @@ static int tls_negotiate (CONNECTION * conn) fail: gnutls_certificate_free_credentials (data->xcred); gnutls_deinit (data->state); - FREE (&conn->sockdata); + mem_free (&conn->sockdata); return -1; } @@ -269,7 +269,7 @@ static int tls_socket_close (CONNECTION * conn) gnutls_certificate_free_credentials (data->xcred); gnutls_deinit (data->state); - FREE(&conn->sockdata); + mem_free(&conn->sockdata); } return raw_socket_close (conn); @@ -304,7 +304,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) return 0; b64_data.size = filestat.st_size + 1; - b64_data_data = (unsigned char *) safe_calloc (1, b64_data.size); + b64_data_data = (unsigned char *) mem_calloc (1, b64_data.size); b64_data_data[b64_data.size - 1] = '\0'; b64_data.data = b64_data_data; @@ -319,12 +319,12 @@ static int tls_compare_certificates (const gnutls_datum * peercert) do { ret = gnutls_pem_base64_decode_alloc (NULL, &b64_data, &cert); if (ret != 0) { - FREE (&b64_data_data); + mem_free (&b64_data_data); return 0; } - ptr = (unsigned char *) strstr (b64_data.data, CERT_SEP) + 1; - ptr = (unsigned char *) strstr (ptr, CERT_SEP); + ptr = (unsigned char *) strstr ((char*) b64_data.data, CERT_SEP) + 1; + ptr = (unsigned char *) strstr ((char*) ptr, CERT_SEP); b64_data.size = b64_data.size - (ptr - b64_data.data); b64_data.data = ptr; @@ -333,7 +333,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) if (memcmp (cert.data, peercert->data, cert.size) == 0) { /* match found */ gnutls_free (cert.data); - FREE (&b64_data_data); + mem_free (&b64_data_data); return 1; } } @@ -342,7 +342,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) } while (ptr != NULL); /* no match found */ - FREE (&b64_data_data); + mem_free (&b64_data_data); return 0; } @@ -412,10 +412,10 @@ static int tls_check_stored_hostname (const gnutls_datum * cert, if (regexec (&preg, linestr, 3, pmatch, 0) == 0) { linestr[pmatch[1].rm_eo] = '\0'; linestr[pmatch[2].rm_eo] = '\0'; - if (mutt_strcmp (linestr + pmatch[1].rm_so, hostname) == 0 && - mutt_strcmp (linestr + pmatch[2].rm_so, buf) == 0) { + if (str_cmp (linestr + pmatch[1].rm_so, hostname) == 0 && + str_cmp (linestr + pmatch[2].rm_so, buf) == 0) { regfree (&preg); - FREE(&linestr); + mem_free(&linestr); fclose (fp); return 1; } @@ -449,10 +449,9 @@ static int tls_check_certificate (CONNECTION * conn) MUTTMENU *menu; int done, row, i, ret; FILE *fp; - gnutls_x509_dn dn; time_t t; const gnutls_datum *cert_list; - int cert_list_size = 0; + unsigned int cert_list_size = 0; gnutls_certificate_status certstat; char datestr[30]; gnutls_x509_crt cert; @@ -486,7 +485,7 @@ static int tls_check_certificate (CONNECTION * conn) /* We only support X.509 certificates (not OpenPGP) at the moment */ if (gnutls_certificate_type_get (state) != GNUTLS_CRT_X509) { - mutt_error (_("Error certificate is not X.509")); + mutt_error (_("Certificate is not X.509")); mutt_sleep (2); return 0; } @@ -584,9 +583,9 @@ static int tls_check_certificate (CONNECTION * conn) /* interactive check from user */ menu = mutt_new_menu (); menu->max = 25; - menu->dialog = (char **) safe_calloc (1, menu->max * sizeof (char *)); + menu->dialog = (char **) mem_calloc (1, menu->max * sizeof (char *)); for (i = 0; i < menu->max; i++) - menu->dialog[i] = (char *) safe_calloc (1, SHORT_STRING * sizeof (char)); + menu->dialog[i] = (char *) mem_calloc (1, SHORT_STRING * sizeof (char)); row = 0; strfcpy (menu->dialog[row], _("This certificate belongs to:"), @@ -748,6 +747,7 @@ static int tls_check_certificate (CONNECTION * conn) menu->help = helpstr; done = 0; + set_option (OPTUNBUFFEREDINPUT); while (!done) { switch (mutt_menuLoop (menu)) { case -1: /* abort */ @@ -790,6 +790,7 @@ static int tls_check_certificate (CONNECTION * conn) break; } } + unset_option (OPTUNBUFFEREDINPUT); mutt_menuDestroy (&menu); gnutls_x509_crt_deinit (cert); return (done == 2);