1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-28 05:29:48 +00:00
freebsd-ports/security/mhash/files/patch-lib-tiger.c
Peter Pentchev d9983ccbfa Update to mhash-0.9.9, fixing several style issues, lots of memory
leaks, and two serious (even if not easily triggered) bugs.
2008-01-16 15:46:05 +00:00

211 lines
6.5 KiB
C

diff -urN -x .svn ../../branches/vendor/mhash/lib/tiger.c ./lib/tiger.c
--- ../../branches/vendor/mhash/lib/tiger.c 2008-01-16 14:26:51.000000000 +0200
+++ ./lib/tiger.c 2008-01-16 15:08:55.000000000 +0200
@@ -62,26 +62,26 @@
#ifdef OPTIMIZE_FOR_ALPHA
/* This is the official definition of round */
#define round(a,b,c,x,mul) \
- c ^= x; \
- a -= t1[((c)>>(0*8))&0xFF] ^ t2[((c)>>(2*8))&0xFF] ^ \
+ (c) ^= (x); \
+ (a) -= t1[((c)>>(0*8))&0xFF] ^ t2[((c)>>(2*8))&0xFF] ^ \
t3[((c)>>(4*8))&0xFF] ^ t4[((c)>>(6*8))&0xFF] ; \
- b += t4[((c)>>(1*8))&0xFF] ^ t3[((c)>>(3*8))&0xFF] ^ \
+ (b) += t4[((c)>>(1*8))&0xFF] ^ t3[((c)>>(3*8))&0xFF] ^ \
t2[((c)>>(5*8))&0xFF] ^ t1[((c)>>(7*8))&0xFF] ; \
- b *= mul;
+ (b) *= (mul);
#else
/* This code works faster when compiled on 32-bit machines */
/* (but works slower on Alpha) */
#define round(a,b,c,x,mul) \
- c ^= x; \
- a -= t1[(mutils_word8)(c)] ^ \
+ (c) ^= (x); \
+ (a) -= t1[(mutils_word8)(c)] ^ \
t2[(mutils_word8)(((mutils_word32)(c))>>(2*8))] ^ \
t3[(mutils_word8)((c)>>(4*8))] ^ \
t4[(mutils_word8)(((mutils_word32)((c)>>(4*8)))>>(2*8))] ; \
- b += t4[(mutils_word8)(((mutils_word32)(c))>>(1*8))] ^ \
+ (b) += t4[(mutils_word8)(((mutils_word32)(c))>>(1*8))] ^ \
t3[(mutils_word8)(((mutils_word32)(c))>>(3*8))] ^ \
t2[(mutils_word8)(((mutils_word32)((c)>>(4*8)))>>(1*8))] ^ \
t1[(mutils_word8)(((mutils_word32)((c)>>(4*8)))>>(3*8))]; \
- b *= mul;
+ (b) *= (mul);
#endif
#define pass(a,b,c,mul) \
@@ -149,18 +149,18 @@
register mutils_word64 x0, x1, x2, x3, x4, x5, x6, x7; \
mutils_word8 pass_no; \
\
- a = state[0]; \
- b = state[1]; \
- c = state[2]; \
+ a = (state)[0]; \
+ b = (state)[1]; \
+ c = (state)[2]; \
\
- x0=str[0]; x1=str[1]; x2=str[2]; x3=str[3]; \
- x4=str[4]; x5=str[5]; x6=str[6]; x7=str[7]; \
+ x0=(str)[0]; x1=(str)[1]; x2=(str)[2]; x3=(str)[3]; \
+ x4=(str)[4]; x5=(str)[5]; x6=(str)[6]; x7=(str)[7]; \
\
compress; \
\
- state[0] = a; \
- state[1] = b; \
- state[2] = c; \
+ (state)[0] = a; \
+ (state)[1] = b; \
+ (state)[2] = c; \
}
#ifndef OPTIMIZE_FOR_ALPHA
@@ -173,20 +173,20 @@
#else /* OPTIMIZE_FOR_ALPHA */
/* The compress function is inlined: works better on Alpha. */
#define tiger_compress(str, state) \
- tiger_compress_macro(((mutils_word64*)str), ((mutils_word64*)state))
+ tiger_compress_macro(((mutils_word64*)(str)), ((mutils_word64*)(state)))
#endif /* OPTIMIZE_FOR_ALPHA */
#ifndef EXTRACT_UCHAR
#define EXTRACT_UCHAR(p) (*(mutils_word8 *)(p))
#endif
-#define STRING2INT64(s) ((((((((((((((mutils_word64)(EXTRACT_UCHAR(s+7) << 8) \
- | EXTRACT_UCHAR(s+6)) << 8) \
- | EXTRACT_UCHAR(s+5)) << 8) \
- | EXTRACT_UCHAR(s+4)) << 8) \
- | EXTRACT_UCHAR(s+3)) << 8) \
- | EXTRACT_UCHAR(s+2)) << 8) \
- | EXTRACT_UCHAR(s+1)) << 8) \
+#define STRING2INT64(s) ((((((((((((((mutils_word64)(EXTRACT_UCHAR((s)+7) << 8) \
+ | EXTRACT_UCHAR((s)+6)) << 8) \
+ | EXTRACT_UCHAR((s)+5)) << 8) \
+ | EXTRACT_UCHAR((s)+4)) << 8) \
+ | EXTRACT_UCHAR((s)+3)) << 8) \
+ | EXTRACT_UCHAR((s)+2)) << 8) \
+ | EXTRACT_UCHAR((s)+1)) << 8) \
| EXTRACT_UCHAR(s))
static void tiger_block(struct tiger_ctx *ctx, mutils_word8 * str)
@@ -362,35 +362,35 @@
#define sub64(s0, s1, p0, p1) \
temps0 = (p0); \
- tcarry = s0 < temps0; \
- s0 -= temps0; \
- s1 -= (p1) + tcarry;
+ tcarry = (s0) < temps0; \
+ (s0) -= temps0; \
+ (s1) -= (p1) + tcarry;
#define add64(s0, s1, p0, p1) \
temps0 = (p0); \
- s0 += temps0; \
- tcarry = s0 < temps0; \
- s1 += (p1) + tcarry;
+ (s0) += temps0; \
+ tcarry = (s0) < temps0; \
+ (s1) += (p1) + tcarry;
#define xor64(s0, s1, p0, p1) \
- s0 ^= (p0); \
- s1 ^= (p1);
+ (s0) ^= (p0); \
+ (s1) ^= (p1);
#define mul5(s0, s1) \
- tempt0 = s0<<2; \
- tempt1 = (s1<<2)|(s0>>30); \
+ tempt0 = (s0)<<2; \
+ tempt1 = ((s1)<<2)|((s0)>>30); \
add64(s0, s1, tempt0, tempt1);
#define mul7(s0, s1) \
- tempt0 = s0<<3; \
- tempt1 = (s1<<3)|(s0>>29); \
+ tempt0 = (s0)<<3; \
+ tempt1 = ((s1)<<3)|((s0)>>29); \
sub64(tempt0, tempt1, s0, s1); \
- s0 = tempt0; \
- s1 = tempt1;
+ (s0) = tempt0; \
+ (s1) = tempt1;
#define mul9(s0, s1) \
- tempt0 = s0<<3; \
- tempt1 = (s1<<3)|(s0>>29); \
+ tempt0 = (s0)<<3; \
+ tempt1 = ((s1)<<3)|((s0)>>29); \
add64(s0, s1, tempt0, tempt1);
#define save_abc \
@@ -497,33 +497,33 @@
mutils_word32 i; \
int pass_no; \
\
- a0 = state[0]; \
- a1 = state[1]; \
- b0 = state[2]; \
- b1 = state[3]; \
- c0 = state[4]; \
- c1 = state[5]; \
+ a0 = (state)[0]; \
+ a1 = (state)[1]; \
+ b0 = (state)[2]; \
+ b1 = (state)[3]; \
+ c0 = (state)[4]; \
+ c1 = (state)[5]; \
\
- x00=str[0*2]; x01=str[0*2+1]; x10=str[1*2]; x11=str[1*2+1]; \
- x20=str[2*2]; x21=str[2*2+1]; x30=str[3*2]; x31=str[3*2+1]; \
- x40=str[4*2]; x41=str[4*2+1]; x50=str[5*2]; x51=str[5*2+1]; \
- x60=str[6*2]; x61=str[6*2+1]; x70=str[7*2]; x71=str[7*2+1]; \
+ x00=(str)[0*2]; x01=(str)[0*2+1]; x10=(str)[1*2]; x11=(str)[1*2+1]; \
+ x20=(str)[2*2]; x21=(str)[2*2+1]; x30=(str)[3*2]; x31=(str)[3*2+1]; \
+ x40=(str)[4*2]; x41=(str)[4*2+1]; x50=(str)[5*2]; x51=(str)[5*2+1]; \
+ x60=(str)[6*2]; x61=(str)[6*2+1]; x70=(str)[7*2]; x71=(str)[7*2+1]; \
\
compress; \
\
- state[0] = a0; \
- state[1] = a1; \
- state[2] = b0; \
- state[3] = b1; \
- state[4] = c0; \
- state[5] = c1; \
+ (state)[0] = a0; \
+ (state)[1] = a1; \
+ (state)[2] = b0; \
+ (state)[3] = b1; \
+ (state)[4] = c0; \
+ (state)[5] = c1; \
}
#define UNROLL_COMPRESS
#ifdef UNROLL_COMPRESS
/* The compress function is inlined */
#define tiger_compress(str, state) \
- tiger_compress_macro(((mutils_word32*)str), ((mutils_word32*)state))
+ tiger_compress_macro(((mutils_word32*)(str)), ((mutils_word32*)(state)))
#else
/* The compress function is a function */
tiger_compress(__const mutils_word32 *str, mutils_word32 state[6])
@@ -537,9 +537,9 @@
#define EXTRACT_UCHAR(p) (*(mutils_word8 *)(p))
#endif
-#define STRING2INT(s) ((((((EXTRACT_UCHAR(s+3) << 8) \
- | EXTRACT_UCHAR(s+2)) << 8) \
- | EXTRACT_UCHAR(s+1)) << 8) \
+#define STRING2INT(s) ((((((EXTRACT_UCHAR((s)+3) << 8) \
+ | EXTRACT_UCHAR((s)+2)) << 8) \
+ | EXTRACT_UCHAR((s)+1)) << 8) \
| EXTRACT_UCHAR(s))
static void tiger_block(struct tiger_ctx *ctx, mutils_word8 * block)