Skip to content

Commit

Permalink
pppol2tp: Remove null pointer dereference.
Browse files Browse the repository at this point in the history
If session is NULL, it is not possible to access its name field.  So I
have split apart the printing of the error message to drop the
printing of the name field in this case.

The macro PRINTK actually only evaluates its arguments starting with
the third one if the bitwise conjunction of the first two is non-zero.
Normally, this conjunction would only be non-zero if debugging mode
were turned on, but when session is NULL, the first argument in both
the old and new code is -1, and thus the bitwise conjunction is true.
Perhaps a different strategy is desired, such as using tunnel->debug,
which session->debug is initialized to, but tunnel can also be NULL,
so this does not completely solve the problem.


This problem was found using the following semantic match
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression E, E1;
identifier f;
statement S1,S2,S3;
@@

* if (E == NULL)
{
  ... when != if (E == NULL) S1 else S2
      when != E = E1
* E->f
  ... when any
  return ...;
}
else S3
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Julia Lawall authored and David S. Miller committed May 12, 2008
1 parent 4951704 commit 5dc474d
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/net/pppol2tp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1621,9 +1621,16 @@ static int pppol2tp_connect(struct socket *sock, struct sockaddr *uservaddr,
end:
release_sock(sk);

if (error != 0)
PRINTK(session ? session->debug : -1, PPPOL2TP_MSG_CONTROL, KERN_WARNING,
"%s: connect failed: %d\n", session->name, error);
if (error != 0) {
if (session)
PRINTK(session->debug,
PPPOL2TP_MSG_CONTROL, KERN_WARNING,
"%s: connect failed: %d\n",
session->name, error);
else
PRINTK(-1, PPPOL2TP_MSG_CONTROL, KERN_WARNING,
"connect failed: %d\n", error);
}

return error;
}
Expand Down

0 comments on commit 5dc474d

Please sign in to comment.