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

Fixes bug #17658; bugfix on commit in fdbb9cdf74 (11 Oct 2011)
in tor version 0.2.3.5-alpha-dev.
This commit is contained in:
teor (Tim Wilson-Brown) 2015-11-23 20:53:59 +11:00
parent 289b184e11
commit b1b8f7982e
2 changed files with 10 additions and 2 deletions

View File

@ -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".

View File

@ -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 */