patch-2.3.19 linux/drivers/char/random.c

Next file: linux/drivers/char/saa5249.c
Previous file: linux/drivers/char/radio-zoltrix.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.18/linux/drivers/char/random.c linux/drivers/char/random.c
@@ -1,7 +1,7 @@
 /*
  * random.c -- A strong random number generator
  *
- * Version 1.88, last modified 30-Aug-99
+ * Version 1.89, last modified 19-Sep-99
  * 
  * Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999.  All
  * rights reserved.
@@ -1329,8 +1329,14 @@
  */
 void get_random_bytes(void *buf, int nbytes)
 {
-	extract_entropy(sec_random_state, (char *) buf, nbytes, 
-			EXTRACT_ENTROPY_SECONDARY);
+	if (sec_random_state)  
+		extract_entropy(sec_random_state, (char *) buf, nbytes, 
+				EXTRACT_ENTROPY_SECONDARY);
+	else if (random_state)
+		extract_entropy(random_state, (char *) buf, nbytes, 0);
+	else
+		printk(KERN_NOTICE "get_random_bytes called before "
+				   "random driver initialization\n");
 }
 
 /*********************************************************************
@@ -2012,7 +2018,7 @@
 	if (!rekey_time || (tv.tv_sec - rekey_time) > REKEY_INTERVAL) {
 		rekey_time = tv.tv_sec;
 		/* First three words are overwritten below. */
-		get_random_bytes(&secret+3, sizeof(secret)-12);
+		get_random_bytes(&secret[3], sizeof(secret)-12);
 		count = (tv.tv_sec/REKEY_INTERVAL) << HASH_BITS;
 	}
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)