1
diff -ur maradns-1.4.07/libs/MaraHash.c maradns-1.4.08/libs/MaraHash.c
2
--- maradns-1.4.07/libs/MaraHash.c 2011-11-11 16:58:34.000000000 -0600
3
+++ maradns-1.4.08/libs/MaraHash.c 2011-12-29 11:37:10.311564695 -0600
5
-/* Copyright (c) 2006 Sam Trenholme
6
+/* Copyright (c) 2006, 2011 Sam Trenholme
16
/* Masks to limit the size of the hash */
17
/* These are powers of two, minus one */
19
16777215, 33554431, 67108863, 134217727,
20
268435455, 536870911, 1073741823 };
22
+mhash_offset mhash_secret_add_constant = 7;
24
/* Create a new, blank mhash object
26
output: pointer to the object in quesiton on success, NULL (0)
28
/* Simple enough hash */
30
ret += (mhash_offset)(*point << shift);
32
+ shift += mhash_secret_add_constant;
37
return tuple->tuple_list[element];
40
+/* Read three bytes from a filename and use that as a secret add constant */
41
+int mhash_set_add_constant(char *filename) {
44
+ read = fopen(filename,"rb");
49
+ mhash_secret_add_constant ^= getc(read);
50
+ mhash_secret_add_constant <<= 8;
51
+ mhash_secret_add_constant ^= getc(read);
52
+ mhash_secret_add_constant <<= 8;
53
+ mhash_secret_add_constant ^= getc(read);
58
diff -ur maradns-1.4.07/server/MaraDNS.c maradns-1.4.08/server/MaraDNS.c
59
--- maradns-1.4.07/server/MaraDNS.c 2011-11-11 16:58:33.000000000 -0600
60
+++ maradns-1.4.08/server/MaraDNS.c 2011-12-29 11:41:54.315941513 -0600
62
-/* Copyright (c) 2002-2010 Sam Trenholme
63
+/* Copyright (c) 2002-2011 Sam Trenholme
67
@@ -3952,6 +3952,24 @@
68
int recurse_number_ports = 4096;
71
+ /* First order of business: Initialize the hash */
72
+ if(mhash_set_add_constant(
81
+ "Fatal error opening secret.txt"
83
+ "Fatal error opening /dev/urandom"
89
memset(&client,0,sizeof(client)); /* Initialize ya variables */
90
clin = (struct sockaddr_in *)&client;