Fix type confusion in guc_var_compare()
authorAndres Freund <andres@anarazel.de>
Mon, 15 Jul 2024 16:26:01 +0000 (09:26 -0700)
committerAndres Freund <andres@anarazel.de>
Mon, 15 Jul 2024 16:26:01 +0000 (09:26 -0700)
commit43cd30bcd1cd4f03bce207938f69a9dc190f1c48
tree30275beb582fbfed8b213830b9128d7f0cfdccfb
parenta0899c0a97d19b0c330ff885af4b78b3e7efb100
Fix type confusion in guc_var_compare()

Before this change guc_var_compare() cast the input arguments to
const struct config_generic *.  That's not quite right however, as the input
on one side is often just a char * on one side.

Instead just use char *, the first field in config_generic.

This fixes a -Warray-bounds warning with some versions of gcc. While the
warning is only known to be triggered for <= 15, the issue the warning points
out seems real, so apply the fix everywhere.

Author: Nazir Bilal Yavuz <byavuz81@gmail.com>
Reported-by: Erik Rijkers <er@xs4all.nl>
Suggested-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/a74a1a0d-0fd2-3649-5224-4f754e8f91aa%40xs4all.nl
src/backend/utils/misc/guc.c