From 5860828e516f2b81ad05d87d5f104ff9f4ce4cb5 Mon Sep 17 00:00:00 2001 From: tg Date: Mon, 26 Apr 2004 18:24:39 +0000 Subject: [PATCH] oops, committed to wrong branch accidentally: Log message: seed $RANDOM from /dev/urandom at startup, too. --- main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index f8700cf..8fcaa8c 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $MirBSD: main.c,v 1.2 2004/04/17 00:47:19 tg Exp $ */ +/* $MirBSD: main.c,v 1.3 2004/04/26 18:24:39 tg Exp $ */ /* $OpenBSD: main.c,v 1.26 2004/01/08 05:43:14 jmc Exp $ */ /* @@ -94,6 +94,8 @@ main(int argc, char *argv[]) char **wp; struct env env; pid_t ppid; + long trnd; + FILE *tfil; #ifdef MEM_DEBUG chmem_set_defaults("ct", 1); @@ -256,7 +258,13 @@ main(int argc, char *argv[]) ppid = getppid(); setint(global("PPID"), (long) ppid); #ifdef KSH - setint(global("RANDOM"), (long) (time((time_t *)0) * kshpid * ppid)); + trnd = *((long *)kshname); + if ((tfil = fopen("/dev/urandom", "rb")) != NULL) { + fread(&trnd, 4, 1, tfil); + fclose(tfil); + } + trnd ^= (long) (time((time_t *)0) * kshpid * ppid); + setint(global("RANDOM"), trnd); #endif /* KSH */ /* setstr can't fail here */ setstr(global(version_param), ksh_version, KSH_RETURN_ERROR);