mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Fix pointer cast for seed calculation on 32-bit systems
The fallback seed for when pg_strong_random cannot generate a high
quality seed mixes in the address of the conn object, but the cast
failed to take the word size into consideration. Fix by casting to
a uintptr_t instead. The seed calculation was added in 7f5b19817e
.
The code as it stood generated the following warning on mamba and
lapwing in the buildfarm:
fe-connect.c: In function 'libpq_prng_init':
fe-connect.c:1048:11: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
1048 | rseed = ((uint64) conn) ^
| ^
Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Discussion: https://postgr.es/m/TYAPR01MB58665250EDCD551CCA9AD117F58E9@TYAPR01MB5866.jpnprd01.prod.outlook.com
This commit is contained in:
@ -1045,7 +1045,7 @@ libpq_prng_init(PGconn *conn)
|
||||
|
||||
gettimeofday(&tval, NULL);
|
||||
|
||||
rseed = ((uint64) conn) ^
|
||||
rseed = ((uintptr_t) conn) ^
|
||||
((uint64) getpid()) ^
|
||||
((uint64) tval.tv_usec) ^
|
||||
((uint64) tval.tv_sec);
|
||||
|
Reference in New Issue
Block a user