]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
cache pkt: relax an assertion
authorVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 18 Jan 2018 11:50:33 +0000 (12:50 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 18 Jan 2018 11:50:33 +0000 (12:50 +0100)
I _think_ (pkt->parsed != pkt->size) didn't catch all KNOT_EMALF cases.

lib/cache/entry_pkt.c

index 44a363a83055317558a03b8335d8bd4a8d1cc92a..2491abd0780acf598fb14879b650c380b631efcd 100644 (file)
@@ -186,8 +186,9 @@ int answer_from_pkt(kr_layer_t *ctx, knot_pkt_t *pkt, uint16_t type,
        memcpy(pkt->wire, eh->data + 2, pkt_len);
        pkt->size = pkt_len;
        int ret = knot_pkt_parse(pkt, 0);
-       if (ret == KNOT_EFEWDATA) {
-               return kr_error(ENOENT); /* LATER(opt): avoid stashing such packets */
+       if (ret == KNOT_EFEWDATA || ret == KNOT_EMALF) {
+               return kr_error(ENOENT);
+               /* LATER(opt): try harder to avoid stashing such packets */
        }
        if (ret != KNOT_EOK) {
                assert(!ret);