diff mbox series

[for,v5.8] vicodec: add missing v4l2_ctrl_request_hdl_put()

Message ID 60cb280b-fb2a-86f6-aefb-cc12386b3adf@xs4all.nl (mailing list archive)
State New, archived
Headers show
Series [for,v5.8] vicodec: add missing v4l2_ctrl_request_hdl_put() | expand

Commit Message

Hans Verkuil Aug. 12, 2020, 10:30 a.m. UTC
The check for a required control in the request was missing a call to
v4l2_ctrl_request_hdl_put(), so the control request object was never
released.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Fixes: 997deb811bf5 ("media: vicodec: Add support for stateless decoder.")
---

Comments

Ezequiel Garcia Aug. 12, 2020, 7:53 p.m. UTC | #1
On Wed, 12 Aug 2020 at 07:30, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>
> The check for a required control in the request was missing a call to
> v4l2_ctrl_request_hdl_put(), so the control request object was never
> released.
>
> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> Fixes: 997deb811bf5 ("media: vicodec: Add support for stateless decoder.")

Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>

Seems there's a similar leak in cedrus_request_validate error path,
when v4l2_ctrl_request_hdl_ctrl_find fails.

Cheers,
Ezequiel

> ---
> diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c
> index 8941d73f6611..71928e30dae8 100644
> --- a/drivers/media/test-drivers/vicodec/vicodec-core.c
> +++ b/drivers/media/test-drivers/vicodec/vicodec-core.c
> @@ -1994,6 +1994,7 @@ static int vicodec_request_validate(struct media_request *req)
>         }
>         ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl,
>                                                vicodec_ctrl_stateless_state.id);
> +       v4l2_ctrl_request_hdl_put(hdl);
>         if (!ctrl) {
>                 v4l2_info(&ctx->dev->v4l2_dev,
>                           "Missing required codec control\n");
Hans Verkuil Aug. 13, 2020, 7:07 a.m. UTC | #2
On 12/08/2020 21:53, Ezequiel Garcia wrote:
> On Wed, 12 Aug 2020 at 07:30, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>>
>> The check for a required control in the request was missing a call to
>> v4l2_ctrl_request_hdl_put(), so the control request object was never
>> released.
>>
>> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
>> Fixes: 997deb811bf5 ("media: vicodec: Add support for stateless decoder.")
> 
> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
> 
> Seems there's a similar leak in cedrus_request_validate error path,
> when v4l2_ctrl_request_hdl_ctrl_find fails.

Correct. Will you make a patch for that?

Regards,

	Hans

> 
> Cheers,
> Ezequiel
> 
>> ---
>> diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c
>> index 8941d73f6611..71928e30dae8 100644
>> --- a/drivers/media/test-drivers/vicodec/vicodec-core.c
>> +++ b/drivers/media/test-drivers/vicodec/vicodec-core.c
>> @@ -1994,6 +1994,7 @@ static int vicodec_request_validate(struct media_request *req)
>>         }
>>         ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl,
>>                                                vicodec_ctrl_stateless_state.id);
>> +       v4l2_ctrl_request_hdl_put(hdl);
>>         if (!ctrl) {
>>                 v4l2_info(&ctx->dev->v4l2_dev,
>>                           "Missing required codec control\n");
diff mbox series

Patch

diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c
index 8941d73f6611..71928e30dae8 100644
--- a/drivers/media/test-drivers/vicodec/vicodec-core.c
+++ b/drivers/media/test-drivers/vicodec/vicodec-core.c
@@ -1994,6 +1994,7 @@  static int vicodec_request_validate(struct media_request *req)
 	}
 	ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl,
 					       vicodec_ctrl_stateless_state.id);
+	v4l2_ctrl_request_hdl_put(hdl);
 	if (!ctrl) {
 		v4l2_info(&ctx->dev->v4l2_dev,
 			  "Missing required codec control\n");