rpms/mhash/devel mhash-0.9.7.1-haval-be.patch, NONE, 1.1 mhash.spec, 1.17, 1.18 mhash-0.9.7.1-be-test.patch, 1.1, NONE

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Fri Feb 2 17:21:48 UTC 2007


Author: mschwendt

Update of /cvs/extras/rpms/mhash/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17142

Modified Files:
	mhash.spec 
Added Files:
	mhash-0.9.7.1-haval-be.patch 
Removed Files:
	mhash-0.9.7.1-be-test.patch 
Log Message:
* Fri Feb  2 2007 Michael Schwendt <mschwendt[AT]users.sf.net> - 0.9.7.1-4
- Fix big-endian memory leaks in haval.c
- Patch is sufficient to pass test-suite on ppc. Fixes #226987.


mhash-0.9.7.1-haval-be.patch:

--- NEW FILE mhash-0.9.7.1-haval-be.patch ---
diff -Nur mhash-0.9.7.1-orig/lib/haval.c mhash-0.9.7.1/lib/haval.c
--- mhash-0.9.7.1-orig/lib/haval.c	2006-06-24 08:07:56.000000000 +0200
+++ mhash-0.9.7.1/lib/haval.c	2007-02-02 18:25:17.000000000 +0100
@@ -235,6 +235,9 @@
 	E[1] += T[1] = ROTR (F3 (T[0], T[3], T[4], T[5], T[6], T[7], T[2]), 7) + ROTR (T[1], 11) + W[ 5] + 0xAFD6BA33UL;
 	E[0] += T[0] = ROTR (F3 (T[7], T[2], T[3], T[4], T[5], T[6], T[1]), 7) + ROTR (T[0], 11) + W[ 2] + 0x6C24CF5CUL;
 
+#if defined(WORDS_BIGENDIAN)
+	mutils_free(W);
+#endif
 } /* havalTransform3 */
 
 
@@ -400,6 +403,9 @@
 	E[1] += T[1] = ROTR (F4 (T[0], T[6], T[2], T[7], T[4], T[3], T[5]), 7) + ROTR (T[1], 11) + W[16] + 0x6EEF0B6CUL;
 	E[0] += T[0] = ROTR (F4 (T[7], T[5], T[1], T[6], T[3], T[2], T[4]), 7) + ROTR (T[0], 11) + W[13] + 0x137A3BE4UL;
 
+#if defined(WORDS_BIGENDIAN)
+	mutils_free(W);
+#endif
 } /* havalTransform4 */
 
 
@@ -603,6 +609,9 @@
 	E[1] += T[1] = ROTR (F5 (T[4], T[7], T[2], T[0], T[6], T[5], T[3]), 7) + ROTR (T[1], 11) + W[25] + 0xC1A94FB6UL;
 	E[0] += T[0] = ROTR (F5 (T[3], T[6], T[1], T[7], T[5], T[4], T[2]), 7) + ROTR (T[0], 11) + W[15] + 0x409F60C4UL;
 
+#if defined(WORDS_BIGENDIAN)
+	mutils_free(W);
+#endif
 } /* havalTransform5 */
 
 mutils_error havalInit256( havalContext *hcp) {
@@ -831,10 +840,9 @@
 			) >> 8) |
 			( (hcp->digest[7] & 0x000000FFUL) << 24);
 #if defined(WORDS_BIGENDIAN)
-		digest = mutils_word32nswap((mutils_word32 *) (hcp->digest), 128/32, MUTILS_FALSE);
-#else
-		mutils_memcpy(digest, hcp->digest, 128/8);
+		mutils_word32nswap((mutils_word32 *) (hcp->digest), 128/32, MUTILS_TRUE);
 #endif
+		mutils_memcpy(digest, hcp->digest, 128/8);
 		break;
 	case 160:
 		hcp->digest[4] +=
