diff --git a/lib/cookies/helper.c b/lib/cookies/helper.c index 019b863dd40aaf241dbf001f8d01bd751c98c531..a1eb5130b0b2e2801c30c0be1f7975d426164f48 100644 --- a/lib/cookies/helper.c +++ b/lib/cookies/helper.c @@ -98,6 +98,9 @@ static int opt_rr_put_cookie_opt(knot_rrset_t *opt_rr, uint8_t *option, knot_mm_ uint16_t opt_len = knot_edns_opt_get_length(option); uint8_t *opt_data = knot_edns_opt_get_data(option); + if (!opt_data || opt_len == 0) { + return kr_error(EINVAL); + } return opt_rr_put_cookie(opt_rr, opt_data, opt_len, mm); } @@ -264,7 +267,9 @@ int kr_parse_cookie_opt(uint8_t *cookie_opt, struct knot_dns_cookies *cookies) const uint8_t *cookie_data = knot_edns_opt_get_data(cookie_opt); uint16_t cookie_len = knot_edns_opt_get_length(cookie_opt); - assert(cookie_data && cookie_len); + if (!cookie_data || cookie_len == 0) { + return kr_error(EINVAL); + } int ret = knot_edns_opt_cookie_parse(cookie_data, cookie_len, &cookies->cc, &cookies->cc_len,