Commit 8d738c1
committed
netfilter: nf_tables: fix set size with rbtree backend
The existing rbtree implementation uses singleton elements to represent
ranges, however, userspace provides a set size according to the number
of ranges in the set.
Adjust provided userspace set size to the number of singleton elements
in the kernel by multiplying the range by two.
Check if the no-match all-zero element is already in the set, in such
case release one slot in the set size.
Fixes: 0ed6389 ("netfilter: nf_tables: rename set implementations")
Signed-off-by: Pablo Neira Ayuso <[email protected]>1 parent 9c7ad35 commit 8d738c1
File tree
3 files changed
+96
-2
lines changed- include/net/netfilter
- net/netfilter
3 files changed
+96
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
442 | 442 | | |
443 | 443 | | |
444 | 444 | | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
445 | 448 | | |
446 | 449 | | |
447 | 450 | | |
| |||
495 | 498 | | |
496 | 499 | | |
497 | 500 | | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
498 | 504 | | |
499 | 505 | | |
500 | 506 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4752 | 4752 | | |
4753 | 4753 | | |
4754 | 4754 | | |
| 4755 | + | |
| 4756 | + | |
| 4757 | + | |
| 4758 | + | |
| 4759 | + | |
| 4760 | + | |
| 4761 | + | |
| 4762 | + | |
4755 | 4763 | | |
4756 | 4764 | | |
4757 | 4765 | | |
| |||
4822 | 4830 | | |
4823 | 4831 | | |
4824 | 4832 | | |
4825 | | - | |
| 4833 | + | |
| 4834 | + | |
4826 | 4835 | | |
4827 | 4836 | | |
4828 | 4837 | | |
| |||
5190 | 5199 | | |
5191 | 5200 | | |
5192 | 5201 | | |
| 5202 | + | |
| 5203 | + | |
| 5204 | + | |
| 5205 | + | |
| 5206 | + | |
| 5207 | + | |
| 5208 | + | |
| 5209 | + | |
| 5210 | + | |
5193 | 5211 | | |
5194 | 5212 | | |
5195 | 5213 | | |
| |||
5372 | 5390 | | |
5373 | 5391 | | |
5374 | 5392 | | |
| 5393 | + | |
| 5394 | + | |
| 5395 | + | |
5375 | 5396 | | |
5376 | 5397 | | |
5377 | 5398 | | |
| |||
5394 | 5415 | | |
5395 | 5416 | | |
5396 | 5417 | | |
| 5418 | + | |
| 5419 | + | |
| 5420 | + | |
5397 | 5421 | | |
5398 | 5422 | | |
5399 | 5423 | | |
| |||
7050 | 7074 | | |
7051 | 7075 | | |
7052 | 7076 | | |
| 7077 | + | |
| 7078 | + | |
| 7079 | + | |
| 7080 | + | |
| 7081 | + | |
| 7082 | + | |
| 7083 | + | |
| 7084 | + | |
| 7085 | + | |
| 7086 | + | |
| 7087 | + | |
| 7088 | + | |
| 7089 | + | |
| 7090 | + | |
| 7091 | + | |
| 7092 | + | |
| 7093 | + | |
| 7094 | + | |
| 7095 | + | |
| 7096 | + | |
| 7097 | + | |
7053 | 7098 | | |
7054 | 7099 | | |
7055 | 7100 | | |
| |||
7422 | 7467 | | |
7423 | 7468 | | |
7424 | 7469 | | |
7425 | | - | |
| 7470 | + | |
7426 | 7471 | | |
7427 | 7472 | | |
7428 | 7473 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
750 | 750 | | |
751 | 751 | | |
752 | 752 | | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
753 | 793 | | |
754 | 794 | | |
755 | 795 | | |
| |||
768 | 808 | | |
769 | 809 | | |
770 | 810 | | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
771 | 814 | | |
772 | 815 | | |
0 commit comments