• Ying Xue's avatar
    tipc: fix connection refcount leak · 4652edb7
    Ying Xue authored
    When tipc_conn_sendmsg() calls tipc_conn_lookup() to query a
    connection instance, its reference count value is increased if
    it's found. But subsequently if it's found that the connection is
    closed, the work of sending message is not queued into its server
    send workqueue, and the connection reference count is not decreased.
    This will cause a reference count leak. To reproduce this problem,
    an application would need to open and closes topology server
    connections with high intensity.
    
    We fix this by immediately decrementing the connection reference
    count if a send fails due to the connection being closed.
    Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
    Acked-by: default avatarErik Hugne <erik.hugne@ericsson.com>
    Reviewed-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4652edb7
server.c 13.7 KB