diff --git a/src/backend/utils/adt/bool.c b/src/backend/utils/adt/bool.c index 340607f..6e7368d 100644 --- a/src/backend/utils/adt/bool.c +++ b/src/backend/utils/adt/bool.c @@ -39,7 +39,7 @@ parse_bool_with_len(const char *value, size_t len, bool *result) { case 't': case 'T': - if (pg_strncasecmp(value, "true", len) == 0) + if (len == 1 || (len == 4 && pg_strncasecmp(value, "true", len) == 0)) { if (result) *result = true; @@ -48,7 +48,7 @@ parse_bool_with_len(const char *value, size_t len, bool *result) break; case 'f': case 'F': - if (pg_strncasecmp(value, "false", len) == 0) + if (len == 1 || (len == 5 && pg_strncasecmp(value, "false", len) == 0)) { if (result) *result = false; @@ -57,7 +57,7 @@ parse_bool_with_len(const char *value, size_t len, bool *result) break; case 'y': case 'Y': - if (pg_strncasecmp(value, "yes", len) == 0) + if (len == 1 || (len == 3 && pg_strncasecmp(value, "yes", len) == 0)) { if (result) *result = true;