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:04 -0700 |
commit | a36aa223ec447276bf7050ab9ec6d974cafdf6c4 (patch) | |
tree | 8e9f7885151c2d555283bb0fe135da37e11136f5 /src/backend/utils/misc/injection_point.c | |
parent | 04158e7fa37c2dda9c3421ca922d02807b86df19 (diff) | |
download | postgresql-a36aa223ec447276bf7050ab9ec6d974cafdf6c4.tar.gz postgresql-a36aa223ec447276bf7050ab9ec6d974cafdf6c4.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.
Diffstat (limited to 'src/backend/utils/misc/injection_point.c')
-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 80bc32b0e08..7c1a7cf889d 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) |