From: Dmitry Kasatkin Date: Wed, 4 Apr 2012 13:48:16 +0000 (+0300) Subject: added HMAC API error handling X-Git-Tag: v0.2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d61b9c0be717e65fddda60ecc5c362e42f98a789;p=platform%2Fupstream%2Fima-evm-utils.git added HMAC API error handling Signed-off-by: Dmitry Kasatkin --- diff --git a/src/evmctl.c b/src/evmctl.c index dea4a87..d257864 100644 --- a/src/evmctl.c +++ b/src/evmctl.c @@ -996,7 +996,11 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h log_info("generation: %u\n", generation); - HMAC_Init(&ctx, evmkey, sizeof(evmkey), EVP_sha1()); + err = HMAC_Init(&ctx, evmkey, sizeof(evmkey), EVP_sha1()); + if (!err) { + log_errno("HMAC_Init() failed"); + return -1; + } for (xattrname = evm_config_xattrnames; *xattrname != NULL; xattrname++) { err = getxattr(file, *xattrname, xattr_value, sizeof(xattr_value)); @@ -1007,7 +1011,11 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h /*log_debug("name: %s, value: %s, size: %d\n", *xattrname, xattr_value, err);*/ log_info("name: %s, size: %d\n", *xattrname, err); log_debug_dump(xattr_value, err); - HMAC_Update(&ctx, xattr_value, err); + err = HMAC_Update(&ctx, xattr_value, err); + if (!err) { + log_errno("HMAC_Update() failed"); + return -1; + } } memset(&hmac_misc, 0, sizeof(hmac_misc)); @@ -1017,8 +1025,16 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h hmac_misc.gid = st.st_gid; hmac_misc.mode = st.st_mode; - HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc)); - HMAC_Final(&ctx, hash, &mdlen); + err = HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc)); + if (!err) { + log_errno("HMAC_Update() failed"); + return -1; + } + err = HMAC_Final(&ctx, hash, &mdlen); + if (!err) { + log_errno("HMAC_Final() failed"); + return -1; + } HMAC_CTX_cleanup(&ctx); free(key);