linux_dsm_epyc7002/drivers/infiniband/hw/nes
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
..
Kconfig RDMA/nes: Update copyright and branding string 2009-12-09 15:21:56 -08:00
Makefile RDMA/nes: Support for Packed And Unaligned fpdus 2011-10-10 10:54:47 -07:00
nes_cm.c RDMA/nes: Slight optimization of Ethernet address compare 2014-01-22 23:22:26 -08:00
nes_cm.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes_context.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes_hw.c Revert "RDMA/nes: Fix compilation error when nes_debug is enabled" 2013-07-30 15:48:35 -07:00
nes_hw.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes_mgt.c RDMA/nes: Use WARN() 2012-11-22 00:49:15 -08:00
nes_mgt.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes_nic.c net: vlan: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* 2013-04-19 14:45:26 -04:00
nes_user.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes_utils.c RDMA/nes: Print hardware resource type 2012-09-30 20:34:55 -07:00
nes_verbs.c IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL 2014-03-17 16:20:28 -07:00
nes_verbs.h RDMA/nes: Copyright update 2012-01-30 16:18:07 -08:00
nes.c RDMA/nes: Fix error return code 2014-02-12 11:11:09 -08:00
nes.h RDMA/nes: Fix for terminate timer crash 2012-12-08 00:31:02 -08:00