aboutsummaryrefslogtreecommitdiff
path: root/security/mhash/files/patch-lib-keygen_mcrypt.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/mhash/files/patch-lib-keygen_mcrypt.c')
-rw-r--r--security/mhash/files/patch-lib-keygen_mcrypt.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/security/mhash/files/patch-lib-keygen_mcrypt.c b/security/mhash/files/patch-lib-keygen_mcrypt.c
new file mode 100644
index 000000000000..b5d5364d5000
--- /dev/null
+++ b/security/mhash/files/patch-lib-keygen_mcrypt.c
@@ -0,0 +1,27 @@
+diff -urN -x .svn ../../branches/vendor/mhash/lib/keygen_mcrypt.c ./lib/keygen_mcrypt.c
+--- ../../branches/vendor/mhash/lib/keygen_mcrypt.c 2008-01-16 14:34:18.000000000 +0200
++++ ./lib/keygen_mcrypt.c 2008-01-16 15:26:44.000000000 +0200
+@@ -52,8 +52,10 @@
+
+ while (1) {
+ td = mhash_init(algorithm);
+- if (td == MHASH_FAILED)
++ if (td == MHASH_FAILED) {
++ mutils_free(key);
+ return(-MUTILS_INVALID_FUNCTION);
++ }
+
+ if (salt_z == MUTILS_TRUE)
+ mhash(td, salt, salt_size);
+@@ -66,8 +68,10 @@
+ digest = mhash_end(td);
+
+ #if defined(MHASH_ROBUST)
+- if (digest == NULL)
++ if (digest == NULL) {
++ mutils_free(key);
+ return(-MUTILS_INVALID_RESULT);
++ }
+ #endif
+
+ if (size > block_size) {