Skip to content

Commit 7893363

Browse files
tomparkindavem330
authored andcommitted
l2tp: fix oops in l2tp_eth_create() error path
When creating an L2TPv3 Ethernet session, if register_netdev() should fail for any reason (for example, automatic naming for "l2tpeth%d" interfaces hits the 32k-interface limit), the netdev is freed in the error path. However, the l2tp_eth_sess structure's dev pointer is left uncleared, and this results in l2tp_eth_delete() then attempting to unregister the same netdev later in the session teardown. This results in an oops. To avoid this, clear the session dev pointer in the error path. Signed-off-by: Tom Parkin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent e3c9851 commit 7893363

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

net/l2tp/l2tp_eth.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 p
291291

292292
out_del_dev:
293293
free_netdev(dev);
294+
spriv->dev = NULL;
294295
out_del_session:
295296
l2tp_session_delete(session);
296297
out:

0 commit comments

Comments
 (0)