1. 17 Nov, 2022 1 commit
    • Wang Yufen's avatar
      selftests/bpf: fix memory leak of lsm_cgroup · c453e64c
      Wang Yufen authored
      kmemleak reports this issue:
      
      unreferenced object 0xffff88810b7835c0 (size 32):
        comm "test_progs", pid 270, jiffies 4294969007 (age 1621.315s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          03 00 00 00 03 00 00 00 0f 00 00 00 00 00 00 00  ................
        backtrace:
          [<00000000376cdeab>] kmalloc_trace+0x27/0x110
          [<000000003bcdb3b6>] selinux_sk_alloc_security+0x66/0x110
          [<000000003959008f>] security_sk_alloc+0x47/0x80
          [<00000000e7bc6668>] sk_prot_alloc+0xbd/0x1a0
          [<0000000002d6343a>] sk_alloc+0x3b/0x940
          [<000000009812a46d>] unix_create1+0x8f/0x3d0
          [<000000005ed0976b>] unix_create+0xa1/0x150
          [<0000000086a1d27f>] __sock_create+0x233/0x4a0
          [<00000000cffe3a73>] __sys_socket_create.part.0+0xaa/0x110
          [<0000000007c63f20>] __sys_socket+0x49/0xf0
          [<00000000b08753c8>] __x64_sys_socket+0x42/0x50
          [<00000000b56e26b3>] do_syscall_64+0x3b/0x90
          [<000000009b4871b8>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
      
      The issue occurs in the following scenarios:
      
      unix_create1()
        sk_alloc()
          sk_prot_alloc()
            security_sk_alloc()
              call_int_hook()
                hlist_for_each_entry()
                  entry1->hook.sk_alloc_security
                  <-- selinux_sk_alloc_security() succeeded,
                  <-- sk->security alloced here.
                  entry2->hook.sk_alloc_security
                  <-- bpf_lsm_sk_alloc_security() failed
            goto out_free;
              ...    <-- the sk->security not freed, memleak
      
      The core problem is that the LSM is not yet fully stacked (work is
      actively going on in this space) which means that some LSM hooks do
      not support multiple LSMs at the same time. To fix, skip the
      "EPERM" test when it runs in the environments that already have
      non-bpf lsms installed
      
      Fixes: dca85aac ("selftests/bpf: lsm_cgroup functional test")
      Signed-off-by: default avatarWang Yufen <wangyufen@huawei.com>
      Cc: Stanislav Fomichev <sdf@google.com>
      Acked-by: default avatarStanislav Fomichev <sdf@google.com>
      Link: https://lore.kernel.org/r/1668482980-16163-1-git-send-email-wangyufen@huawei.comSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
      c453e64c
  2. 16 Nov, 2022 6 commits
  3. 15 Nov, 2022 10 commits
  4. 14 Nov, 2022 22 commits
  5. 12 Nov, 2022 1 commit