diff --git a/lib/isc/url.c b/lib/isc/url.c index 6ba4cb4991..e6a3b830ee 100644 --- a/lib/isc/url.c +++ b/lib/isc/url.c @@ -549,8 +549,8 @@ isc_url_parse(const char *buf, size_t buflen, bool is_connect, int found_at = 0; const char *p = NULL; - if (buflen == 0) { - return ISC_R_FAILURE; + if (buflen == 0 || buflen > UINT16_MAX) { + return ISC_R_RANGE; } up->port = up->field_set = 0;