From 9ce3b2cbd245abedc6cff147a1b91566e340edb1 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 29 Apr 2013 21:02:16 +0200 Subject: BZ#15380: Fix initstate error return [BZ #15380] * stdlib/random.c (__initstate): Return NULL if __initstate fails. --- stdlib/random.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'stdlib/random.c') diff --git a/stdlib/random.c b/stdlib/random.c index 3ed610dd9c..967dec3539 100644 --- a/stdlib/random.c +++ b/stdlib/random.c @@ -234,16 +234,17 @@ __initstate (seed, arg_state, n) size_t n; { int32_t *ostate; + int ret; __libc_lock_lock (lock); ostate = &unsafe_state.state[-1]; - __initstate_r (seed, arg_state, n, &unsafe_state); + ret = __initstate_r (seed, arg_state, n, &unsafe_state); __libc_lock_unlock (lock); - return (char *) ostate; + return ret == -1 ? NULL : (char *) ostate; } weak_alias (__initstate, initstate) -- cgit v1.2.3