explicit OP_EQ with non-singleton RHS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I noticed that trying to create a relational with OP_EQ explicitly
stated and a range expression on RHS makes nft segfault. A simple
example is:

| ip6 nexthdr == 33-44

The culprit seems to be that payload_expr_pctx_update() is called which
tries to export RHS value, but range expression comes with zero length
and invalid byte-order which gmp doesn't like.

The same happens with a set expression, BTW:

| ip6 nexthdr == {33, 44}

A simple fix (for range expression) would be to add 'goto range' to case
OP_EQ in expr_evaluate_relational() analogous to what's in case OP_NEQ.
Though I got curious as to why OP_RANGE is needed in the first place and
it seems like it isn't at all. At least netlink_gen_cmp() handles ranges
and sets on RHS correctly.

What netlink_gen_cmp() lacks, is proper treatment for lists on RHS
(which need OP_FLAGCMP), but that should be doable by adding a case for
EXPR_LIST.

So long story short, I want to eliminate OP_RANGE, OP_LOOKUP and
OP_FLAGCMP and make OP_IMPLICIT always resolve into OP_EQ.

What do you think, am I missing something?

Cheers, Phil
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux