[1133] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

krb5b4pl3: Can't define srandom/random on systems that have both them and srand48/lrand48

daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Mon Mar 13 18:06:33 1995

From: "Jonathan I. Kamens" <jik@cam.ov.com>
Date: Mon, 13 Mar 1995 18:09:34 -0500
To: krb5-bugs@MIT.EDU

appl/bsd/configure.in defines srandom and random to srand48 and
lrand48 on systems that have the latter.  Some systems, most notably
Linux, have both srandom/random and srand48/lrand48, and their
prototypes in stdlib.h are different.  On such systems, defining
srandom/random to srand48/lrand48 will cause compile-time errors
because of prototype conflicts.

I fixed this by definind RANDOM and SRANDOM instead of random and
srandom, and using those symbols in krlogin.c and krlogind.c.

Here's a patch:

--- configure.in	1995/03/13 22:59:40	1.1
+++ configure.in	1995/03/13 23:00:24
@@ -33,7 +33,7 @@
 AC_FUNC_CHECK(setreuid,AC_DEFINE(HAVE_SETREUID))
 AC_FUNC_CHECK(setresuid,AC_DEFINE(HAVE_SETRESUID))
 dnl if srand48 is there, use it (krlogind needs it)
-AC_FUNC_CHECK(srand48,AC_DEFINE(srandom,srand48) AC_DEFINE(random,lrand48))
+AC_FUNC_CHECK(srand48,AC_DEFINE(SRANDOM,srand48) AC_DEFINE(RANDOM,lrand48))
 AC_FUNC_CHECK(sigprocmask,
 AC_COMPILE_CHECK([sigset_t],
 [#include <signal.h>],
--- krlogin.c	1995/03/13 00:05:01	1.5
+++ krlogin.c	1995/03/13 23:02:59
@@ -138,7 +138,15 @@
 #include <krb5/los-proto.h>
 #include <com_err.h>
 #include "defines.h"
-     
+
+#ifndef RANDOM
+#define RANDOM() random()
+#endif
+
+#ifndef SRANDOM
+#define SRANDOM(seed) srandom(seed)
+#enddif
+
 #ifdef BUFSIZ
 #undef BUFSIZ
 #endif
@@ -1770,9 +1778,9 @@
     if (len < 8) {
 	if (!seeded) {
 	    seeded = 1;
-	    srandom((int) time((long *)0));
+	    SRANDOM((int) time((long *)0));
 	}
-	garbage = random();
+	garbage = RANDOM();
 	/* insert random garbage */
 	(void) memcpy(garbage_buf, &garbage, min(sizeof(long),8));
 	
--- krlogind.c	1995/03/10 20:04:34	1.9
+++ krlogind.c	1995/03/13 23:03:40
@@ -210,6 +210,14 @@
 #include <krb5/los-proto.h>
 #include <kerberosIV/krb.h>
 
+#ifndef RANDOM
+#define RANDOM() random()
+#endif
+
+#ifndef SRANDOM
+#define SRANDOM(seed) srandom(seed)
+#enddif
+
 #ifdef BUFSIZ
 #undef BUFSIZ
 #endif
@@ -1756,9 +1764,9 @@
 	if (len < 8) {
 		if (!seeded) {
 			seeded = 1;
-			srandom((int) time((long *)0));
+			SRANDOM((int) time((long *)0));
 		}
-		garbage = random();
+		garbage = RANDOM();
 		/* insert random garbage */
 		(void) memcpy(garbage_buf, &garbage, min(sizeof(long),8));
 

Jonathan Kamens  |  OpenVision Technologies, Inc.  |   jik@cam.ov.com

home help back first fref pref prev next nref lref last post