linux/drivers/infiniband/core
Yann Droneaud c780d82a74 IB/uverbs: Check reserved fields in create_flow
As noted by Daniel Vetter in its article "Botching up ioctls"[1]

  "Check *all* unused fields and flags and all the padding for whether
   it's 0, and reject the ioctl if that's not the case.  Otherwise
   your nice plan for future extensions is going right down the
   gutters since someone *will* submit an ioctl struct with random
   stack garbage in the yet unused parts. Which then bakes in the ABI
   that those fields can never be used for anything else but garbage."

It's important to ensure that reserved fields are set to known value,
so that it will be possible to use them latter to extend the ABI.

The same reasonning apply to comp_mask field present in newer uverbs
command: per commit 22878dbc91 ("IB/core: Better checking of
userspace values for receive flow steering"), unsupported values in
comp_mask are rejected.

[1] http://blog.ffwll.ch/2013/11/botching-up-ioctls.html

Link: http://marc.info/?i=cover.1386798254.git.ydroneaud@opteya.com>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2013-12-20 10:54:32 -08:00
..
addr.c IB/addr: Add AF_IB support to ip_addr_size 2013-06-20 13:08:02 -07:00
agent.c IB/mad: Improve an error message so error code is included 2011-03-18 09:42:20 -07:00
agent.h
cache.c IB/core: Add ib_find_exact_cached_pkey() 2012-09-30 20:33:30 -07:00
cm_msgs.h IB/core: Move CM_xxx_ATTR_ID macros from cm_msgs.h to ib_cm.h 2012-07-08 18:05:06 -07:00
cm.c IB/cm: Convert to using idr_alloc_cyclic() 2013-11-16 10:30:42 -08:00
cma.c Main batch of InfiniBand/RDMA changes for 3.13: 2013-11-18 15:36:04 -08:00
core_priv.h
device.c IB/core: Handle table with full and partial membership for the same P_Key 2012-09-30 20:33:29 -07:00
fmr_pool.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
iwcm.c RDMA/iwcm: Don't touch cmid after dropping reference 2013-04-24 17:47:33 -07:00
iwcm.h
mad_priv.h
mad_rmpp.c
mad_rmpp.h
mad.c IB/core: Create QP1 using the pkey index which contains the default pkey 2013-07-31 14:15:17 -07:00
Makefile RDMA: Add netlink infrastructure 2011-05-20 11:46:11 -07:00
multicast.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
netlink.c IB/netlink: Remove superfluous RDMA_NL_GET_OP() masking 2013-11-08 14:42:54 -08:00
packer.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
sa_query.c IB/sa: Export function to pack a path record into wire format 2013-06-20 23:35:39 -07:00
sa.h
smi.c
smi.h
sysfs.c IB/core: Add Cisco usNIC rdma node and transport types 2013-11-09 02:36:25 -08:00
ucm.c IB/core: convert to idr_alloc() 2013-02-27 19:10:16 -08:00
ucma.c Merge branches 'cma', 'cxgb4', 'flowsteer', 'ipoib', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'srp' into for-next 2013-11-17 08:22:19 -08:00
ud_header.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
umem.c IB/core: Fix mismatch between locked and pinned pages 2012-05-11 11:38:22 -07:00
user_mad.c switch device_get_devnode() and ->devnode() to umode_t * 2012-01-03 22:54:55 -05:00
uverbs_cmd.c IB/uverbs: Check reserved fields in create_flow 2013-12-20 10:54:32 -08:00
uverbs_main.c IB/uverbs: Check reserved field in extended command header 2013-12-20 10:54:30 -08:00
uverbs_marshall.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
uverbs.h IB/uverbs: New macro to set pointers to NULL if length is 0 in INIT_UDATA() 2013-12-20 10:53:44 -08:00
verbs.c IB/core: Encorce MR access rights rules on kernel consumers 2013-11-15 10:25:32 -08:00