]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/validate: fixed memory bug
authorMarek Vavrusa <marek@vavrusa.com>
Wed, 4 May 2016 00:17:53 +0000 (17:17 -0700)
committerMarek Vavrusa <marek@vavrusa.com>
Wed, 4 May 2016 00:17:53 +0000 (17:17 -0700)
this code used memory pool of source packet instead
of the answer, this could result in invalidated
memory read if the memory occupied by source
packet was rewritten

lib/layer/validate.c

index e7364ef9034758e108276ff71f2ff029287da7dd..bf5bafaf30c55d97d7bd1a8ea3d1995a58efd7d1 100644 (file)
@@ -484,7 +484,7 @@ static int validate(knot_layer_t *ctx, knot_pkt_t *pkt)
                const knot_pktsection_t *auth = knot_pkt_section(pkt, KNOT_AUTHORITY);
                for (unsigned i = 0; i < auth->count; ++i) {
                        const knot_rrset_t *rr = knot_pkt_rr(auth, i);
-                       kr_rrarray_add(&req->authority, rr, &pkt->mm);
+                       kr_rrarray_add(&req->authority, rr, &req->answer->mm);
                }
        }