aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2024-08-22 00:07:04 -0700
committerNoah Misch <noah@leadboat.com>2024-08-22 00:07:09 -0700
commit6b1f78d90b5f2475d968e16febee8f9d43730d63 (patch)
tree9b2aa16f1d2dd7efafbf248ce0fe3949c44ee6a8
parentf636ab41aba215eaa3303e21a10f12d81357f1f6 (diff)
downloadpostgresql-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.c3
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)