[gnumeric] random: fix potential problem in random-from-device.



commit 8dbf167d68b4bc7b643c30a41c7ce7ae76464fca
Author: Morten Welinder <terra gnome org>
Date:   Tue Aug 3 13:30:35 2010 -0400

    random: fix potential problem in random-from-device.

 ChangeLog        |    5 +++++
 src/gnm-random.c |    7 ++++---
 2 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f670d80..e272e76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-03  Morten Welinder  <terra gnome org>
+
+	* src/gnm-random.c (random_01_device): Read the right number of
+	new bytes, just in case.
+
 2010-08-02  Morten Welinder  <terra gnome org>
 
 	* src/gnm-random.c: Split from src/mathfunc.c.
diff --git a/src/gnm-random.c b/src/gnm-random.c
index 9ca3bee..6bf6cef 100644
--- a/src/gnm-random.c
+++ b/src/gnm-random.c
@@ -288,7 +288,8 @@ random_01_device (void)
 	static unsigned char data[32 * sizeof (gnm_float)];
 
 	while (bytes_left < sizeof (gnm_float)) {
-		gssize items = fread (data + bytes_left, 1, sizeof (data),
+		gssize items = fread (data + bytes_left, 1,
+				      sizeof (data) - bytes_left,
 				      random_device_file);
 		if (items <= 0) {
 			g_warning ("Reading from %s failed; reverting to pseudo-random.",
@@ -1369,7 +1370,7 @@ random_landau (void)
  * Generate a skew-normal distributed random number. 
  * 
  * based on the information provided at
- * http://azzalini.stat.unipd.it/SN/faq.html
+ * http://azzalini.stat.unipd.it/SN/faq-r.html
  *
  */
 
@@ -1393,7 +1394,7 @@ random_skew_normal (gnm_float a)
  * Generate a skew-t distributed random number. 
  * 
  * based on the information provided at
- * http://azzalini.stat.unipd.it/SN/faq.html
+ * http://azzalini.stat.unipd.it/SN/faq-r.html
  *
  */
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]