Skip to content

Commit eb1c28c

Browse files
Guillaume Naultdavem330
authored andcommitted
l2tp: check sockaddr length in pppol2tp_connect()
Check sockaddr_len before dereferencing sp->sa_protocol, to ensure that it actually points to valid data. Fixes: fd558d1 ("l2tp: Split pppol2tp patch into separate l2tp and ppp parts") Reported-by: [email protected] Signed-off-by: Guillaume Nault <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent b6a930f commit eb1c28c

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

net/l2tp/l2tp_ppp.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,13 @@ static int pppol2tp_connect(struct socket *sock, struct sockaddr *uservaddr,
619619
lock_sock(sk);
620620

621621
error = -EINVAL;
622+
623+
if (sockaddr_len != sizeof(struct sockaddr_pppol2tp) &&
624+
sockaddr_len != sizeof(struct sockaddr_pppol2tpv3) &&
625+
sockaddr_len != sizeof(struct sockaddr_pppol2tpin6) &&
626+
sockaddr_len != sizeof(struct sockaddr_pppol2tpv3in6))
627+
goto end;
628+
622629
if (sp->sa_protocol != PX_PROTO_OL2TP)
623630
goto end;
624631

0 commit comments

Comments
 (0)