]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Added tests for cookie length.
authorKarel Slany <karel.slany@nic.cz>
Mon, 25 Jul 2016 09:20:27 +0000 (11:20 +0200)
committerOndřej Surý <ondrej@sury.org>
Thu, 11 Aug 2016 12:06:45 +0000 (14:06 +0200)
lib/cookies/helper.c

index 019b863dd40aaf241dbf001f8d01bd751c98c531..a1eb5130b0b2e2801c30c0be1f7975d426164f48 100644 (file)
@@ -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,