]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
selftests: rtnetlink: add addresses with fixed life time
authorFlorian Westphal <fw@strlen.de>
Mon, 17 Jun 2019 14:02:28 +0000 (16:02 +0200)
committerKhalid Elmously <khalid.elmously@canonical.com>
Wed, 29 Jan 2020 04:47:27 +0000 (23:47 -0500)
BugLink: https://bugs.launchpad.net/bugs/1860602
[ Upstream commit 3cfa148826e3c666da1cc2a43fbe8689e2650636 ]

This exercises kernel code path that deal with addresses that have
a limited lifetime.

Without previous fix, this triggers following crash on net-next:
 BUG: KASAN: null-ptr-deref in check_lifetime+0x403/0x670
 Read of size 8 at addr 0000000000000010 by task kworker [..]

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
tools/testing/selftests/net/rtnetlink.sh

index ab42986be0aa2a0fbaabe234affd1012249d686a..5affdd1d741bcfe8331cbc1178772945bb6f7b72 100755 (executable)
@@ -231,6 +231,26 @@ kci_test_route_get()
        echo "PASS: route get"
 }
 
+kci_test_addrlft()
+{
+       for i in $(seq 10 100) ;do
+               lft=$(((RANDOM%3) + 1))
+               ip addr add 10.23.11.$i/32 dev "$devdummy" preferred_lft $lft valid_lft $((lft+1))
+               check_err $?
+       done
+
+       sleep 5
+
+       ip addr show dev "$devdummy" | grep "10.23.11."
+       if [ $? -eq 0 ]; then
+               echo "FAIL: preferred_lft addresses remaining"
+               check_err 1
+               return
+       fi
+
+       echo "PASS: preferred_lft addresses have expired"
+}
+
 kci_test_addrlabel()
 {
        ret=0
@@ -512,6 +532,7 @@ kci_test_rtnl()
 
        kci_test_polrouting
        kci_test_route_get
+       kci_test_addrlft
        kci_test_tc
        kci_test_gre
        kci_test_bridge