@@ -851,10 +859,9 @@
 			((hcp->digest[7] & 0x0000003FUL) | (hcp->digest[6] & 0xFE000000UL) | (hcp->digest[5] & 0x01F80000UL), 19);
 
 #if defined(WORDS_BIGENDIAN)
-		digest = mutils_word32nswap((mutils_word32 *) (hcp->digest), 160/32, MUTILS_FALSE);
-#else
-		mutils_memcpy (digest, hcp->digest, 160/8);
+		mutils_word32nswap((mutils_word32 *) (hcp->digest), 160/32, MUTILS_TRUE);
 #endif
+		mutils_memcpy (digest, hcp->digest, 160/8);
 
 		break;
 	case 192:
@@ -873,10 +880,9 @@
 			((hcp->digest[7] & 0x0000001FUL) | (hcp->digest[6] & 0xFC000000UL), 26);
 
 #if defined(WORDS_BIGENDIAN)
-		digest = mutils_word32nswap((mutils_word32 *) (hcp->digest), 192/32, MUTILS_FALSE);
-#else
-		mutils_memcpy (digest, hcp->digest, 192/8);
+		mutils_word32nswap((mutils_word32 *) (hcp->digest), 192/32, MUTILS_TRUE);
 #endif
+		mutils_memcpy (digest, hcp->digest, 192/8);
 
 		break;
 	case 224:
@@ -889,19 +895,17 @@
 		hcp->digest[0] += (hcp->digest[7] >> 27) & 0x0000001FUL;
 
 #if defined(WORDS_BIGENDIAN)
-		digest = mutils_word32nswap((mutils_word32 *) (hcp->digest), 224/32, MUTILS_FALSE);
-#else
-		mutils_memcpy (digest, hcp->digest, 224/8);
+		mutils_word32nswap((mutils_word32 *) (hcp->digest), 224/32, MUTILS_TRUE);
 #endif
+		mutils_memcpy (digest, hcp->digest, 224/8);
 
 		break;
 	case 256:
 
 #if defined(WORDS_BIGENDIAN)
-		digest = mutils_word32nswap((mutils_word32 *) (hcp->digest), 256/32, MUTILS_FALSE);
-#else
-		mutils_memcpy (digest, hcp->digest, 256/8);
+		mutils_word32nswap((mutils_word32 *) (hcp->digest), 256/32, MUTILS_TRUE);
 #endif
+		mutils_memcpy (digest, hcp->digest, 256/8);
 
 		break;
 	}


Index: mhash.spec
===================================================================
RCS file: /cvs/extras/rpms/mhash/devel/mhash.spec,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- mhash.spec	2 Feb 2007 15:37:21 -0000	1.17
+++ mhash.spec	2 Feb 2007 17:21:16 -0000	1.18
@@ -1,12 +1,12 @@
 Summary: Thread-safe hash algorithms library
 Name: mhash
 Version: 0.9.7.1
-Release: 3
+Release: 4
 URL: http://mhash.sourceforge.net/
 License: LGPL
 Group: System Environment/Libraries
 Source: http://download.sourceforge.net/mhash/mhash-%{version}.tar.bz2
-Patch0: mhash-0.9.7.1-be-test.patch
+Patch0: mhash-0.9.7.1-haval-be.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot-%(%{__id_u} -n)
 Provides: libmhash = %{version}-%{release}
 
@@ -86,7 +86,8 @@
 
 
 %changelog
-* Fri Feb  2 2007 Michael Schwendt <mschwendt[AT]users.sf.net> - 0.9.7.1-3
+* Fri Feb  2 2007 Michael Schwendt <mschwendt[AT]users.sf.net> - 0.9.7.1-4
+- Fix big-endian memory leaks in haval.c
 - Patch is sufficient to pass test-suite on ppc. Fixes #226987.
 
 * Fri Feb  2 2007 Michael Schwendt <mschwendt[AT]users.sf.net> - 0.9.7.1-2


--- mhash-0.9.7.1-be-test.patch DELETED ---




More information about the scm-commits mailing list