[kselftest UNSTABLE] mptcp/export 2ac757e415 ("net: ethernet: ti: fix return value check in k3_cppi_desc_pool_create_name()")
by kernel test robot
LINUX COMMIT
============
commit : 2ac757e4152e3322a04a6dfb3d1fa010d3521abf
subject: net: ethernet: ti: fix return value check in k3_cppi_desc_pool_create_name()
date : 2020-04-28 04:27:59 +0800
author : Wei Yongjun <weiyongjun1(a)huawei.com>
Test status of 2ac757e4152e3322a04a6dfb3d1fa010d3521abf (compared to v5.6)
==========================================================================
+-------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
| | pass | fail | unstable | skip | - | regression | fix |
| kselftests-bpf/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 44 | 4 | | 3 | | | |
| kselftests-net-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 34 | 7 | | 1 | | | |
| kselftests-mptcp/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 3 | | | | | | |
| kselftests-cpufreq-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 1 | | | | | | |
| kselftests-kvm-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 20 | | | 1 | | | |
+-------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
Fails
=====
kselftests-bpf/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.bpf.test_progs.fail
- kernel-selftests.bpf.test_align.fail
- kernel-selftests.bpf.test_sysctl.fail
- kernel-selftests.bpf.test_progs-no_alu32.fail
kselftests-net-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.net.fib_tests.sh.fail
- kernel-selftests.net.test_vxlan_under_vrf.sh.fail
- kernel-selftests.net.fib_nexthop_multiprefix.sh.fail
- kernel-selftests.net.altnames.sh.fail
- kernel-selftests.net.icmp_redirect.sh.fail
- kernel-selftests.net.txtimestamp.sh.fail
- kernel-selftests.net.vrf-xfrm-tests.sh.fail
2 years, 1 month
[RFC PATCH 0/5] mptcp: more incoming option fixes
by Paolo Abeni
This is a very early RFC showcasing the fix discussed in yday mtg - the
first 3 patches. It contains also fix/warkaround for the last warn() I'm
able to hit with syzbot repro provided by Christoph.
With this series and https://marc.info/?l=linux-netdev&m=158772695009150&w=2
on top of -net I haven't hit any of the 'known' oops/warn so far, but
I'm hitting a WARN_ONCE("Bad mapping: "...) I'm unsure it's
introduced here or not.
Paolo Abeni (5):
mptcp: add and use wrappers to manipulate mptcp opt flags
mptcp: use a single sub_option field in mptcp_incoming_option
tcp: init MPTCP option before parsing.
mptcp: avoid a WARN on bad input.
mptcp: fix 'use_ack' option access.
include/linux/tcp.h | 27 +++++++++-----------
net/ipv4/tcp_input.c | 1 +
net/mptcp/options.c | 41 +++++++++++++++---------------
net/mptcp/protocol.c | 2 +-
net/mptcp/protocol.h | 60 ++++++++++++++++++++++++++++++++++++++++++++
net/mptcp/subflow.c | 23 ++++++++---------
6 files changed, 105 insertions(+), 49 deletions(-)
--
2.21.1
2 years, 1 month
[PATCH net] mptcp: fix race in msk status update
by Paolo Abeni
Currently subflow_finish_connect() changes unconditionally
any msk socket status other than TCP_ESTABLISHED.
If an unblocking connect() races with close(), we can end-up
triggering:
IPv4: Attempt to release TCP socket in state 1 00000000e32b8b7e
when the msk socket is disposed.
Be sure to enter the established status only from SYN_SENT.
Fixes: c3c123d16c0e ("net: mptcp: don't hang in mptcp_sendmsg() after TCP fallback")
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
Note: the issue is possibly older, but this fix applies only
on the mentioned commit
---
net/mptcp/subflow.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 87c094702d63..2488e011048c 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -225,7 +225,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
subflow->icsk_af_ops->sk_rx_dst_set(sk, skb);
- if (inet_sk_state_load(parent) != TCP_ESTABLISHED) {
+ if (inet_sk_state_load(parent) == TCP_SYN_SENT) {
inet_sk_state_store(parent, TCP_ESTABLISHED);
parent->sk_state_change(parent);
}
--
2.21.1
2 years, 2 months
[mptcp:export] BUILD REGRESSION 63f83c673fdef4d111c74530abf056c9db3a6465
by kbuild test robot
tree/branch: https://github.com/multipath-tcp/mptcp_net-next.git export
branch HEAD: 63f83c673fdef4d111c74530abf056c9db3a6465 tcp: mptcp: use mptcp receive buffer space to select rcv window
Error/Warning in current branch:
arm-linux-gnueabi-ld: section .data VMA [0000000040008000,0000000040108d27] overlaps section .modinfo VMA [000000003fffe486,000000004004745a]
arm-linux-gnueabi-ld: section __ksymtab VMA [000000004004745c,0000000040056f9b] overlaps section .data VMA [0000000040008000,0000000040108d27]
h8300-linux-ld: section .data VMA [0000000000400000,0000000000462d7f] overlaps section .text VMA [0000000000000158,000000000078e567]
h8300-linux-ld: section .init.text LMA [0000000000462d80,0000000000495e37] overlaps section .text LMA [0000000000000158,000000000078e567]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm-randconfig-a001-20200425
| |-- arm-linux-gnueabi-ld:section-.data-VMA-00000000400080000040108d27-overlaps-section-.modinfo-VMA-000000003fffe000004004745a
| `-- arm-linux-gnueabi-ld:section-__ksymtab-VMA-000000004004745c-0000000040056f9b-overlaps-section-.data-VMA-00000000400080000040108d27
`-- h8300-randconfig-a001-20200425
|-- h8300-linux-ld:section-.data-VMA-00000000004000000000462d7f-overlaps-section-.text-VMA-0000000000000000000078e567
`-- h8300-linux-ld:section-.init.text-LMA-0000000000462d0000000495e37-overlaps-section-.text-LMA-0000000000000000000078e567
elapsed time: 1442m
configs tested: 183
configs skipped: 0
arm efm32_defconfig
arm at91_dt_defconfig
arm shmobile_defconfig
arm64 defconfig
arm exynos_defconfig
arm multi_v5_defconfig
arm sunxi_defconfig
arm multi_v7_defconfig
arm64 allyesconfig
arm64 allmodconfig
arm allmodconfig
arm64 allnoconfig
arm allnoconfig
arm allyesconfig
sparc allyesconfig
arc allyesconfig
m68k m5475evb_defconfig
sh sh7785lcr_32bit_defconfig
um x86_64_defconfig
mips ip32_defconfig
h8300 h8s-sim_defconfig
riscv nommu_virt_defconfig
ia64 allnoconfig
c6x evmc6678_defconfig
mips allnoconfig
s390 allnoconfig
ia64 tiger_defconfig
riscv rv32_defconfig
riscv allyesconfig
xtensa common_defconfig
powerpc defconfig
ia64 defconfig
nds32 allnoconfig
nios2 10m50_defconfig
powerpc ppc64_defconfig
riscv allnoconfig
parisc allyesconfig
ia64 allyesconfig
parisc allnoconfig
i386 allnoconfig
i386 allyesconfig
i386 alldefconfig
i386 defconfig
i386 debian-10.3
ia64 allmodconfig
ia64 generic_defconfig
ia64 bigsur_defconfig
ia64 alldefconfig
nios2 3c120_defconfig
xtensa iss_defconfig
c6x allyesconfig
openrisc simple_smp_defconfig
openrisc or1ksim_defconfig
nds32 defconfig
csky defconfig
alpha defconfig
h8300 edosk2674_defconfig
m68k allmodconfig
h8300 h8300h-sim_defconfig
m68k sun3_defconfig
m68k multi_defconfig
arc defconfig
powerpc rhel-kconfig
microblaze mmu_defconfig
microblaze nommu_defconfig
powerpc allnoconfig
mips fuloong2e_defconfig
mips malta_kvm_defconfig
mips ar7_defconfig
mips allyesconfig
mips 64r6el_defconfig
mips 32r2_defconfig
mips allmodconfig
mips malta_kvm_guest_defconfig
mips tb0287_defconfig
mips capcella_defconfig
mips decstation_64_defconfig
mips loongson3_defconfig
mips ath79_defconfig
mips bcm63xx_defconfig
parisc generic-64bit_defconfig
parisc generic-32bit_defconfig
parisc allmodconfig
parisc randconfig-a001-20200426
mips randconfig-a001-20200426
alpha randconfig-a001-20200426
m68k randconfig-a001-20200426
nds32 randconfig-a001-20200426
riscv randconfig-a001-20200426
nios2 randconfig-a001-20200424
c6x randconfig-a001-20200424
h8300 randconfig-a001-20200424
sparc64 randconfig-a001-20200424
microblaze randconfig-a001-20200424
nios2 randconfig-a001-20200426
c6x randconfig-a001-20200426
h8300 randconfig-a001-20200426
sparc64 randconfig-a001-20200426
microblaze randconfig-a001-20200426
nios2 randconfig-a001-20200425
c6x randconfig-a001-20200425
h8300 randconfig-a001-20200425
sparc64 randconfig-a001-20200425
microblaze randconfig-a001-20200425
sh randconfig-a001-20200426
csky randconfig-a001-20200426
s390 randconfig-a001-20200426
xtensa randconfig-a001-20200426
openrisc randconfig-a001-20200426
sh randconfig-a001-20200424
csky randconfig-a001-20200424
s390 randconfig-a001-20200424
xtensa randconfig-a001-20200424
openrisc randconfig-a001-20200424
x86_64 randconfig-a001-20200426
i386 randconfig-a003-20200426
x86_64 randconfig-a003-20200426
i386 randconfig-a002-20200426
i386 randconfig-a001-20200426
x86_64 randconfig-a002-20200426
i386 randconfig-c002-20200426
i386 randconfig-c001-20200426
x86_64 randconfig-c002-20200426
i386 randconfig-c003-20200426
i386 randconfig-a003-20200425
x86_64 randconfig-a001-20200425
x86_64 randconfig-a003-20200425
i386 randconfig-a001-20200425
i386 randconfig-a002-20200425
x86_64 randconfig-a001-20200424
i386 randconfig-a003-20200424
x86_64 randconfig-a003-20200424
i386 randconfig-a002-20200424
i386 randconfig-a001-20200424
x86_64 randconfig-a002-20200424
i386 randconfig-h003-20200426
x86_64 randconfig-h001-20200426
x86_64 randconfig-h003-20200426
x86_64 randconfig-h002-20200426
i386 randconfig-h001-20200426
i386 randconfig-h002-20200426
sparc randconfig-a001-20200426
ia64 randconfig-a001-20200426
powerpc randconfig-a001-20200426
arm randconfig-a001-20200426
arm64 randconfig-a001-20200426
arc randconfig-a001-20200426
sparc randconfig-a001-20200425
ia64 randconfig-a001-20200425
powerpc randconfig-a001-20200425
arm randconfig-a001-20200425
arc randconfig-a001-20200425
sparc randconfig-a001-20200424
ia64 randconfig-a001-20200424
powerpc randconfig-a001-20200424
arm64 randconfig-a001-20200424
arc randconfig-a001-20200424
riscv defconfig
riscv allmodconfig
s390 zfcpdump_defconfig
s390 debug_defconfig
s390 allyesconfig
s390 allmodconfig
s390 alldefconfig
s390 defconfig
sh rsk7269_defconfig
sh allmodconfig
sh titan_defconfig
sh allnoconfig
sparc defconfig
sparc64 defconfig
sparc64 allnoconfig
sparc64 allyesconfig
sparc64 allmodconfig
um i386_defconfig
um defconfig
x86_64 rhel
x86_64 lkp
x86_64 fedora-25
x86_64 kexec
x86_64 rhel-7.2-clear
x86_64 rhel-7.6-kselftests
x86_64 rhel-7.6
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[kselftest UNSTABLE] mptcp/export 63f83c673f ("tcp: mptcp: use mptcp receive buffer space to select rcv window")
by kernel test robot
LINUX COMMIT
============
commit : 63f83c673fdef4d111c74530abf056c9db3a6465
subject: tcp: mptcp: use mptcp receive buffer space to select rcv window
date : 2020-04-25 09:08:36 +0800
author : Florian Westphal <fw(a)strlen.de>
Test status of 63f83c673fdef4d111c74530abf056c9db3a6465 (compared to v5.6)
==========================================================================
+-------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
| | pass | fail | unstable | skip | - | regression | fix |
| kselftests-bpf/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 41 | 7 | | 3 | | | |
| kselftests-net-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 34 | 7 | | 1 | | | |
| kselftests-mptcp/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 3 | | | | | | |
| kselftests-cpufreq-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 1 | | | | | | |
| kselftests-kvm-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests | 20 | | | 1 | | | |
+-------------------------------------------------------------------------------------------------+------+------+----------+------+---+------------+-----+
Fails
=====
kselftests-bpf/vm-snb/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.bpf.test_progs.fail
- kernel-selftests.bpf.test_align.fail
- kernel-selftests.bpf.test_tcpbpf_user.fail
- kernel-selftests.bpf.test_btf.fail
- kernel-selftests.bpf.test_sysctl.fail
- kernel-selftests.bpf.test_progs-no_alu32.fail
- kernel-selftests.bpf.test_lwt_ip_encap.sh.fail
kselftests-net-ucode=0xd6/lkp-skl-d01/debian-x86_64-20191114.cgz/x86_64-rhel-7.6-kselftests
---
- kernel-selftests.net.fib_tests.sh.fail
- kernel-selftests.net.test_vxlan_under_vrf.sh.fail
- kernel-selftests.net.fib_nexthop_multiprefix.sh.fail
- kernel-selftests.net.altnames.sh.fail
- kernel-selftests.net.icmp_redirect.sh.fail
- kernel-selftests.net.txtimestamp.sh.fail
- kernel-selftests.net.vrf-xfrm-tests.sh.fail
2 years, 2 months
[PATCH V3 -next] mptcp/pm_netlink.c : add check for nla_put_in/6_addr
by Bo YU
Normal there should be checked for nla_put_in6_addr like other
usage in net.
Detected by CoverityScan, CID# 1461639
Fixes: 01cacb00b35c("mptcp: add netlink-based PM")
Signed-off-by: Bo YU <tsu.yubo(a)gmail.com>
---
V3: fix code style, thanks for Paolo
V2: Add check for nla_put_in_addr suggested by Paolo Abeni
---
net/mptcp/pm_netlink.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index 86d61ab34c7c..b78edf237ba0 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -599,12 +599,14 @@ static int mptcp_nl_fill_addr(struct sk_buff *skb,
nla_put_s32(skb, MPTCP_PM_ADDR_ATTR_IF_IDX, entry->ifindex))
goto nla_put_failure;
- if (addr->family == AF_INET)
- nla_put_in_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR4,
- addr->addr.s_addr);
+ if (addr->family == AF_INET &&
+ nla_put_in_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR4,
+ addr->addr.s_addr))
+ goto nla_put_failure;
#if IS_ENABLED(CONFIG_MPTCP_IPV6)
- else if (addr->family == AF_INET6)
- nla_put_in6_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR6, &addr->addr6);
+ else if (addr->family == AF_INET6 &&
+ nla_put_in6_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR6, &addr->addr6))
+ goto nla_put_failure;
#endif
nla_nest_end(skb, attr);
return 0;
--
2.11.0
2 years, 2 months
[Weekly meetings] MoM - 23rd of April 2020
by Matthieu Baerts
Hello,
We just had our 96th meeting with Mat and Ossama (Intel OTC), Christoph
(Apple), Paolo, Davide and Florian (RedHat) and myself (Tessares).
Thanks again for this new good meeting!
Here are the minutes of the meeting:
Accepted patches:
- The list of accepted patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=3
netdev (if mptcp ML is in cc) (by: Florian Westphal, Paolo Abeni):
1273464: new: mptcp: handle mptcp listener destruction via rcu
1273466: new: mptcp: avoid flipping mp_capable field in syn_recv_sock()
1273465: new: mptcp: drop req socket remote_key* fields:
- Applied by Davem and last one queued to stable
1275277: New: [net] mptcp: fix data_fin handing in RX path:
- Applied by Davem and queued to stable
our repo (by: /):
/
Pending patches:
- The list of pending patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=*
netdev (if mptcp ML is in cc) (by: Paolo Abeni, Davide Caratti, Bo YU):
1275770: new: [iproute2-next,1/4] uapi: update linux/mptcp.h
1275771: new: [iproute2-next,2/4] add support for mptcp netlink interfac
1275773: new: [iproute2-next,3/4] ss: allow dumping MPTCP subflow inform
1275772: new: [iproute2-next,4/4] man: mptcp man page:
- IPRoute2 patches, reviewed internally and now upstreamed
1275495 [V3,-next] mptcp/pm_netlink.c : add check for nla_put_in/6_addr
- external contribution, ACKed by Paolo
our repo (by: Davide Caratti, Florian Westphal, Matthieu Baerts):
1265469: Needs Review / ACK: selftests:mptcp:pm: rm the right tmp file:
- need review, simple modification
- can be upstreamed?
1271345: Changes Requested: [4/7] mptcp: avoid callback invocation when
1271346: Changes Requested: [5/7] mptcp: use rcu helpers to fetch ulp su
1271347: Changes Requested: [6/7] mptcp: reverse order of sk_state_chang
1271348: Changes Requested: [7/7] mptcp: prevent null deref crash on no:
- the 3 first patches have already been sent
- obsoleted by the series of 3 patches sent upstream (and already
merged)
1274449: Changes Requested: [RFC] net: mptcp: improve fallback after
successful 3-way-handshake:
- new version in preparation, yes
Bugs on Github:
$ ghi list -S updated --reverse
https://github.com/multipath-tcp/mptcp_net-next/issues/
- TODO Matth: do not use "-S updated": commit messages containing
#XX are interpreted as a reference to an issue. But there are many
commit messages containing #XX referring to something else.
2: reduce hooking in TCP code
4: keep a single work struct in mptcp socket
5: Allow ss/netstat etc. to show program name for client and listener
8: fix possible race in subflow_finish_connect()
9: fix "IPv4: Attempt to release TCP socket in state 1 "... on shutd:
- should be fixed with recent patches
- but maybe a different cause
10: reduce mptcp options space usage
11: fix fallback to TCP...
3: fix 'mmap' related race
13: [syzkaller] WARNING in mptcp_incoming_options
12: [syzkaller] INFO: task hung in lock_sock_nested
7: cleanup sendmsg_frag allocation
6: loss and delay without reordering causes very slow transfer
FYI: Current Roadmap:
- Part 4 (next merge window):
- Fix bugs reported on Github:
https://github.com/multipath-tcp/mptcp_net-next/issues/
- Shared recv window (full support)
- IPv6 - IPv4 mapped support
- not dropping MPTCP options (ADD_ADDR, etc.)
- FAST_CLOSE
- full MPTCP v1 support (reliable add_addr, etc.)
- after a few attempts of failed MPTCP, we fallback to TCP
(like TFO is doing)
- PM server (more advanced)
- Full DATA_FIN support [WIP by Mat]:
- could be nice to have it: if ready
- Active backup support
- ADD_ADDR for MPTCPv1: echo bit [WIP by Peter]
- Opti in TCP option structures (unions) [to be rebased]
- Part 5 (extra needed for prod):
- opti/perfs
- TFO
- PM netlink
- PM bpf
- Scheduler bpf
- syncookies
- [gs]etsockopt per subflow
- notify the userspace when a subflow is added/removed → cmsg
mptcp RX option clearing:
- problem stated here:
https://lists.01.org/hyperkitty/list/mptcp@lists.01.org/thread/ASA6QXZTGR...
- we can have old values for some fields:
- a risk:
- an evil 3rd party can corrupt/force closing of an MPTCP
stream without even the guessing the seq number
- clearing might be needed
- a bit like for the TCP timestamps
- but it's touching TCP code and it's an exception for MPTCP
which is not good
- we might have to clean a few fields (the ones that track a
"connection level" status, not per packet), not just one instruction
- Eric might discover our code :-D
- maybe time to optimise it?:
- store only a reference?:
- But a big rework
- needs to handle SYN
- failure cases
- not for stable...
- next steps:
- Paolo will write an RFC to clear some fields in one
instruction and sent it to MPTCP ML first for review before netdev
- https://github.com/multipath-tcp/mptcp_net-next/issues/10 :
- linked but the initial idea cannot be used because we
don't have a reference to the sk, only skb or part of the buffer
- can we use a single 'sub_options' field instead of 'mp_capable',
'mp_join', etc, to clean things up?
- since the above will change it's binary layout, should we
consider some additional effort to reduce 'mptcp_options_received' size?:
- what about *not* copying the subopt data inside
mptcp_options_received, just picking a weak data reference (offest/len)
inside the current skb?
in progress fixes for -net:
- news about "Bugs from Github"?:
- some might be fixed after having sent new patches to netdev
- /
Part 4: new features:
- news about "Full DATA_FIN support"?:
- /
- news about "ADD_ADDR for MPTCPv1: echo bit"?:
- /
- /
Extra tests:
- news about Syzkaller? (Christoph):
- /
- news about Intel's kbuild? (Mat):
- Philip looked and the reported failing seems not related to
our changes but to modifications from upstream 5.6.
- Mat is tracking builds to check what is running
- export branch has been updated 15 hours ago
- packetdrill (Davide):
- Davide did more tests related to TCP fallback, linked to the
patch Davide sent to the mailing list
- some refactoring might be needed
- CI (Matth):
- /
export branch:
- tcp: mptcp: use mptcp receive buffer space to select rcv window:
- Florian can sent it to netdev (net-next)
- mptcp:sendmsg: truncate source buffer if mptcp sndbuf size was
set from userspace:
- we can drop it for the moment
- Matth can do that: DONE
- we still need to take a decision about setsockopt management
Next meeting:
- We propose to have the next meeting on Thursday, the 30th of April.
- Usual time: 16:00 UTC (9am PDT, 6pm CEST)
- Still open to everyone!
- https://annuel2.framapad.org/p/mptcp_upstreaming_20200430
Feel free to comment on these points and propose new ones for the next
meeting!
Talk to you next week,
Matt
--
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium
2 years, 2 months
[PATCH net] mptcp: fix data_fin handing in RX path
by Paolo Abeni
The data fin flag is set only via a DSS option, but
mptcp_incoming_options() copies it unconditionally from the
provided RX options.
Since we do not clear all the mptcp sock RX options in a
socket free/alloc cycle, we can end-up with a stray data_fin
value while parsing e.g. MPC packets.
That would lead to mapping data corruption and will trigger
a few WARN_ON() in the RX path.
Instead of adding a costly memset(), fetch the data_fin flag
only for DSS packets - when we always explicitly initialize
such bit at option parsing time.
Fixes: 648ef4b88673 ("mptcp: Implement MPTCP receive path")
Reviewed-by: Mat Martineau <mathew.j.martineau(a)linux.intel.com>
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
---
net/mptcp/options.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index faf57585b892..4a7c467b99db 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -876,12 +876,11 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb,
mpext->data_seq = mp_opt->data_seq;
mpext->subflow_seq = mp_opt->subflow_seq;
mpext->dsn64 = mp_opt->dsn64;
+ mpext->data_fin = mp_opt->data_fin;
}
mpext->data_len = mp_opt->data_len;
mpext->use_map = 1;
}
-
- mpext->data_fin = mp_opt->data_fin;
}
void mptcp_write_options(__be32 *ptr, struct mptcp_out_options *opts)
--
2.21.1
2 years, 2 months
[PATCH V2 -next] mptcp/pm_netlink.c : add check for nla_put_in/6_addr
by Bo YU
Normal there should be checked for nla_put_in6_addr like other
usage in net.
Detected by CoverityScan, CID# 1461639
Fixes: 01cacb00b35c("mptcp: add netlink-based PM")
Signed-off-by: Bo YU <tsu.yubo(a)gmail.com>
---
V2: Add check for nla_put_in_addr suggested by Paolo Abeni
---
net/mptcp/pm_netlink.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index 86d61ab34c7c..0a39f0ebad76 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -599,12 +599,15 @@ static int mptcp_nl_fill_addr(struct sk_buff *skb,
nla_put_s32(skb, MPTCP_PM_ADDR_ATTR_IF_IDX, entry->ifindex))
goto nla_put_failure;
- if (addr->family == AF_INET)
+ if (addr->family == AF_INET &&
nla_put_in_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR4,
- addr->addr.s_addr);
+ addr->addr.s_addr))
+ goto nla_put_failure;
+
#if IS_ENABLED(CONFIG_MPTCP_IPV6)
- else if (addr->family == AF_INET6)
- nla_put_in6_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR6, &addr->addr6);
+ else if (addr->family == AF_INET6 &&
+ nla_put_in6_addr(skb, MPTCP_PM_ADDR_ATTR_ADDR6, &addr->addr6))
+ goto nla_put_failure;
#endif
nla_nest_end(skb, attr);
return 0;
--
2.11.0
2 years, 2 months