postgres.git / summary / log / commit / refs
commit 48e4b8dc08ea7ec0cc7cd8e5001f8a29e1c0b987
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat Sep 03 20:17:34 2011 +0000
First released in: 9.2.0, 8.2.22, 8.3.16, 8.4.9, 9.0.5, 9.1.0
Fix typo in pg_srand48 (srand48 in older branches).
">" should be ">>". This typo results in failure to use all of the bits
of the provided seed.
This might rise to the level of a security bug if we were relying on
srand48 for any security-critical purposes, but we are not --- in fact,
it's not used at all unless the platform lacks srandom(), which is
improbable. Even on such a platform the exposure seems minimal.
Reported privately by Andres Freund.
src/port/erand48.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/port/erand48.c b/src/port/erand48.c
index 1c0eb467f6d..9d471197c35 100644
--- a/src/port/erand48.c
+++ b/src/port/erand48.c
@@ -96,7 +96,7 @@ pg_srand48(long seed)
{
_rand48_seed[0] = RAND48_SEED_0;
_rand48_seed[1] = (unsigned short) seed;
- _rand48_seed[2] = (unsigned short) (seed > 16);
+ _rand48_seed[2] = (unsigned short) (seed >> 16);
_rand48_mult[0] = RAND48_MULT_0;
_rand48_mult[1] = RAND48_MULT_1;
_rand48_mult[2] = RAND48_MULT_2;
[parent: b3aaf9081a1a]