summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1997-03-10 08:04:15 +0000
committerache <ache@FreeBSD.org>1997-03-10 08:04:15 +0000
commit78da0d5742784dd9287ef11059170ae612c80713 (patch)
treee47017ec38f0f2299dc9fe7635b50455dc359904 /usr.sbin
parenta340e72bff7cda56735666839b2746c30bc5008e (diff)
downloadFreeBSD-src-78da0d5742784dd9287ef11059170ae612c80713.zip
FreeBSD-src-78da0d5742784dd9287ef11059170ae612c80713.tar.gz
Do not re-initialize random numbers generator several times.
Use ^ getpid() to produce better initial state.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/chap.c8
-rw-r--r--usr.sbin/ppp/command.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/usr.sbin/ppp/chap.c b/usr.sbin/ppp/chap.c
index 39f4c7c..0e30cce 100644
--- a/usr.sbin/ppp/chap.c
+++ b/usr.sbin/ppp/chap.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id$
+ * $Id: chap.c,v 1.10 1997/02/22 16:10:05 peter Exp $
*
* TODO:
*/
@@ -41,6 +41,7 @@ struct authinfo AuthChapInfo = {
};
extern char *AuthGetSecret();
+extern int randinit;
void
ChapOutput(code, id, ptr, count)
@@ -78,7 +79,10 @@ int chapid;
int len, i;
char *cp;
- srandom(time(NULL));
+ if (!randinit) {
+ srandom((unsigned)(time(NULL) ^ getpid()));
+ randinit = 1;
+ }
cp = challenge_data;
*cp++ = challenge_len = random() % 32 + 16;
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index c15d94d..6feed20 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: command.c,v 1.32 1997/02/22 16:10:08 peter Exp $
+ * $Id: command.c,v 1.33 1997/03/10 06:21:00 ache Exp $
*
*/
#include <sys/types.h>
@@ -58,6 +58,7 @@ extern struct cmdtab const SetCommands[];
extern char *IfDevName;
struct in_addr ifnetmask;
+int randinit;
static int ShowCommand(), TerminalCommand(), QuitCommand();
static int CloseCommand(), DialCommand(), DownCommand();
@@ -653,7 +654,10 @@ char **argv;
if (strcasecmp(argv[0], "random") == 0) {
VarRedialTimeout = -1;
printf("Using random redial timeout.\n");
- srandom(time(0));
+ if (!randinit) {
+ srandom((unsigned)(time(NULL) ^ getpid()));
+ randinit = 1;
+ }
}
else {
timeout = atoi(argv[0]);
OpenPOWER on IntegriCloud