Skip to content

Commit

Permalink
l2tp: remove the .tunnel_sock field from struct pppol2tp_session
Browse files Browse the repository at this point in the history
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.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Guillaume Nault authored and David S. Miller committed Nov 11, 2017
1 parent 7198c77 commit da9ca82
Showing 1 changed file with 0 additions and 10 deletions.
10 changes: 0 additions & 10 deletions net/l2tp/l2tp_ppp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
};
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit da9ca82

Please sign in to comment.