xserver: Branch 'master'
Adam Jackson
ajax at kemper.freedesktop.org
Fri Nov 16 16:53:21 PST 2007
configure.ac | 6 ++++++
include/dix-config.h.in | 3 +++
os/auth.c | 16 ++++++++++++++++
3 files changed, 25 insertions(+)
New commits:
commit 514ba4ca727f0b1076bc67500617722203d34daa
Author: Adam Jackson <ajax at aspartame.nwnk.net>
Date: Fri Nov 16 19:53:11 2007 -0500
Bug #1612: Use a stronger PRNG.
Currently just reads from /dev/urandom, and only on Linux.
diff --git a/configure.ac b/configure.ac
index 35b7f0f..7d43216 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,6 +175,12 @@ fi
AC_CHECK_FUNC([dlopen], [],
AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
+case $host_os in
+ linux*)
+ AC_DEFINE(HAVE_URANDOM, 1, [Has /dev/urandom]) ;;
+ *) ;;
+esac
+
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr \
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index d105e51..d033387 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -240,6 +240,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Have /dev/urandom */
+#undef HAVE_URANDOM
+
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
diff --git a/os/auth.c b/os/auth.c
index b2a145f..fa3ba79 100644
--- a/os/auth.c
+++ b/os/auth.c
@@ -325,6 +325,20 @@ GenerateAuthorization(
return -1;
}
+#ifdef HAVE_URANDOM
+
+void
+GenerateRandomData (int len, char *buf)
+{
+ int fd;
+
+ fd = open("/dev/urandom", O_RDONLY);
+ read(fd, buf, len);
+ close(fd);
+}
+
+#else /* !HAVE_URANDOM */
+
/* A random number generator that is more unpredictable
than that shipped with some systems.
This code is taken from the C standard. */
@@ -362,4 +376,6 @@ GenerateRandomData (int len, char *buf)
/* XXX add getrusage, popen("ps -ale") */
}
+#endif /* HAVE_URANDOM */
+
#endif /* XCSECURITY */
More information about the xorg-commit
mailing list