diff options
author | Noah Misch <noah@leadboat.com> | 2024-08-22 00:07:04 -0700 |
---|---|---|
committer | Noah Misch <noah@leadboat.com> | 2024-08-22 00:07:09 -0700 |
commit | 6b1f78d90b5f2475d968e16febee8f9d43730d63 (patch) | |
tree | 9b2aa16f1d2dd7efafbf248ce0fe3949c44ee6a8 | |
parent | f636ab41aba215eaa3303e21a10f12d81357f1f6 (diff) | |
download | postgresql-6b1f78d90b5f2475d968e16febee8f9d43730d63.tar.gz postgresql-6b1f78d90b5f2475d968e16febee8f9d43730d63.zip |
Fix attach of a previously-detached injection point.
It's normal for the name in a free slot to match the new name. The
max_inuse mechanism kept simple cases from reaching the problem. The
problem could appear when index 0 was the previously-detached entry and
index 1 is in use. Back-patch to v17, where this code first appeared.
-rw-r--r-- | src/backend/utils/misc/injection_point.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/backend/utils/misc/injection_point.c b/src/backend/utils/misc/injection_point.c index ab327779902..1708acee71c 100644 --- a/src/backend/utils/misc/injection_point.c +++ b/src/backend/utils/misc/injection_point.c @@ -315,8 +315,7 @@ InjectionPointAttach(const char *name, if (free_idx == -1) free_idx = idx; } - - if (strcmp(entry->name, name) == 0) + else if (strcmp(entry->name, name) == 0) elog(ERROR, "injection point \"%s\" already defined", name); } if (free_idx == -1) |