From c85af59be50a5539cb2fd0c80cb4700feab37e4e Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 10 May 2001 19:08:45 +0000 Subject: [PATCH] updates. --- CHANGES | 11 +++++++++++ lib/silccrypt/silcrng.c | 16 ++++++++++++++++ lib/silcutil/silcutil.c | 5 +++++ 3 files changed, 32 insertions(+) diff --git a/CHANGES b/CHANGES index b738985d..8d9bc9a6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,14 @@ +Thu May 10 22:49:51 EEST 2001 Pekka Riikonen + + * Compiled the SILC under cygwin. Compiled and tested briefly + without problems. More tests needed. The SIMs didn't compile + though. + + * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c. + + * Fixed possible crash in silc_get_username in the + lib/silcutil/silcutil.c. + Tue May 8 09:04:03 EEST 2001 Pekka Riikonen * Fixed a va_arg in silc/client_ops.c. diff --git a/lib/silccrypt/silcrng.c b/lib/silccrypt/silcrng.c index f671952c..7b01e552 100644 --- a/lib/silccrypt/silcrng.c +++ b/lib/silccrypt/silcrng.c @@ -190,12 +190,20 @@ static void silc_rng_get_soft_noise(SilcRng rng) pos = silc_rng_get_position(rng); silc_rng_xor(rng, clock(), 0); +#ifdef HAVE_GETPID silc_rng_xor(rng, getpid(), 1); +#ifdef HAVE_GETPGID silc_rng_xor(rng, getpgid(getpid() << 8), 2); silc_rng_xor(rng, getpgid(getpid() << 8), 3); +#endif silc_rng_xor(rng, getgid(), 4); +#endif +#ifdef HAVE_GETPGRP silc_rng_xor(rng, getpgrp(), 5); +#endif +#ifdef HAVE_GETSID silc_rng_xor(rng, getsid(getpid() << 16), 6); +#endif silc_rng_xor(rng, times(&ptime), 7); silc_rng_xor(rng, ptime.tms_utime, 8); silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), pos++); @@ -208,12 +216,20 @@ static void silc_rng_get_soft_noise(SilcRng rng) silc_rng_xor(rng, (ptime.tms_cutime + ptime.tms_stime), pos++); silc_rng_xor(rng, (ptime.tms_stime << 8), pos++); silc_rng_xor(rng, clock() << 4, pos++); +#ifdef HAVE_GETPGID silc_rng_xor(rng, getpgid(getpid() << 8), pos++); +#endif +#ifdef HAVE_GETPGRP silc_rng_xor(rng, getpgrp(), pos++); +#endif +#ifdef HAVE_SETSID silc_rng_xor(rng, getsid(getpid() << 16), pos++); +#endif silc_rng_xor(rng, times(&ptime), pos++); silc_rng_xor(rng, ptime.tms_utime, pos++); +#ifdef HAVE_GETPGRP silc_rng_xor(rng, getpgrp(), pos++); +#endif #ifdef SILC_RNG_DEBUG SILC_LOG_HEXDUMP(("pool"), rng->pool, sizeof(rng->pool)); diff --git a/lib/silcutil/silcutil.c b/lib/silcutil/silcutil.c index 6b118ee8..2907f2cc 100644 --- a/lib/silcutil/silcutil.c +++ b/lib/silcutil/silcutil.c @@ -724,6 +724,11 @@ char *silc_get_username() { char *logname = NULL; + if (!getenv("LOGNAME")) { + fprintf(stderr, "Error: environment variable $LOGNAME not set\n"); + return NULL; + } + logname = strdup(getenv("LOGNAME")); if (!logname) { logname = getlogin(); -- 2.24.0