diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-07-09 08:31:25 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-07-09 08:31:25 +0000 |
commit | 6a46244733178c2523d5a24d50ff3f46d1c8e5f8 (patch) | |
tree | d6c6956b4ef3663e74a2c6608dd079f44a9d8112 | |
parent | 141ef75c90e6f7c1e34f61fc3432accb9dc20973 (diff) | |
download | gnutls-6a46244733178c2523d5a24d50ff3f46d1c8e5f8.tar.gz |
eliminated some memory leaks. Reported by Yoann Vandoorselaere <yoann@prelude-ids.org>.
-rw-r--r-- | lib/gnutls_pk.c | 6 | ||||
-rw-r--r-- | lib/gnutls_x509.c | 12 | ||||
-rw-r--r-- | lib/x509/x509.c | 2 |
3 files changed, 9 insertions, 11 deletions
diff --git a/lib/gnutls_pk.c b/lib/gnutls_pk.c index 6361ba8d92..c853ae79f7 100644 --- a/lib/gnutls_pk.c +++ b/lib/gnutls_pk.c @@ -612,10 +612,8 @@ int _gnutls_pk_decrypt(int algo, mpi_t * resarr, mpi_t data, mpi_t * pkey, case GCRY_PK_RSA: if (pkey_len >= 6) rc = gcry_sexp_build(&s_pkey, NULL, - "(private-key(rsa((n%m)(e%m)(d%m)(p%m)(q%m)(u%m))))", - pkey[0], pkey[1], pkey[2], pkey[3], - pkey[4], pkey[5]); - + "(private-key(rsa((n%m)(e%m)(d%m)(p%m)(q%m)(u%m))))", + pkey[0], pkey[1], pkey[2], pkey[3], pkey[4], pkey[5]); break; default: diff --git a/lib/gnutls_x509.c b/lib/gnutls_x509.c index 6f2b549f5c..09318069cd 100644 --- a/lib/gnutls_x509.c +++ b/lib/gnutls_x509.c @@ -440,7 +440,7 @@ static int parse_pem_cert_mem(gnutls_cert ** cert_list, uint * ncerts, *cert_list = (gnutls_cert *) gnutls_realloc_fast(*cert_list, - i * sizeof(gnutls_cert)); + i * sizeof(gnutls_cert)); if (*cert_list == NULL) { gnutls_assert(); @@ -456,6 +456,7 @@ static int parse_pem_cert_mem(gnutls_cert ** cert_list, uint * ncerts, gnutls_assert(); return ret; } + _gnutls_free_datum( &tmp); /* free ptr2 */ /* now we move ptr after the pem header */ @@ -1178,8 +1179,7 @@ static int parse_der_ca_mem(gnutls_x509_crt_t ** cert_list, uint * ncerts, *cert_list = (gnutls_x509_crt_t *) gnutls_realloc_fast(*cert_list, - i * - sizeof(gnutls_x509_crt_t)); + i * sizeof(gnutls_x509_crt_t)); if (*cert_list == NULL) { gnutls_assert(); @@ -1197,7 +1197,7 @@ static int parse_der_ca_mem(gnutls_x509_crt_t ** cert_list, uint * ncerts, ret = gnutls_x509_crt_import(cert_list[0][i - 1], - &tmp, GNUTLS_X509_FMT_DER); + &tmp, GNUTLS_X509_FMT_DER); if (ret < 0) { gnutls_assert(); return ret; @@ -1236,10 +1236,10 @@ int gnutls_certificate_set_x509_trust_mem(gnutls_certificate_credentials_t if (type == GNUTLS_X509_FMT_DER) return parse_der_ca_mem(&res->x509_ca_list, &res->x509_ncas, - ca->data, ca->size); + ca->data, ca->size); else return parse_pem_ca_mem(&res->x509_ca_list, &res->x509_ncas, - ca->data, ca->size); + ca->data, ca->size); if ((ret2 = generate_rdn_seq(res)) < 0) return ret2; diff --git a/lib/x509/x509.c b/lib/x509/x509.c index 4b9d275b31..613842cedf 100644 --- a/lib/x509/x509.c +++ b/lib/x509/x509.c @@ -1123,7 +1123,7 @@ int _gnutls_x509_crt_get_raw_dn2(gnutls_x509_crt_t cert, ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result, len1; int start1, end1; - gnutls_datum_t signed_data; + gnutls_datum_t signed_data = { NULL, 0 }; /* get the issuer of 'cert' */ |