mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
netfilter pull request 25-03-13
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEjF9xRqF1emXiQiqU1w0aZmrPKyEFAmfSqyUACgkQ1w0aZmrP KyGocBAAu0+rdAcW1wwSYk53tRN663WpbbYg/AchJ9ilLH2IXdCzzbeuekRzvSmS /gS2WNANmckL314300RV5vTd9+PCbANjh1248O4S8ZQnhmomoiB3xD4QM9fu8HKZ RE+koHmnHESl+TiiUzgw31OtZEdSpjn7zUzm+qAznBeDXfyBE1YWQ9q8LALi0+3m RW/waYykwRktzHCANBYNF0oqt6siBrHnI9KHgXIfQCEK0mc3A/s8MfO1IJqC177Y It/+4a6qsaGZZsSwGCrQ/40CO3rItzF7jefpeAjv/di224EQ+p2sWZgEiLPCMtvk 6WSfYhKNiDnKGAe1u9hCG2RdaSQ8Og7BsBWFeB56gZbK7gPoFY2VCM/hATsBTYG8 bn8xQKFoA9y7dYp8AP6a33OlzV+/qOfJa2kXQ90yjS4yWnMY+q59j1D564z/WhZ9 gVZjrcUDSsv3ETtp7vk7s+0SoI3EvSLb/umcjHZR6oeLkNFWpQ4r9NqY0GX6+zDC 89YR2w/RbO9WMRb52OAqY3HdKmOflwEIN5mDWCAB4sIPUgCpoDzvIjC2xLdr6lUW ydoisH2B87luG0p7zKP7iGE1KIp8wm+zO+XciOrcjyie5YNMHyCFRbzGAsd47CLB UjNrrlAS0tU65Nb+JzsrZOYye2cghE+KC8fKHvpwjk54lsaPHl0= =OTtx -----END PGP SIGNATURE----- Merge tag 'nf-25-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf Pablo Neira Ayuso says: ==================== Netfilter/IPVS fixes for net The following patchset contains Netfilter/IPVS fixes for net: 1) Missing initialization of cpu and jiffies32 fields in conncount, from Kohei Enju. 2) Skip several tests in case kernel is tainted, otherwise tests bogusly report failure too as they also check for tainted kernel, from Florian Westphal. 3) Fix a hyphothetical integer overflow in do_ip_vs_get_ctl() leading to bogus error logs, from Dan Carpenter. 4) Fix incorrect offset in ipv4 option match in nft_exthdr, from Alexey Kashavkin. netfilter pull request 25-03-13 * tag 'nf-25-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf: netfilter: nft_exthdr: fix offset with ipv4_find_option() ipvs: prevent integer overflow in do_ip_vs_get_ctl() selftests: netfilter: skip br_netfilter queue tests if kernel is tainted netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree() ==================== Link: https://patch.msgid.link/20250313095636.2186-1-pablo@netfilter.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
commit
2409fa66e2
|
|
@ -3091,12 +3091,12 @@ do_ip_vs_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
|
|||
case IP_VS_SO_GET_SERVICES:
|
||||
{
|
||||
struct ip_vs_get_services *get;
|
||||
int size;
|
||||
size_t size;
|
||||
|
||||
get = (struct ip_vs_get_services *)arg;
|
||||
size = struct_size(get, entrytable, get->num_services);
|
||||
if (*len != size) {
|
||||
pr_err("length: %u != %u\n", *len, size);
|
||||
pr_err("length: %u != %zu\n", *len, size);
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
@ -3132,12 +3132,12 @@ do_ip_vs_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
|
|||
case IP_VS_SO_GET_DESTS:
|
||||
{
|
||||
struct ip_vs_get_dests *get;
|
||||
int size;
|
||||
size_t size;
|
||||
|
||||
get = (struct ip_vs_get_dests *)arg;
|
||||
size = struct_size(get, entrytable, get->num_dests);
|
||||
if (*len != size) {
|
||||
pr_err("length: %u != %u\n", *len, size);
|
||||
pr_err("length: %u != %zu\n", *len, size);
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -377,6 +377,8 @@ insert_tree(struct net *net,
|
|||
|
||||
conn->tuple = *tuple;
|
||||
conn->zone = *zone;
|
||||
conn->cpu = raw_smp_processor_id();
|
||||
conn->jiffies32 = (u32)jiffies;
|
||||
memcpy(rbconn->key, key, sizeof(u32) * data->keylen);
|
||||
|
||||
nf_conncount_list_init(&rbconn->list);
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ static int ipv4_find_option(struct net *net, struct sk_buff *skb,
|
|||
unsigned char optbuf[sizeof(struct ip_options) + 40];
|
||||
struct ip_options *opt = (struct ip_options *)optbuf;
|
||||
struct iphdr *iph, _iph;
|
||||
unsigned int start;
|
||||
bool found = false;
|
||||
__be32 info;
|
||||
int optlen;
|
||||
|
|
@ -93,7 +92,6 @@ static int ipv4_find_option(struct net *net, struct sk_buff *skb,
|
|||
iph = skb_header_pointer(skb, 0, sizeof(_iph), &_iph);
|
||||
if (!iph)
|
||||
return -EBADMSG;
|
||||
start = sizeof(struct iphdr);
|
||||
|
||||
optlen = iph->ihl * 4 - (int)sizeof(struct iphdr);
|
||||
if (optlen <= 0)
|
||||
|
|
@ -103,7 +101,7 @@ static int ipv4_find_option(struct net *net, struct sk_buff *skb,
|
|||
/* Copy the options since __ip_options_compile() modifies
|
||||
* the options.
|
||||
*/
|
||||
if (skb_copy_bits(skb, start, opt->__data, optlen))
|
||||
if (skb_copy_bits(skb, sizeof(struct iphdr), opt->__data, optlen))
|
||||
return -EBADMSG;
|
||||
opt->optlen = optlen;
|
||||
|
||||
|
|
@ -118,18 +116,18 @@ static int ipv4_find_option(struct net *net, struct sk_buff *skb,
|
|||
found = target == IPOPT_SSRR ? opt->is_strictroute :
|
||||
!opt->is_strictroute;
|
||||
if (found)
|
||||
*offset = opt->srr + start;
|
||||
*offset = opt->srr;
|
||||
break;
|
||||
case IPOPT_RR:
|
||||
if (!opt->rr)
|
||||
break;
|
||||
*offset = opt->rr + start;
|
||||
*offset = opt->rr;
|
||||
found = true;
|
||||
break;
|
||||
case IPOPT_RA:
|
||||
if (!opt->router_alert)
|
||||
break;
|
||||
*offset = opt->router_alert + start;
|
||||
*offset = opt->router_alert;
|
||||
found = true;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@ source lib.sh
|
|||
|
||||
checktool "nft --version" "run test without nft tool"
|
||||
|
||||
read t < /proc/sys/kernel/tainted
|
||||
if [ "$t" -ne 0 ];then
|
||||
echo SKIP: kernel is tainted
|
||||
exit $ksft_skip
|
||||
fi
|
||||
|
||||
cleanup() {
|
||||
cleanup_all_ns
|
||||
}
|
||||
|
|
@ -165,6 +171,7 @@ if [ "$t" -eq 0 ];then
|
|||
echo PASS: kernel not tainted
|
||||
else
|
||||
echo ERROR: kernel is tainted
|
||||
dmesg
|
||||
ret=1
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,12 @@ source lib.sh
|
|||
|
||||
checktool "nft --version" "run test without nft tool"
|
||||
|
||||
read t < /proc/sys/kernel/tainted
|
||||
if [ "$t" -ne 0 ];then
|
||||
echo SKIP: kernel is tainted
|
||||
exit $ksft_skip
|
||||
fi
|
||||
|
||||
cleanup() {
|
||||
cleanup_all_ns
|
||||
}
|
||||
|
|
@ -72,6 +78,7 @@ if [ "$t" -eq 0 ];then
|
|||
echo PASS: kernel not tainted
|
||||
else
|
||||
echo ERROR: kernel is tainted
|
||||
dmesg
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -593,6 +593,7 @@ EOF
|
|||
echo "PASS: queue program exiting while packets queued"
|
||||
else
|
||||
echo "TAINT: queue program exiting while packets queued"
|
||||
dmesg
|
||||
ret=1
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user