diff options
author | Andres Freund <andres@anarazel.de> | 2024-07-15 09:26:01 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2024-07-15 09:26:01 -0700 |
commit | 9b047cc0b2c22b667d5452124a381b33d5a9ff4a (patch) | |
tree | b8c96105b737aa7d9d712f14922175375cb2be20 | |
parent | 34f457e99a86845e7c1826686921f0daa6a02dfd (diff) | |
download | postgresql-9b047cc0b2c22b667d5452124a381b33d5a9ff4a.tar.gz postgresql-9b047cc0b2c22b667d5452124a381b33d5a9ff4a.zip |
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
-rw-r--r-- | src/backend/utils/misc/guc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 547cecde240..a043d529efa 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1289,10 +1289,10 @@ find_option(const char *name, bool create_placeholders, bool skip_errors, static int guc_var_compare(const void *a, const void *b) { - const struct config_generic *confa = *(struct config_generic *const *) a; - const struct config_generic *confb = *(struct config_generic *const *) b; + const char *namea = **(const char ** const *) a; + const char *nameb = **(const char ** const *) b; - return guc_name_compare(confa->name, confb->name); + return guc_name_compare(namea, nameb); } /* |