Просмотр исходного кода

Check the return value of HMAC in crypto.c and assert on error

Fixes bug #17658; bugfix on commit in fdbb9cdf746b (11 Oct 2011)
in tor version 0.2.3.5-alpha-dev.
teor (Tim Wilson-Brown) 8 лет назад
Родитель
Сommit
b1b8f7982e
2 измененных файлов с 10 добавлено и 2 удалено
  1. 5 0
      changes/check-crypto-errors
  2. 5 2
      src/common/crypto.c

+ 5 - 0
changes/check-crypto-errors

@@ -0,0 +1,5 @@
+  o Minor bugfix (crypto):
+    - Check the return value of HMAC and assert on failure.
+      Fixes bug #17658; bugfix on commit in fdbb9cdf746b (11 Oct 2011)
+      in tor version 0.2.3.5-alpha-dev.
+      Patch by "teor".

+ 5 - 2
src/common/crypto.c

@@ -1906,11 +1906,14 @@ crypto_hmac_sha256(char *hmac_out,
                    const char *key, size_t key_len,
                    const char *msg, size_t msg_len)
 {
+  unsigned char *rv = NULL;
   /* If we've got OpenSSL >=0.9.8 we can use its hmac implementation. */
   tor_assert(key_len < INT_MAX);
   tor_assert(msg_len < INT_MAX);
-  HMAC(EVP_sha256(), key, (int)key_len, (unsigned char*)msg, (int)msg_len,
-       (unsigned char*)hmac_out, NULL);
+  tor_assert(hmac_out);
+  rv = HMAC(EVP_sha256(), key, (int)key_len, (unsigned char*)msg, (int)msg_len,
+            (unsigned char*)hmac_out, NULL);
+  tor_assert(rv);
 }
 
 /* DH */