[tor-commits] [tor/master] Fix various coverity-found issues

nickm at torproject.org nickm at torproject.org
Wed Oct 21 20:01:33 UTC 2015


commit 5e9f2384cf0f97646d7ee1b9eccaab4dfe382536
Author: Nick Mathewson <nickm at 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
 



More information about the tor-commits mailing list