[PATCH v3] Replace random() and related calls with generate_random_buffer()
Robin McCorkell
rmccorkell at karoshi.org.uk
Thu Jul 9 14:28:05 UTC 2015
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 | 21 ++++++++++-----------
source3/smbd/msdfs.c | 7 +++----
2 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c
index 3d93e19..8a3f2c0 100644
--- a/dfs_server/dfs_server_ad.c
+++ b/dfs_server/dfs_server_ad.c
@@ -40,20 +40,18 @@ struct dc_set {
static void shuffle_dc_set(struct dc_set *list)
{
- uint32_t i;
-
- srandom(time(NULL));
+ 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 = random() % i;
+ 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;
+ }
}
/*
@@ -945,3 +943,4 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
/* By default until all the case are handled */
return NT_STATUS_NOT_FOUND;
}
+
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];
--
2.4.5
More information about the samba-technical
mailing list