From: Sam Hartman Date: Wed, 5 Oct 2011 21:30:55 +0000 (+0000) Subject: Don't need to check for fork on windows X-Git-Tag: krb5-1.10-alpha1~64 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=56a9eb2f2d65f0900935c841720cdeca7f27cc81;p=krb5.git Don't need to check for fork on windows Signed-off-by: Kevin Wasserman git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25311 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/crypto/krb/prng_fortuna.c b/src/lib/crypto/krb/prng_fortuna.c index e40d341ee..d54d6529a 100644 --- a/src/lib/crypto/krb/prng_fortuna.c +++ b/src/lib/crypto/krb/prng_fortuna.c @@ -114,9 +114,6 @@ struct fortuna_state unsigned int reseed_count; struct timeval last_reseed_time; unsigned int pool0_bytes; - - /* Current pid as of last request, for fork safety. */ - pid_t pid; }; /* @@ -346,7 +343,9 @@ accumulator_output(struct fortuna_state *st, unsigned char *dst, size_t len) static k5_mutex_t fortuna_lock = K5_MUTEX_PARTIAL_INITIALIZER; static struct fortuna_state main_state; +#ifndef _WIN32 static pid_t last_pid; +#endif static krb5_boolean have_entropy = FALSE; int @@ -360,7 +359,9 @@ k5_prng_init(void) return ret; init_state(&main_state); +#ifndef _WIN32 last_pid = getpid(); +#endif if (k5_get_os_entropy(osbuf, sizeof(osbuf))) { generator_reseed(&main_state, osbuf, sizeof(osbuf)); have_entropy = TRUE; @@ -410,8 +411,10 @@ krb5_error_code KRB5_CALLCONV krb5_c_random_make_octets(krb5_context context, krb5_data *outdata) { krb5_error_code ret; +#ifndef _WIN32 pid_t pid = getpid(); unsigned char pidbuf[4]; +#endif ret = k5_mutex_lock(&fortuna_lock); if (ret) @@ -422,12 +425,14 @@ krb5_c_random_make_octets(krb5_context context, krb5_data *outdata) return KRB5_CRYPTO_INTERNAL; } +#ifndef _WIN32 /* no 'fork' on windows; does not apply */ if (pid != last_pid) { /* We forked; make sure child's PRNG stream differs from parent's. */ store_32_be(pid, pidbuf); generator_reseed(&main_state, pidbuf, 4); last_pid = pid; } +#endif accumulator_output(&main_state, (unsigned char *)outdata->data, outdata->length);