Fix pointer cast for seed calculation on 32-bit systems
authorDaniel Gustafsson <dgustafsson@postgresql.org>
Thu, 30 Mar 2023 08:53:15 +0000 (10:53 +0200)
committerDaniel Gustafsson <dgustafsson@postgresql.org>
Thu, 30 Mar 2023 08:53:15 +0000 (10:53 +0200)
commit2fe7a6df94e69a20c57f71a0592133684cf612da
tree31efb4dd541357a30c965c3dba4d9c39eb4997e0
parent261cf8962b8ce92ce62c47148bd72a2c2e3351b0
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
src/interfaces/libpq/fe-connect.c