commit 5e9f2384cf0f97646d7ee1b9eccaab4dfe382536 Author: Nick Mathewson nickm@torproject.org Date: Wed Oct 21 16:01:29 2015 -0400
Fix various coverity-found issues --- src/common/tortls.c | 5 ++++- src/test/test_rendcache.c | 7 ++++--- src/test/test_tortls.c | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/common/tortls.c b/src/common/tortls.c index 2a2a5d7..1057cf4 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -891,9 +891,12 @@ tor_tls_cert_is_valid(int severity, { check_no_tls_errors(); EVP_PKEY *cert_key; - EVP_PKEY *signing_key = X509_get_pubkey(signing_cert->cert); int r, key_ok = 0;
+ if (!signing_cert) + goto bad; + + EVP_PKEY *signing_key = X509_get_pubkey(signing_cert->cert); if (!signing_key) goto bad; r = X509_verify(cert->cert, signing_key); diff --git a/src/test/test_rendcache.c b/src/test/test_rendcache.c index dda527f..11f1114 100644 --- a/src/test/test_rendcache.c +++ b/src/test/test_rendcache.c @@ -30,8 +30,8 @@ mock_rend_data(const char *onion_address) { rend_data_t *rend_query = tor_malloc_zero(sizeof(rend_data_t));
- strncpy(rend_query->onion_address, onion_address, - REND_SERVICE_ID_LEN_BASE32+1); + strlcpy(rend_query->onion_address, onion_address, + sizeof(rend_query->onion_address)); rend_query->auth_type = REND_NO_AUTH; rend_query->hsdirs_fp = smartlist_new(); smartlist_add(rend_query->hsdirs_fp, tor_memdup("aaaaaaaaaaaaaaaaaaaaaaaa", @@ -1041,7 +1041,7 @@ test_rend_cache_purge(void *data) rend_cache_purge(); tt_assert(rend_cache); tt_assert(strmap_size(rend_cache) == 0); - tt_assert(rend_cache != our_rend_cache); + tt_assert(rend_cache == our_rend_cache);
done: rend_cache_free_all(); @@ -1244,6 +1244,7 @@ test_rend_cache_failure_purge(void *data)
rend_cache_failure_purge();
+ tt_ptr_op(rend_cache_failure, OP_NE, NULL); tt_int_op(strmap_size(rend_cache_failure), OP_EQ, 0);
done: diff --git a/src/test/test_tortls.c b/src/test/test_tortls.c index 4d92e17..944edc4 100644 --- a/src/test/test_tortls.c +++ b/src/test/test_tortls.c @@ -663,7 +663,7 @@ test_tortls_cert_get_key(void *ignored) { (void)ignored; tor_x509_cert_t *cert = NULL; - crypto_pk_t *res; + crypto_pk_t *res = NULL; cert = tor_malloc_zero(sizeof(tor_x509_cert_t)); X509 *key = NULL; key = tor_malloc_zero(sizeof(X509)); @@ -684,6 +684,7 @@ test_tortls_cert_get_key(void *ignored) done: fake_x509_free(key); tor_free(cert); + crypto_pk_free(res); } #endif