diff -urp john-1.7.2-all-7/src/NSLDAPS_fmt.c john-1.7.2-all-7-ssha-fix/src/NSLDAPS_fmt.c --- john-1.7.2-all-7/src/NSLDAPS_fmt.c Wed Jun 6 14:47:45 2007 +++ john-1.7.2-all-7-ssha-fix/src/NSLDAPS_fmt.c Thu Jun 21 23:36:03 2007 @@ -35,7 +35,7 @@ #ifdef MMX_COEF #define MIN_KEYS_PER_CRYPT MMX_COEF #define MAX_KEYS_PER_CRYPT MMX_COEF -#define GETPOS(i, index) ( (index)*4 + (i& (0xffffffff-3) )*MMX_COEF + (3-((i)&3)) ) +#define GETPOS(i, index) ( (index)*4 + ((i)& (0xffffffff-3) )*MMX_COEF + (3-((i)&3)) ) #else #define MIN_KEYS_PER_CRYPT 1 #define MAX_KEYS_PER_CRYPT 1 @@ -131,6 +131,7 @@ static void set_key(char *key, int index { total_len = 0; memset(saved_key, 0, sizeof(saved_key)); + memset(length, 0, sizeof(length)); } len = strlen(key); if(len>PLAINTEXT_LENGTH)