Fix MarkGUCPrefixReserved() to check all options.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 6 Jul 2023 10:05:25 +0000 (13:05 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 6 Jul 2023 10:05:25 +0000 (13:05 +0300)
This bug was only present on v15. MarkGUCPrefixReserved() is new in
v15, and in v16, it was rewritten to use a hash table and the new
implementation did not have this bug.

Author: Karina Litskevich, Ekaterina Sokolova
Discussion: https://www.postgresql.org/message-id/CACiT8ibqyC=_g1n6FXyFJvFW0BEjAH3_5aGqUSFeEp8GpnVrhw@mail.gmail.com

src/backend/utils/misc/guc.c

index 915f557c688619599d53d2bdb19222c6dadc091a..c410ba532d2782bb8d68e01b941c9874ca2a1cd4 100644 (file)
@@ -9723,6 +9723,7 @@ MarkGUCPrefixReserved(const char *className)
            num_guc_variables--;
            memmove(&guc_variables[i], &guc_variables[i + 1],
                    (num_guc_variables - i) * sizeof(struct config_generic *));
+           i--;
        }
    }