mbox series

[nft,v2,0/2] Fix evaluation of anonymous sets with concatenated ranges

Message ID cover.1590612113.git.sbrivio@redhat.com
Headers show
Series Fix evaluation of anonymous sets with concatenated ranges | expand

Message

Stefano Brivio May 27, 2020, 8:51 p.m. UTC
As reported by both Pablo and Phil, trying to add an anonymous set
containing a concatenated range would fail:

  # nft add rule x y ip saddr . tcp dport { 192.168.2.1 . 20-30 } accept
  BUG: invalid range expression type concat
  nft: expression.c:1160: range_expr_value_low: Assertion `0' failed.
  Aborted

  # nft add rule t c ip daddr . tcp dport '{ 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8 . 80-443 } accept'
  BUG: invalid range expression type concat
  nft: expression.c:1296: range_expr_value_low: Assertion `0' failed.

Patch 1/2 fixes this, and 2/2 enables a test for it in inet/sets.t.

v2: Don't add anonymous sets to cache, fix leak for object maps, and
    use existing test rule instead of adding a new test

Stefano Brivio (2):
  evaluate: Perform set evaluation on implicitly declared (anonymous)
    sets
  tests: py: Enable anonymous set rule with concatenated ranges in
    inet/sets.t

 src/evaluate.c                      | 20 ++++++++++----------
 tests/py/inet/sets.t                |  2 +-
 tests/py/inet/sets.t.payload.bridge | 14 ++++++++++++++
 tests/py/inet/sets.t.payload.inet   | 13 +++++++++++++
 tests/py/inet/sets.t.payload.netdev | 13 +++++++++++++
 5 files changed, 51 insertions(+), 11 deletions(-)

Comments

Pablo Neira Ayuso May 28, 2020, 12:09 a.m. UTC | #1
On Wed, May 27, 2020 at 10:51:20PM +0200, Stefano Brivio wrote:
> As reported by both Pablo and Phil, trying to add an anonymous set
> containing a concatenated range would fail:
> 
>   # nft add rule x y ip saddr . tcp dport { 192.168.2.1 . 20-30 } accept
>   BUG: invalid range expression type concat
>   nft: expression.c:1160: range_expr_value_low: Assertion `0' failed.
>   Aborted
> 
>   # nft add rule t c ip daddr . tcp dport '{ 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8 . 80-443 } accept'
>   BUG: invalid range expression type concat
>   nft: expression.c:1296: range_expr_value_low: Assertion `0' failed.
> 
> Patch 1/2 fixes this, and 2/2 enables a test for it in inet/sets.t.

Series applied, thanks Stefano.