[PATCH v3] Replace random() and related calls with generate_random_buffer()

Volker Lendecke Volker.Lendecke at SerNet.DE
Thu Jul 9 15:31:26 UTC 2015


On Thu, Jul 09, 2015 at 03:28:05PM +0100, Robin McCorkell wrote:
> Result: better seeded random numbers that are cryptographically secure
> (not that it matters in this case)
> 
> Please let it be right this time...

The patch is good. However, I'd like to split it into two:
One functional one and one whitespace fix. To save you work,
I've done it for you. How do you like the attached one?

Thanks,

Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From a7b6570c09ac9f2bda140c5bc9531e93de85a2fe Mon Sep 17 00:00:00 2001
From: Robin McCorkell <rmccorkell at karoshi.org.uk>
Date: Thu, 9 Jul 2015 15:28:05 +0100
Subject: [PATCH 1/2] Replace random() and related calls with
 generate_random_buffer()

Result: better seeded random numbers that are cryptographically secure
(not that it matters in this case)

Please let it be right this time...

Signed-off-by: Robin McCorkell <rmccorkell at karoshi.org.uk>
---
 dfs_server/dfs_server_ad.c | 4 +---
 source3/smbd/msdfs.c       | 7 +++----
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c
index 3d93e19..6146632 100644
--- a/dfs_server/dfs_server_ad.c
+++ b/dfs_server/dfs_server_ad.c
@@ -42,13 +42,11 @@ static void shuffle_dc_set(struct dc_set *list)
 {
        uint32_t i;
 
-       srandom(time(NULL));
-
        for (i = list->count; i > 1; i--) {
                uint32_t r;
                const char *tmp;
 
-               r = random() % i;
+		r = generate_random() % i;
 
                tmp = list->names[i - 1];
                list->names[i - 1] = list->names[r];
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index a39efce..e895c1f 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -431,13 +431,12 @@ NTSTATUS create_conn_struct_cwd(TALLOC_CTX *ctx,
 
 static void shuffle_strlist(char **list, int count)
 {
-	int i, r;
+	int i;
+	uint32_t r;
 	char *tmp;
 
-	srandom(time(NULL));
-
 	for (i = count; i > 1; i--) {
-		r = random() % i;
+		r = generate_random() % i;
 
 		tmp = list[i-1];
 		list[i-1] = list[r];
-- 
1.9.1


From e33dc773922f981523e75b2eddff58b8c6b01ad5 Mon Sep 17 00:00:00 2001
From: Robin McCorkell <rmccorkell at karoshi.org.uk>
Date: Thu, 9 Jul 2015 15:28:05 +0100
Subject: [PATCH 2/2] dfs_server: Fix whitespace

Signed-off-by: Robin McCorkell <rmccorkell at karoshi.org.uk>
---
 dfs_server/dfs_server_ad.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c
index 6146632..2a1d9ec 100644
--- a/dfs_server/dfs_server_ad.c
+++ b/dfs_server/dfs_server_ad.c
@@ -40,18 +40,18 @@ struct dc_set {
 
 static void shuffle_dc_set(struct dc_set *list)
 {
-       uint32_t i;
+	uint32_t i;
 
-       for (i = list->count; i > 1; i--) {
-               uint32_t r;
-               const char *tmp;
+	for (i = list->count; i > 1; i--) {
+		uint32_t r;
+		const char *tmp;
 
 		r = generate_random() % i;
 
-               tmp = list->names[i - 1];
-               list->names[i - 1] = list->names[r];
-               list->names[r] = tmp;
-       }
+		tmp = list->names[i - 1];
+		list->names[i - 1] = list->names[r];
+		list->names[r] = tmp;
+	}
 }
 
 /*
-- 
1.9.1



More information about the samba-technical mailing list