Patrick McHardy
b855d416dc
netfilter: nf_tables: fix nft_cmp_fast failure on big endian for size < 4
...
nft_cmp_fast is used for equality comparisions of size <= 4. For
comparisions of size < 4 byte a mask is calculated that is applied to
both the data from userspace (during initialization) and the register
value (during runtime). Both values are stored using (in effect) memcpy
to a memory area that is then interpreted as u32 by nft_cmp_fast.
This works fine on little endian since smaller types have the same base
address, however on big endian this is not true and the smaller types
are interpreted as a big number with trailing zero bytes.
The mask therefore must not include the lower bytes, but the higher bytes
on big endian. Add a helper function that does a cpu_to_le32 to switch
the bytes on big endian. Since we're dealing with a mask of just consequitive
bits, this works out fine.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2014-04-14 10:38:02 +02:00
..
2014-03-13 14:13:19 +01:00
2014-03-17 15:06:24 -04:00
2013-10-14 11:29:31 +02:00
2014-02-06 09:44:18 +01:00
2014-02-06 09:44:18 +01:00
2013-11-03 21:48:49 +01:00
2013-04-18 20:27:55 +02:00
2014-04-14 10:35:28 +02:00
2013-04-18 20:27:55 +02:00
2014-03-07 11:41:01 +01:00
2012-06-16 15:08:49 +02:00
2013-05-27 13:32:43 +02:00
2014-03-07 11:41:01 +01:00
2014-03-07 11:41:13 +01:00
2013-04-18 20:27:55 +02:00
2013-07-31 16:39:18 +02:00
2014-03-17 15:06:24 -04:00
2014-04-08 10:56:12 +02:00
2014-01-06 17:40:02 +01:00
2012-07-04 19:37:22 +02:00
2014-04-08 10:56:12 +02:00
2013-04-18 20:27:55 +02:00
2013-08-28 00:27:54 +02:00
2013-04-18 20:27:55 +02:00
2013-04-05 20:12:54 +02:00
2014-01-03 23:41:37 +01:00
2013-02-19 02:48:05 +01:00
2014-01-06 14:23:17 +01:00
2014-03-07 11:41:01 +01:00
2013-01-18 00:28:18 +01:00
2013-06-13 02:36:09 -07:00
2013-04-18 20:27:55 +02:00
2013-01-23 12:56:02 +01:00
2013-12-20 14:58:29 +01:00
2013-10-19 19:12:11 -04:00
2013-06-13 02:36:09 -07:00
2013-04-18 20:27:55 +02:00
2014-02-18 00:13:51 +01:00
2013-02-19 02:48:05 +01:00
2013-08-28 00:26:48 +02:00
2014-01-06 14:17:17 +01:00
2014-01-03 23:41:26 +01:00
2012-08-30 03:00:14 +02:00
2013-07-27 20:07:15 -07:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2012-08-30 03:00:14 +02:00
2013-10-01 12:47:09 +02:00
2013-02-19 02:48:05 +01:00
2013-04-29 20:09:05 +02:00
2014-02-05 17:46:06 +01:00
2014-04-03 23:52:50 +02:00
2014-04-14 10:38:02 +02:00
2014-01-09 23:25:48 +01:00
2013-06-05 12:36:36 +02:00
2013-06-20 11:20:13 +02:00
2013-10-01 13:17:39 +02:00
2014-02-25 11:30:01 +01:00
2014-03-27 15:29:38 -04:00
2013-08-28 00:26:48 +02:00
2014-02-25 11:29:21 +01:00
2013-10-14 17:16:08 +02:00
2013-10-14 17:16:08 +02:00
2014-04-14 10:38:02 +02:00
2014-03-08 12:35:17 +01:00
2013-10-14 17:16:08 +02:00
2014-03-08 12:35:19 +01:00
2013-10-14 17:16:08 +02:00
2013-12-20 11:25:10 +01:00
2014-03-18 23:12:02 -04:00
2014-03-08 12:35:17 +01:00
2013-10-14 17:16:08 +02:00
2014-03-08 12:35:17 +01:00
2014-03-08 12:35:18 +01:00
2014-02-14 11:37:34 +01:00
2014-03-08 12:35:19 +01:00
2014-02-17 11:21:17 +01:00
2014-02-06 11:41:38 +01:00
2014-02-07 14:22:06 +01:00
2014-02-14 11:37:33 +01:00
2014-02-06 09:44:10 +01:00
2013-10-22 10:11:29 +02:00
2013-07-31 16:36:25 +02:00
2014-03-13 14:13:19 +01:00
2013-01-21 12:20:19 +01:00
2014-04-03 23:52:17 +02:00
2013-11-03 21:48:49 +01:00
2013-01-18 00:28:15 +01:00
2014-04-03 23:52:13 +02:00
2013-12-06 12:37:57 -05:00
2013-04-18 20:27:55 +02:00
2014-02-05 17:46:06 +01:00
2014-01-06 14:00:55 +01:00
2012-11-09 17:05:07 -08:00
2014-02-19 11:41:25 +01:00
2012-09-28 11:34:33 +09:00
2014-01-09 21:36:39 +01:00
2013-04-18 20:27:55 +02:00
2013-05-29 12:29:18 +02:00
2012-05-09 20:49:18 -04:00
2012-10-15 13:39:12 +02:00
2012-09-21 12:11:08 +02:00
2013-05-15 14:11:07 +02:00
2013-12-07 23:20:45 +01:00
2014-04-03 23:52:22 +02:00
2012-08-14 21:55:30 -07:00
2013-06-11 02:51:03 -07:00
2014-01-06 14:00:55 +01:00
2014-01-06 14:00:55 +01:00
2012-09-21 12:12:05 +02:00
2013-11-15 16:47:22 -08:00
2013-10-17 10:27:25 +02:00
2014-01-14 15:15:25 -08:00
2013-09-27 16:18:23 +02:00
2013-08-01 11:45:15 +02:00
2013-05-28 13:11:01 -07:00
2012-09-24 14:29:01 +02:00
2013-10-09 00:01:25 -04:00