The last user of .tunnel_sock is pppol2tp_connect() which defensively
uses it to verify internal data consistency.

This check isn't necessary: l2tp_session_get() guarantees that the
returned session belongs to the tunnel passed as parameter. And
.tunnel_sock is never updated, so checking that it still points to
the parent tunnel socket is useless; that test can never fail.

Signed-off-by: Guillaume Nault <g.na...@alphalink.fr>
---
 net/l2tp/l2tp_ppp.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c
index 88b4cb1b7cde..b412fc3351dc 100644
--- a/net/l2tp/l2tp_ppp.c
+++ b/net/l2tp/l2tp_ppp.c
@@ -127,8 +127,6 @@ struct pppol2tp_session {
                                                 * PPPoX socket */
        struct sock             *__sk;          /* Copy of .sk, for cleanup */
        struct rcu_head         rcu;            /* For asynchronous release */
-       struct sock             *tunnel_sock;   /* Pointer to the tunnel UDP
-                                                * socket */
        int                     flags;          /* accessed by PPPIOCGFLAGS.
                                                 * Unused. */
 };
@@ -592,7 +590,6 @@ static void pppol2tp_session_init(struct l2tp_session 
*session)
 
        ps = l2tp_session_priv(session);
        mutex_init(&ps->sk_lock);
-       ps->tunnel_sock = session->tunnel->sock;
        ps->owner = current->pid;
 
        /* If PMTU discovery was enabled, use the MTU that was discovered */
@@ -743,13 +740,6 @@ static int pppol2tp_connect(struct socket *sock, struct 
sockaddr *uservaddr,
                        error = -EEXIST;
                        goto end;
                }
-
-               /* consistency checks */
-               if (ps->tunnel_sock != tunnel->sock) {
-                       mutex_unlock(&ps->sk_lock);
-                       error = -EEXIST;
-                       goto end;
-               }
        } else {
                /* Default MTU must allow space for UDP/L2TP/PPP headers */
                cfg.mtu = 1500 - PPPOL2TP_HEADER_OVERHEAD;
-- 
2.11.0

Reply via email to