31 lines
799 B
Diff
31 lines
799 B
Diff
|
--- 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
|