• Xiyu Yang's avatar
    net/tls: Fix sk_psock refcnt leak when in tls_data_ready() · 62b4011f
    Xiyu Yang authored
    tls_data_ready() invokes sk_psock_get(), which returns a reference of
    the specified sk_psock object to "psock" with increased refcnt.
    
    When tls_data_ready() returns, local variable "psock" becomes invalid,
    so the refcount should be decreased to keep refcount balanced.
    
    The reference counting issue happens in one exception handling path of
    tls_data_ready(). When "psock->ingress_msg" is empty but "psock" is not
    NULL, the function forgets to decrease the refcnt increased by
    sk_psock_get(), causing a refcnt leak.
    
    Fix this issue by calling sk_psock_put() on all paths when "psock" is
    not NULL.
    Signed-off-by: default avatarXiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: default avatarXin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    62b4011f
tls_sw.c 61.4 KB