diff --git a/lib/cookies/cache.c b/lib/cookies/cache.c
index 51668e4206e81b75d54983e328bdf76886c624a6..5669e165ab4374c0df18f94df833a3b699c1edd9 100644
--- a/lib/cookies/cache.c
+++ b/lib/cookies/cache.c
@@ -59,7 +59,10 @@ int kr_cookie_lru_set(kr_cookie_lru_t *cache, const struct sockaddr *sa,
 		return kr_error(ENOMEM);
 	}
 
-	memcpy(cached->opt_data, opt, knot_edns_opt_get_length(opt));
+	uint16_t opt_size = KNOT_EDNS_OPTION_HDRLEN +
+	                    knot_edns_opt_get_length(opt);
+
+	memcpy(cached->opt_data, opt, opt_size);
 
 	return kr_ok();
 }