sctp: Fix kernel panic while process protocol violation parameter
authorWei Yongjun <yjwei@cn.fujitsu.com>
Tue, 30 Sep 2008 12:32:24 +0000 (05:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Sep 2008 12:32:24 +0000 (05:32 -0700)
commitba0166708ef4da7eeb61dd92bbba4d5a749d6561
tree0e28c1d17b67d24125df4f05cbcca94c7e90ccd3
parent8b122efd13a227d35d5ca242561770db1b5e3658
sctp: Fix kernel panic while process protocol violation parameter

Since call to function sctp_sf_abort_violation() need paramter 'arg' with
'struct sctp_chunk' type, it will read the chunk type and chunk length from
the chunk_hdr member of chunk. But call to sctp_sf_violation_paramlen()
always with 'struct sctp_paramhdr' type's parameter, it will be passed to
sctp_sf_abort_violation(). This may cause kernel panic.

   sctp_sf_violation_paramlen()
     |-- sctp_sf_abort_violation()
        |-- sctp_make_abort_violation()

This patch fixed this problem. This patch also fix two place which called
sctp_sf_violation_paramlen() with wrong paramter type.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/sm.h
net/sctp/sm_make_chunk.c
net/sctp/sm_statefuns.c