summaryrefslogtreecommitdiffstats
path: root/contrib/awk
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1997-10-15 22:49:19 +0000
committerache <ache@FreeBSD.org>1997-10-15 22:49:19 +0000
commitad58c6f873180eb55a3f2d71b3b07954a5e69294 (patch)
tree0c2b337748c2ef94208411c297e6cfa19f0c1c62 /contrib/awk
parent9bb743990ae36f54c48a20758ce0fa2eff9bd954 (diff)
downloadFreeBSD-src-ad58c6f873180eb55a3f2d71b3b07954a5e69294.zip
FreeBSD-src-ad58c6f873180eb55a3f2d71b3b07954a5e69294.tar.gz
srandom(time()) is too weak even for joke, use srandom(time() ^ getpid())
at least. Note that srandomdev can't be used here since gawk preserve old seed value.
Diffstat (limited to 'contrib/awk')
-rw-r--r--contrib/awk/builtin.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/awk/builtin.c b/contrib/awk/builtin.c
index e620985..dc2c1d3 100644
--- a/contrib/awk/builtin.c
+++ b/contrib/awk/builtin.c
@@ -1263,7 +1263,11 @@ NODE *tree;
(void) setstate(state);
if (tree == NULL)
+#ifdef __FreeBSD__
+ srandom((unsigned int) (save_seed = (long) time((time_t *) 0) ^ getpid()));
+#else
srandom((unsigned int) (save_seed = (long) time((time_t *) 0)));
+#endif
else {
tmp = tree_eval(tree->lnode);
srandom((unsigned int) (save_seed = (long) force_number(tmp)));
OpenPOWER on IntegriCloud