]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
layer/iterate: treat rrset->additional as pointer to uint8_t instead of uintptr_t
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Mon, 3 Apr 2017 11:19:15 +0000 (13:19 +0200)
committerGrigorii Demidov <grigorii.demidov@nic.cz>
Mon, 3 Apr 2017 11:19:15 +0000 (13:19 +0200)
lib/layer/iterate.c

index 0796b41a6490a461c522bc79408c89216dfcd14c..bfddbb23232fec5ff91eb7cbe9b44b37455f0c28 100644 (file)
@@ -296,10 +296,11 @@ static inline uint8_t get_initial_rank(const knot_rrset_t *rr,
                                       const struct kr_query *qry, bool answer)
 {
        const uint32_t qflags = qry->flags;
-       uintptr_t rank = (uintptr_t)rr->additional;
-       assert((((qflags & QUERY_CACHED) == 0) && (rr->additional == NULL)) ||
-              (rank <= KR_RANK_SECURE));
-       if (((qflags & QUERY_CACHED) == 0) && answer) {
+       uint8_t rank = 0;
+       if (qflags & QUERY_CACHED) {
+               assert(rr->additional);
+               rank = *(uint8_t *)rr->additional;
+       } else if (answer) {
                rank |= KR_RANK_AUTH;
        }
        return (uint8_t)rank;