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

From: Janusz Krzysztofik
Date: Sat May 11 2019 - 06:12:02 EST


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!

--
2.21.0