Stephen Suryaputra
666d1d1a05
netfilter: nf_tables: nft_exthdr: the presence return value should be little-endian
...
[ Upstream commit b428336676 ]
On big-endian machine, the returned register data when the exthdr is
present is not being compared correctly because little-endian is
assumed. The function nft_cmp_fast_mask(), called by nft_cmp_fast_eval()
and nft_cmp_fast_init(), calls cpu_to_le32().
The following dump also shows that little endian is assumed:
$ nft --debug=netlink add rule ip recordroute forward ip option rr exists counter
ip
[ exthdr load ipv4 1b @ 7 + 0 present => reg 1 ]
[ cmp eq reg 1 0x01000000 ]
[ counter pkts 0 bytes 0 ]
Lastly, debug print in nft_cmp_fast_init() and nft_cmp_fast_eval() when
RR option exists in the packet shows that the comparison fails because
the assumption:
nft_cmp_fast_init:189 priv->sreg=4 desc.len=8 mask=0xff000000 data.data[0]=0x10003e0
nft_cmp_fast_eval:57 regs->data[priv->sreg=4]=0x1 mask=0xff000000 priv->data=0x1000000
v2: use nft_reg_store8() instead (Florian Westphal). Also to avoid the
warnings reported by kernel test robot.
Fixes: dbb5281a1f ("netfilter: nf_tables: add support for matching IPv4 options")
Fixes: c078ca3b0c ("netfilter: nft_exthdr: Add support for existence check")
Signed-off-by: Stephen Suryaputra <ssuryaextr@gmail.com >
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-08-26 10:40:59 +02:00
..
2020-07-16 08:16:37 +02:00
2020-08-19 08:16:10 +02:00
2019-07-04 02:29:49 +02:00
2019-09-26 08:56:17 +02:00
2019-09-13 11:39:38 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2020-07-16 08:16:38 +02:00
2019-09-13 12:33:06 +02:00
2019-09-13 12:33:06 +02:00
2019-05-30 11:26:32 -07:00
2019-09-02 11:20:17 -07:00
2019-07-16 13:17:00 +02:00
2019-07-16 13:16:59 +02:00
2019-06-19 17:09:52 +02:00
2019-09-13 12:33:06 +02:00
2019-07-16 13:16:59 +02:00
2019-08-27 18:07:03 +02:00
2019-05-30 11:26:32 -07:00
2020-01-12 12:21:13 +01:00
2020-06-03 08:21:39 +02:00
2020-01-14 20:08:39 +01:00
2019-06-19 17:09:55 +02:00
2019-07-16 13:17:00 +02:00
2019-07-16 13:17:00 +02:00
2019-09-13 12:33:06 +02:00
2020-02-05 21:22:52 +00:00
2019-08-13 12:08:48 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 14:18:18 -07:00
2019-07-16 13:16:59 +02:00
2019-05-31 18:02:45 +02:00
2019-07-16 13:16:59 +02:00
2019-05-30 11:26:32 -07:00
2020-03-18 07:17:49 +01:00
2019-07-16 13:16:59 +02:00
2019-09-13 12:33:06 +02:00
2019-05-24 17:37:51 +02:00
2019-09-10 22:44:29 +02:00
2019-10-23 13:14:50 +02:00
2019-05-21 10:50:45 +02:00
2020-04-01 11:02:09 +02:00
2019-04-12 01:47:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-07-04 02:29:48 +02:00
2019-07-16 13:16:59 +02:00
2019-09-13 12:33:06 +02:00
2019-07-16 13:16:59 +02:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2019-04-11 20:59:34 +02:00
2020-05-14 07:58:29 +02:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2020-01-09 10:20:03 +01:00
2017-11-02 11:10:55 +01:00
2020-03-18 07:17:49 +01:00
2020-04-23 10:36:19 +02:00
2019-07-05 21:34:47 +02:00
2020-02-05 21:22:52 +00:00
2019-04-30 13:35:26 +02:00
2019-06-19 17:09:55 +02:00
2019-05-24 17:37:51 +02:00
2020-06-03 08:21:35 +02:00
2019-05-24 17:37:51 +02:00
2019-08-26 11:06:07 +02:00
2020-05-14 07:58:29 +02:00
2019-08-13 12:08:48 +02:00
2020-01-29 16:45:33 +01:00
2020-01-12 12:21:18 +01:00
2019-08-26 11:01:00 +02:00
2019-07-19 18:08:14 +02:00
2020-03-18 07:17:58 +01:00
2019-04-08 23:01:42 +02:00
2020-01-12 12:21:18 +01:00
2019-06-19 17:09:55 +02:00
2019-10-01 18:42:15 +02:00
2019-06-19 17:09:55 +02:00
2019-07-16 13:16:59 +02:00
2019-09-10 22:44:29 +02:00
2019-08-27 17:27:08 +02:00
2020-08-26 10:40:59 +02:00
2019-06-19 17:09:55 +02:00
2019-09-03 22:53:56 +02:00
2019-06-19 17:09:55 +02:00
2020-01-17 19:48:19 +01:00
2020-04-01 11:02:18 +02:00
2019-07-16 13:17:03 +02:00
2019-08-13 12:10:01 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-09-20 10:20:02 +02:00
2019-06-21 22:23:35 -07:00
2020-01-17 19:48:33 +01:00
2020-06-22 09:31:00 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:15 +02:00
2020-01-29 16:45:29 +01:00
2020-03-18 07:17:57 +01:00
2019-06-19 17:09:55 +02:00
2019-09-03 19:05:00 +02:00
2020-01-12 12:21:18 +01:00
2019-07-16 13:17:00 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-08-13 12:15:44 +02:00
2019-08-27 17:27:08 +02:00
2020-05-20 08:20:25 +02:00
2019-09-02 23:20:59 +02:00
2019-09-10 22:35:37 +02:00
2020-01-09 10:19:54 +01:00
2020-03-18 07:17:57 +01:00
2019-06-19 17:09:55 +02:00
2019-06-28 19:30:50 +02:00
2020-03-18 07:17:50 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2018-02-14 21:05:38 +01:00
2019-06-19 17:09:55 +02:00
2019-09-13 12:33:06 +02:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-03-21 08:11:46 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-08-13 12:08:48 +02:00
2019-05-30 11:26:32 -07:00
2019-06-25 01:32:59 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:38 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-08-19 09:34:21 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 11:28:45 +02:00
2019-06-25 01:32:59 +02:00
2019-09-13 12:32:48 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-03-18 07:17:49 +01:00
2019-06-19 17:09:55 +02:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-08-13 12:14:26 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:45 +02:00
2019-05-21 11:28:40 +02:00
2019-04-22 10:34:30 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00