X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-sys%2Fmutt_ssl_gnutls.c;h=1fff26d3d1d0f47d9ab19f5b47d215082ee6630c;hp=a6790485cb2c40d598d6bcf56589b7897044c532;hb=9ed7a487e3a922f2cbb222961c2c9710c3a65f91;hpb=ccf2b75a9ed50a79c4d8e5d6235c7313fcd3719a diff --git a/lib-sys/mutt_ssl_gnutls.c b/lib-sys/mutt_ssl_gnutls.c index a679048..1fff26d 100644 --- a/lib-sys/mutt_ssl_gnutls.c +++ b/lib-sys/mutt_ssl_gnutls.c @@ -8,9 +8,7 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifdef USE_GNUTLS @@ -20,12 +18,6 @@ #include #endif -#include -#include -#include -#include -#include - #include #include @@ -39,8 +31,8 @@ typedef struct _tlssockdata { } tlssockdata; /* local prototypes */ -static int tls_socket_read (CONNECTION * conn, char *buf, size_t len); -static int tls_socket_write (CONNECTION * conn, const char *buf, size_t len); +static int tls_socket_read (CONNECTION * conn, char *buf, ssize_t len); +static int tls_socket_write (CONNECTION * conn, const char *buf, ssize_t len); static int tls_socket_open (CONNECTION * conn); static int tls_socket_close (CONNECTION * conn); static int tls_starttls_close (CONNECTION * conn); @@ -82,7 +74,7 @@ int mutt_ssl_socket_setup (CONNECTION * conn) return 0; } -static int tls_socket_read (CONNECTION * conn, char *buf, size_t len) +static int tls_socket_read (CONNECTION * conn, char *buf, ssize_t len) { tlssockdata *data = conn->sockdata; int ret; @@ -102,7 +94,7 @@ static int tls_socket_read (CONNECTION * conn, char *buf, size_t len) return ret; } -static int tls_socket_write (CONNECTION * conn, const char *buf, size_t len) +static int tls_socket_write (CONNECTION * conn, const char *buf, ssize_t len) { tlssockdata *data = conn->sockdata; int ret; @@ -318,7 +310,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) } b64_data.size = fread (b64_data.data, 1, b64_data.size, fd1); - fclose (fd1); + m_fclose(&fd1); do { ret = gnutls_pem_base64_decode_alloc (NULL, &b64_data, &cert); @@ -353,13 +345,13 @@ static int tls_compare_certificates (const gnutls_datum * peercert) static void tls_fingerprint (gnutls_digest_algorithm algo, char *s, int l, const gnutls_datum * data) { - unsigned char md[36]; - size_t n; + char md[36]; + ssize_t n; int j; n = 36; - if (gnutls_fingerprint (algo, data, (char *) md, &n) < 0) { + if (gnutls_fingerprint(algo, data, md, (size_t *)&n) < 0) { snprintf (s, l, _("[unable to calculate]")); } else { @@ -373,7 +365,7 @@ static void tls_fingerprint (gnutls_digest_algorithm algo, } } -static char *tls_make_date (time_t t, char *s, size_t len) +static char *tls_make_date (time_t t, char *s, ssize_t len) { struct tm *l = gmtime (&t); @@ -393,7 +385,7 @@ static int tls_check_stored_hostname (const gnutls_datum * cert, char buf[80]; FILE *fp; char *linestr = NULL; - size_t linestrsize; + ssize_t linestrsize; int linenum = 0; regex_t preg; regmatch_t pmatch[3]; @@ -420,7 +412,7 @@ static int tls_check_stored_hostname (const gnutls_datum * cert, m_strcmp(linestr + pmatch[2].rm_so, buf) == 0) { regfree (&preg); p_delete(&linestr); - fclose (fp); + m_fclose(&fp); return 1; } } @@ -428,7 +420,7 @@ static int tls_check_stored_hostname (const gnutls_datum * cert, } regfree (&preg); - fclose (fp); + m_fclose(&fp); } /* not found a matching name */ @@ -442,7 +434,7 @@ static int tls_check_certificate (CONNECTION * conn) char helpstr[SHORT_STRING]; char buf[SHORT_STRING]; char fpbuf[SHORT_STRING]; - size_t buflen; + ssize_t buflen; char dn_common_name[SHORT_STRING]; char dn_email[SHORT_STRING]; char dn_organization[SHORT_STRING]; @@ -591,34 +583,34 @@ static int tls_check_certificate (CONNECTION * conn) buflen = sizeof (dn_common_name); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, - dn_common_name, &buflen) != 0) + dn_common_name, (size_t *)&buflen) != 0) dn_common_name[0] = '\0'; buflen = sizeof (dn_email); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, - dn_email, &buflen) != 0) + dn_email, (size_t *)&buflen) != 0) dn_email[0] = '\0'; buflen = sizeof (dn_organization); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_X520_ORGANIZATION_NAME, 0, 0, dn_organization, - &buflen) != 0) + (size_t *)&buflen) != 0) dn_organization[0] = '\0'; buflen = sizeof (dn_organizational_unit); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME, 0, 0, - dn_organizational_unit, &buflen) != 0) + dn_organizational_unit, (size_t *)&buflen) != 0) dn_organizational_unit[0] = '\0'; buflen = sizeof (dn_locality); if (gnutls_x509_crt_get_dn_by_oid - (cert, GNUTLS_OID_X520_LOCALITY_NAME, 0, 0, dn_locality, &buflen) != 0) + (cert, GNUTLS_OID_X520_LOCALITY_NAME, 0, 0, dn_locality, (size_t *)&buflen) != 0) dn_locality[0] = '\0'; buflen = sizeof (dn_province); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME, 0, 0, dn_province, - &buflen) != 0) + (size_t *)&buflen) != 0) dn_province[0] = '\0'; buflen = sizeof (dn_country); if (gnutls_x509_crt_get_dn_by_oid (cert, GNUTLS_OID_X520_COUNTRY_NAME, 0, 0, - dn_country, &buflen) != 0) + dn_country, (size_t *)&buflen) != 0) dn_country[0] = '\0'; snprintf (menu->dialog[row++], SHORT_STRING, " %s %s", dn_common_name, @@ -636,34 +628,34 @@ static int tls_check_certificate (CONNECTION * conn) buflen = sizeof (dn_common_name); if (gnutls_x509_crt_get_issuer_dn_by_oid - (cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, dn_common_name, &buflen) != 0) + (cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, dn_common_name, (size_t *)&buflen) != 0) dn_common_name[0] = '\0'; buflen = sizeof (dn_email); if (gnutls_x509_crt_get_issuer_dn_by_oid - (cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, dn_email, &buflen) != 0) + (cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, dn_email, (size_t *)&buflen) != 0) dn_email[0] = '\0'; buflen = sizeof (dn_organization); if (gnutls_x509_crt_get_issuer_dn_by_oid (cert, GNUTLS_OID_X520_ORGANIZATION_NAME, 0, 0, dn_organization, - &buflen) != 0) + (size_t *)&buflen) != 0) dn_organization[0] = '\0'; buflen = sizeof (dn_organizational_unit); if (gnutls_x509_crt_get_issuer_dn_by_oid (cert, GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME, 0, 0, - dn_organizational_unit, &buflen) != 0) + dn_organizational_unit, (size_t *)&buflen) != 0) dn_organizational_unit[0] = '\0'; buflen = sizeof (dn_locality); if (gnutls_x509_crt_get_issuer_dn_by_oid - (cert, GNUTLS_OID_X520_LOCALITY_NAME, 0, 0, dn_locality, &buflen) != 0) + (cert, GNUTLS_OID_X520_LOCALITY_NAME, 0, 0, dn_locality, (size_t *)&buflen) != 0) dn_locality[0] = '\0'; buflen = sizeof (dn_province); if (gnutls_x509_crt_get_issuer_dn_by_oid (cert, GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME, 0, 0, dn_province, - &buflen) != 0) + (size_t *)&buflen) != 0) dn_province[0] = '\0'; buflen = sizeof (dn_country); if (gnutls_x509_crt_get_issuer_dn_by_oid - (cert, GNUTLS_OID_X520_COUNTRY_NAME, 0, 0, dn_country, &buflen) != 0) + (cert, GNUTLS_OID_X520_COUNTRY_NAME, 0, 0, dn_country, (size_t *)&buflen) != 0) dn_country[0] = '\0'; snprintf (menu->dialog[row++], SHORT_STRING, " %s %s", dn_common_name, @@ -769,7 +761,7 @@ static int tls_check_certificate (CONNECTION * conn) gnutls_free (pemdata.data); } } - fclose (fp); + m_fclose(&fp); } if (!done) { mutt_error (_("Warning: Couldn't save certificate"));