--- snmplib/scapi.c +++ snmplib/scapi.c @@ -334,6 +334,7 @@ int rval = SNMPERR_SUCCESS; const EVP_MD *hashfn; EVP_MD_CTX ctx, *cptr; + unsigned int tmp_len; #endif DEBUGTRACE; @@ -379,13 +380,16 @@ /** do the final pass */ #if defined(OLD_DES) - EVP_DigestFinal(cptr, MAC, MAC_len); + EVP_DigestFinal(cptr, MAC, &tmp_len); + *MAC_len = tmp_len; #else /* !OLD_DES */ if (SSLeay() < 0x907000) { - EVP_DigestFinal(cptr, MAC, MAC_len); + EVP_DigestFinal(cptr, MAC, &tmp_len); + *MAC_len = tmp_len; free(cptr); } else { - EVP_DigestFinal_ex(cptr, MAC, MAC_len); + EVP_DigestFinal_ex(cptr, MAC, &tmp_len); + *MAC_len = tmp_len; EVP_MD_CTX_cleanup(cptr); } #endif