Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 43cd30b

Browse files
committed
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
1 parent a0899c0 commit 43cd30b

File tree

1 file changed

+3
-3
lines changed
  • src/backend/utils/misc

1 file changed

+3
-3
lines changed

src/backend/utils/misc/guc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,10 +1289,10 @@ find_option(const char *name, bool create_placeholders, bool skip_errors,
12891289
static int
12901290
guc_var_compare(const void *a, const void *b)
12911291
{
1292-
const struct config_generic *confa = *(struct config_generic *const *) a;
1293-
const struct config_generic *confb = *(struct config_generic *const *) b;
1292+
const char *namea = **(const char ** const *) a;
1293+
const char *nameb = **(const char ** const *) b;
12941294

1295-
return guc_name_compare(confa->name, confb->name);
1295+
return guc_name_compare(namea, nameb);
12961296
}
12971297

12981298
/*

0 commit comments

Comments
 (0)