linux/drivers/infiniband/hw
Yann Droneaud 9d194d1025 IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL
In case of error while accessing to userspace memory, function
nes_create_qp() returns NULL instead of an error code wrapped through
ERR_PTR().  But NULL is not expected by ib_uverbs_create_qp(), as it
check for error with IS_ERR().

As page 0 is likely not mapped, it is going to trigger an Oops when
the kernel will try to dereference NULL pointer to access to struct
ib_qp's fields.

In some rare cases, page 0 could be mapped by userspace, which could
turn this bug to a vulnerability that could be exploited: the function
pointers in struct ib_device will be under userspace total control.

This was caught when using spatch (aka. coccinelle)
to rewrite calls to ib_copy_{from,to}_udata().

Link: https://www.gitorious.org/opteya/ib-hw-nes-create-qp-null
Link: 75ebf2c103:ib_copy_udata.cocci
Link: http://marc.info/?i=cover.1394485254.git.ydroneaud@opteya.com
Cc: <stable@vger.kernel.org>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2014-03-17 16:20:28 -07:00
..
amso1100 RDMA/amso1100: Fix error return code 2014-02-12 11:11:46 -08:00
cxgb3 RDMA/cma: Add IPv6 support for iWARP 2013-08-12 12:32:31 -07:00
cxgb4 RDMA/cxgb4: Add missing neigh_release in LE-Workaround path 2014-02-13 14:46:40 -08:00
ehca IB/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
ipath IB/ipath: Fix potential buffer overrun in sending diag packet routine 2014-03-17 16:16:51 -07:00
mlx4 Merge branches 'cma', 'cxgb4', 'iser', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'usnic' into for-next 2014-02-14 09:49:12 -08:00
mlx5 IB/mlx5: Remove dependency on X86 2014-02-13 20:48:02 -08:00
mthca IB/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
nes IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL 2014-03-17 16:20:28 -07:00
ocrdma Merge branches 'cma', 'cxgb4', 'iser', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'usnic' into for-next 2014-02-14 09:49:12 -08:00
qib IB/qib: Fix memory leak of recv context when driver fails to initialize. 2014-03-17 16:16:51 -07:00
usnic IB/usnic: Fix smatch endianness error 2014-02-14 09:47:29 -08:00