diff --git a/src/backend/utils/adt/inet_net_pton.c b/src/backend/utils/adt/inet_net_pton.c
index 9064eaf64b0645b58ffc47c11b2386078213bf22..b8fa7d2bccf99d1d8d59f3e974f484d5429ebebd 100644
--- a/src/backend/utils/adt/inet_net_pton.c
+++ b/src/backend/utils/adt/inet_net_pton.c
@@ -496,7 +496,7 @@ inet_cidr_pton_ipv6(const char *src, u_char *dst, size_t size)
 			else if (*src == '\0')
 				goto enoent;
 			if (tp + NS_INT16SZ > endp)
-				return (0);
+				goto enoent;
 			*tp++ = (u_char) (val >> 8) & 0xff;
 			*tp++ = (u_char) val & 0xff;
 			saw_xdigit = 0;