From a958dfd4957f2bd181d9d15a785fd5f317f4aea0 Mon Sep 17 00:00:00 2001 From: brenosilva Date: Fri, 15 Jun 2012 17:06:10 +0000 Subject: [PATCH] Fix PRNG code --- apache2/msc_crypt.c | 10 +++++----- apache2/msc_crypt.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apache2/msc_crypt.c b/apache2/msc_crypt.c index fc02b987..e831f729 100644 --- a/apache2/msc_crypt.c +++ b/apache2/msc_crypt.c @@ -122,20 +122,20 @@ char *normalize_path(modsec_rec *msr, char *input) { * \retval seed random seed */ unsigned long prng() { - short num_matrix1[10]; num_matrix2[10]; + short num_matrix1[10], num_matrix2[10]; unsigned long num, num1, num2; short n, *p; unsigned short seed_num; unsigned long seed; - seed_num = seed & N16BITS_MASK; + seed_num = seed & N16BITS_MAX; num = seed & N31BITS_MASK; p = num_matrix1; for(n = 18; n-- ; ) { num = 30903*seed_num + (num>>16); - *p++ = seed_num = num & N16BITS_MASK; + *p++ = seed_num = num & N16BITS_MAX; if (n == 9) p = num_matrix2; } @@ -160,8 +160,8 @@ unsigned long prng() { num_matrix1[0] = num1/N16BITS_MASK; num_matrix2[0] = num2/N16BITS_MASK; - num_matrix1[1] = N16BITS_MASK&num1; - num_matrix2[1] = N16BITS_MASK&num2; + num_matrix1[1] = N16BITS_MAX & num1; + num_matrix2[1] = N16BITS_MAX & num2; seed = (((long)num_matrix1[1])<<16)+(long)num_matrix2[1]; diff --git a/apache2/msc_crypt.h b/apache2/msc_crypt.h index d40d7225..8bd74d6d 100644 --- a/apache2/msc_crypt.h +++ b/apache2/msc_crypt.h @@ -35,7 +35,7 @@ struct glinear { }; #define N16BITS_MASK 65536L -#define N16BITS_MASK 0xFFFF +#define N16BITS_MAX 0xFFFF #define N15BITS_MASK 0x7FFF #define N31BITS_MASK 0x7FFFFFFF