IB/umad: make sure write()s have sufficient data
authorRoland Dreier <rolandd@cisco.com>
Fri, 18 Nov 2005 22:18:26 +0000 (14:18 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 18 Nov 2005 22:18:26 +0000 (14:18 -0800)
commiteabc77935d8d2a761c88b9cbb6313bd54b6ddbb3
treecde3d8c648c09264669ca207df597d9e96c849bb
parent48fd0d1fdd357caa2de8cb4ce6af810df7535f43
IB/umad: make sure write()s have sufficient data

Make sure that userspace passes in enough data when sending a MAD.  We
always copy at least sizeof (struct ib_user_mad) + IB_MGMT_RMPP_HDR
bytes from userspace, so anything less is definitely invalid.  Also,
if the length is less than this limit, it's possible for the second
copy_from_user() to get a negative length and trigger a BUG().

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/user_mad.c