media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
authorEzequiel Garcia <ezequiel@collabora.com>
Thu, 13 Aug 2020 19:18:33 +0000 (21:18 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 27 Aug 2020 07:30:20 +0000 (09:30 +0200)
The check for a required control in the request was missing a call to
v4l2_ctrl_request_hdl_put() in the error path. Fix it.

Fixes: 50e761516f2b8c ("media: platform: Add Cedrus VPU decoder driver")
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus.c

index bc27f9430eeb14712169a16f9807ee6536a4d5b1..7c6b91f0e780a303a60f623d702d3baae12d497d 100644 (file)
@@ -199,6 +199,7 @@ static int cedrus_request_validate(struct media_request *req)
        struct v4l2_ctrl *ctrl_test;
        unsigned int count;
        unsigned int i;
+       int ret = 0;
 
        list_for_each_entry(obj, &req->objects, list) {
                struct vb2_buffer *vb;
@@ -243,12 +244,16 @@ static int cedrus_request_validate(struct media_request *req)
                if (!ctrl_test) {
                        v4l2_info(&ctx->dev->v4l2_dev,
                                  "Missing required codec control\n");
-                       return -ENOENT;
+                       ret = -ENOENT;
+                       break;
                }
        }
 
        v4l2_ctrl_request_hdl_put(hdl);
 
+       if (ret)
+               return ret;
+
        return vb2_request_validate(req);
 }