Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be available on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
Bug 1738545 - nft: adding rule by index that references a set fails
Summary: nft: adding rule by index that references a set fails
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: nftables
Version: 8.1
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: rc
: 8.0
Assignee: Phil Sutter
QA Contact: Tomas Dolezal
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-08-07 12:25 UTC by Eric Garver
Modified: 2020-11-14 06:32 UTC (History)
2 users (show)

Fixed In Version: nftables-0.9.0-13.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-05 22:36:21 UTC
Type: Bug
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2019:3659 0 None None None 2019-11-05 22:36:34 UTC

Description Eric Garver 2019-08-07 12:25:04 UTC
If adding a rule using "index" and the rule references a named set, it will fail with "No such file or directory".

I used git bisect and found the first upstream version that works:

    eeda228c2d17 ("src: update cache if cmd is more specific")


-->8--

[root@rhel8-test1 tmp]# cat /tmp/foo-no-set.sh
#!/bin/sh
set -o errexit

nft delete table inet foobar || true
nft add table inet foobar

nft add chain inet foobar baroof
nft add rule inet foobar baroof ip saddr 10.1.1.0/24 accept
nft add rule inet foobar baroof index 0 ip6 saddr 1234::0/120 accept
[root@rhel8-test1 tmp]# sh /tmp/foo-no-set.sh
*no error*


[root@rhel8-test1 tmp]# cat /tmp/foo.sh
#!/bin/sh
set -o errexit

nft delete table inet foobar || true
nft add table inet foobar

nft add set inet foobar ipsetv4 { type ipv4_addr \; flags interval \; }
nft add set inet foobar ipsetv6 { type ipv6_addr \; flags interval \; }

nft add chain inet foobar baroof
nft add rule inet foobar baroof ip saddr @ipsetv4 accept
nft add rule inet foobar baroof index 0 ip6 saddr @ipsetv6 accept
[root@rhel8-test1 tmp]# sh /tmp/foo.sh
Error: Could not process rule: No such file or directory
add rule inet foobar baroof index 0 ip6 saddr @ipsetv6 accept
                            ^^^^^^^

Comment 12 errata-xmlrpc 2019-11-05 22:36:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:3659


Note You need to log in before you can comment on or make changes to this bug.