Blob Blame History Raw
--- 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