Skip to content

Commit 2fe7a6d

Browse files
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 7f5b198. 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
1 parent 261cf89 commit 2fe7a6d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/interfaces/libpq/fe-connect.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ libpq_prng_init(PGconn *conn)
10451045

10461046
gettimeofday(&tval, NULL);
10471047

1048-
rseed = ((uint64) conn) ^
1048+
rseed = ((uintptr_t) conn) ^
10491049
((uint64) getpid()) ^
10501050
((uint64) tval.tv_usec) ^
10511051
((uint64) tval.tv_sec);

0 commit comments

Comments
 (0)