aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2024-02-22 19:59:58 +0900
committerMichael Paquier <michael@paquier.xyz>2024-02-22 19:59:58 +0900
commitefa70c15c742511195e2ee6f0aef94d0797daf80 (patch)
tree7d5c70ceea230f460fc24e2ed8901b194feb378c /src
parent93db6cbda037f1be9544932bd9a785dabf3ff712 (diff)
downloadpostgresql-efa70c15c742511195e2ee6f0aef94d0797daf80.tar.gz
postgresql-efa70c15c742511195e2ee6f0aef94d0797daf80.zip
Make GetSlotInvalidationCause() return RS_INVAL_NONE on unexpected input
943f7ae1c869 has changed GetSlotInvalidationCause() so as it would return the last element of SlotInvalidationCauses[] when an incorrect conflict reason name is given by a caller, but this should return RS_INVAL_NONE in such cases, even if such a state should never be reached in practice. Per gripe from Peter Smith. Reviewed-by: Bharath Rupireddy Discussion: https://postgr.es/m/CAHut+PtsrSWxczpGkSaSVtJo+BXrvJ3Hwp5gES14bbL-G+HL7A@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/slot.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index 033b4ce0971..0f173f63a28 100644
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -2327,6 +2327,7 @@ ReplicationSlotInvalidationCause
GetSlotInvalidationCause(const char *conflict_reason)
{
ReplicationSlotInvalidationCause cause;
+ ReplicationSlotInvalidationCause result = RS_INVAL_NONE;
bool found PG_USED_FOR_ASSERTS_ONLY = false;
Assert(conflict_reason);
@@ -2336,10 +2337,11 @@ GetSlotInvalidationCause(const char *conflict_reason)
if (strcmp(SlotInvalidationCauses[cause], conflict_reason) == 0)
{
found = true;
+ result = cause;
break;
}
}
Assert(found);
- return cause;
+ return result;
}