aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-09-03 16:17:57 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-09-03 16:17:57 -0400
commit95e04d3a32dee0069f4b8040d002fce6f0b3154b (patch)
treee57a8c033e66bc772060769daff3fc9ec8844751
parent97464012a0347d7b4456a6b9401f5897522542ee (diff)
downloadpostgresql-95e04d3a32dee0069f4b8040d002fce6f0b3154b.tar.gz
postgresql-95e04d3a32dee0069f4b8040d002fce6f0b3154b.zip
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.
-rw-r--r--src/port/rand.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/port/rand.c b/src/port/rand.c
index b4631299e99..317a3eaeccb 100644
--- a/src/port/rand.c
+++ b/src/port/rand.c
@@ -71,7 +71,7 @@ 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;