ports/security/heimdal/patches/patch-kpasswd_kpasswd-generator_c

38 lines
1 KiB
Text

Use HAVE_ARC4RANDOM and choose to call arc4random() instead of srand()
and rand() and friends.
--- kpasswd/kpasswd-generator.c.orig Tue Nov 29 02:35:27 2016
+++ kpasswd/kpasswd-generator.c Thu Dec 15 11:30:30 2016
@@ -78,7 +78,7 @@ generate_requests(const char *filename, unsigned nreq)
{
krb5_context context;
krb5_error_code ret;
- int i;
+ int i, rnd;
char **words;
unsigned nwords, k;
@@ -89,7 +89,12 @@ generate_requests(const char *filename, unsigned nreq)
nwords = read_words(filename, &words);
for (i = 0; i < nreq; ++i) {
- char *name = words[rand() % nwords];
+#ifdef HAVE_ARC4RANDOM
+ rnd = arc4random();
+#else
+ rnd = rand();
+#endif
+ char *name = words[rnd % nwords];
krb5_get_init_creds_opt *opt;
krb5_creds cred;
krb5_principal principal;
@@ -207,7 +212,9 @@ main(int argc, char **argv)
if (argc != 2)
usage (1);
+#ifndef HAVE_ARC4RANDOM
srand (0);
+#endif
nreq = strtol(argv[1], &end, 0);
if (argv[1] == end || *end != '\0')
usage (1);