mbox series

[v4,0/2] media: v4l2-subdev: Verify arguments of v4l2_subdev_call()

Message ID 20190511101031.4777-1-jmkrzyszt@gmail.com (mailing list archive)
Headers show
Series media: v4l2-subdev: Verify arguments of v4l2_subdev_call() | expand

Message

Janusz Krzysztofik May 11, 2019, 10:10 a.m. UTC
Correctness of format type (try or active) and pad number parameters
passed to subdevice operation callbacks is now verified only for IOCTL
calls.  However, those callbacks are also used by drivers, e.g., V4L2
host interfaces.
    
Since both subdev_do_ioctl() and drivers are using v4l2_subdev_call()
macro while calling subdevice operations, move those parameter checks
from subdev_do_ioctl() to v4l2_subdev_call().  Also, add a check for
a non-NULL pad config pointer if V4L2_SUBDEV_FORMAT_tRY is requested.

This way we can avoid taking care of those checks inside drivers.

Janusz Krzysztofik (2):
  media: v4l2-subdev: Verify arguments of v4l2_subdev_call()
  media: v4l2-subdev: Verify pad config argument

 drivers/media/v4l2-core/v4l2-subdev.c | 234 ++++++++++++++++----------
 include/media/v4l2-subdev.h           |   6 +
 2 files changed, 151 insertions(+), 89 deletions(-)

Changelog:
v3->v4:
- fix 'struct' keyword missing from patch 2/2,
- fix checkpatch reported style issue in patch 2/2
Sorry for that.

v2->v3:
- add patch 2/2 with pad config check,
- adjust continuation line alignments in patch 1/2 to match those 
  used in 2/2.

v1->v2:
- replace the horrible macro with a structure of wrapper functions;
  inspired by Hans' and Sakari's comments - thanks!