From 942e20012a449ab62185f69049601f8a0a9b4392 Mon Sep 17 00:00:00 2001 From: file Date: Tue, 27 Nov 2007 17:01:19 +0000 Subject: Ensure the value returned from ast_random is between 0 and RAND_MAX on 64-bit platforms. (closes issue #11348) Reported by: sperreault git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89637 f38db490-d61c-443f-a65b-d21fe96a405b --- main/utils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'main/utils.c') diff --git a/main/utils.c b/main/utils.c index d40a74939..5d6466175 100644 --- a/main/utils.c +++ b/main/utils.c @@ -1139,8 +1139,10 @@ long int ast_random(void) if (dev_urandom_fd >= 0) { int read_res = read(dev_urandom_fd, &res, sizeof(res)); if (read_res > 0) { + long int rm = RAND_MAX; res = res < 0 ? ~res : res; - return res; + rm++; + return res % rm; } } #endif -- cgit v1.2.3