Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp449601ybl; Tue, 28 Jan 2020 06:10:36 -0800 (PST) X-Google-Smtp-Source: APXvYqyRdgU6EHIBKLkSi5CnUIbAYlKgaEYqVZ8VZe1YOaB8xepUBMuVz4Go1CfruHuSlzbSKpes X-Received: by 2002:aca:3114:: with SMTP id x20mr2939626oix.121.1580220635929; Tue, 28 Jan 2020 06:10:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220635; cv=none; d=google.com; s=arc-20160816; b=PzxtAiHeq44K7JNJT4k89uZyBERmT0WC7MC4+3792vavll7TrWfeC+GupZWVZm2BL4 eLlu3V8DLfhx4TwEg7UJX8JLu8wuEjxSlVfQa60wZohVCSIzPKHV093g3GJl/THv9TNu Ip5Y6T7p0UFdFABGuykk4vnwIHdG7L5a3JPIlMvZZ2voGQifqLSO1+XEbmKkAVFwKG33 Z5v+tmvcoh0z1BHDvrQCOv0u0aFQwK7pgL+agiSRndzLO2v3nmrJaxA4B3+nG+KBxyuw Zko7SGW+mX055nDtRYOgSICPD4CFitdevS3U0CarrFc9qZeY4EiEKjshHZp8l+kYnX8K gb5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=MNlTvPHVgaOk2qI0UY+6UIe6y5iECpx2ANeOGdJxsX4=; b=kgxmKNCJXEl988/rxFrS9sK7huqIHO2I1G4c06UvNTX2AHEuG563HsuFd5qpwXHG4x HIgc0wvhb9wupZaJMeLhSWp8mRfhw6optHgdB/EdqH4KGywa5KBreEpgAYL6w2CZmYW5 caksmORa7S8NNvk7Jb/8eoEI0Ki3I+yWaUApqDCznI5GZFt2+4lcpja8phAoNjg+3mtp tgCjKPAHGF6Ouu0gKEKoKQU9j5DXbMRUqSGTZ3+CtyUSSXXDylsRrXZPvUlkr2gHW7tl H5FpkVq5A+kMH5/DvU8FAOD3skVXil1AwoeKCKBzIxoHTG8BPjcYD1/IXPBnLsnTlm+l 5Hfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0y6nu68z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o1si819213otk.154.2020.01.28.06.10.23; Tue, 28 Jan 2020 06:10:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0y6nu68z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727615AbgA1OFR (ORCPT + 99 others); Tue, 28 Jan 2020 09:05:17 -0500 Received: from mail.kernel.org ([198.145.29.99]:52650 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728217AbgA1OFK (ORCPT ); Tue, 28 Jan 2020 09:05:10 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 55697205F4; Tue, 28 Jan 2020 14:05:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220309; bh=TCCNqM2VIhC7R7bn1YC2MWDp0InUfQB7ctD2f7u4L18=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0y6nu68zG0tIKobBk3gAkuWQWVeWA4w6kkQJ2XOzOLd1uXp5TmpDRugRaHUp6w9sz 6vfHds559mTCXpO6FCwDd7xrzuEmP9zOfRZJIHtzX/TDzUv2/jiJLWvWBhVgcx7P26 rBAb9vmBkt7qrkCFNf/V1RZ0mRJ8hki+3Whi4hY4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hans Verkuil , Mauro Carvalho Chehab Subject: [PATCH 5.4 100/104] media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT Date: Tue, 28 Jan 2020 15:01:01 +0100 Message-Id: <20200128135830.732323946@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135817.238524998@linuxfoundation.org> References: <20200128135817.238524998@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hans Verkuil commit ee8951e56c0f960b9621636603a822811cef3158 upstream. v4l2_vbi_format, v4l2_sliced_vbi_format and v4l2_sdr_format have a reserved array at the end that should be zeroed by drivers as per the V4L2 spec. Older drivers often do not do this, so just handle this in the core. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Greg Kroah-Hartman --- drivers/media/v4l2-core/v4l2-ioctl.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1605,12 +1605,12 @@ static int v4l_s_fmt(const struct v4l2_i case V4L2_BUF_TYPE_VBI_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_vbi_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.vbi); + CLEAR_AFTER_FIELD(p, fmt.vbi.flags); return ops->vidioc_s_fmt_vbi_cap(file, fh, arg); case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.sliced); + CLEAR_AFTER_FIELD(p, fmt.sliced.io_size); return ops->vidioc_s_fmt_sliced_vbi_cap(file, fh, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_vid_out)) @@ -1636,22 +1636,22 @@ static int v4l_s_fmt(const struct v4l2_i case V4L2_BUF_TYPE_VBI_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_vbi_out)) break; - CLEAR_AFTER_FIELD(p, fmt.vbi); + CLEAR_AFTER_FIELD(p, fmt.vbi.flags); return ops->vidioc_s_fmt_vbi_out(file, fh, arg); case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_out)) break; - CLEAR_AFTER_FIELD(p, fmt.sliced); + CLEAR_AFTER_FIELD(p, fmt.sliced.io_size); return ops->vidioc_s_fmt_sliced_vbi_out(file, fh, arg); case V4L2_BUF_TYPE_SDR_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_sdr_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.sdr); + CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize); return ops->vidioc_s_fmt_sdr_cap(file, fh, arg); case V4L2_BUF_TYPE_SDR_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_sdr_out)) break; - CLEAR_AFTER_FIELD(p, fmt.sdr); + CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize); return ops->vidioc_s_fmt_sdr_out(file, fh, arg); case V4L2_BUF_TYPE_META_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_meta_cap)) @@ -1707,12 +1707,12 @@ static int v4l_try_fmt(const struct v4l2 case V4L2_BUF_TYPE_VBI_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_vbi_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.vbi); + CLEAR_AFTER_FIELD(p, fmt.vbi.flags); return ops->vidioc_try_fmt_vbi_cap(file, fh, arg); case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.sliced); + CLEAR_AFTER_FIELD(p, fmt.sliced.io_size); return ops->vidioc_try_fmt_sliced_vbi_cap(file, fh, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_vid_out)) @@ -1738,22 +1738,22 @@ static int v4l_try_fmt(const struct v4l2 case V4L2_BUF_TYPE_VBI_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_vbi_out)) break; - CLEAR_AFTER_FIELD(p, fmt.vbi); + CLEAR_AFTER_FIELD(p, fmt.vbi.flags); return ops->vidioc_try_fmt_vbi_out(file, fh, arg); case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_out)) break; - CLEAR_AFTER_FIELD(p, fmt.sliced); + CLEAR_AFTER_FIELD(p, fmt.sliced.io_size); return ops->vidioc_try_fmt_sliced_vbi_out(file, fh, arg); case V4L2_BUF_TYPE_SDR_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_sdr_cap)) break; - CLEAR_AFTER_FIELD(p, fmt.sdr); + CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize); return ops->vidioc_try_fmt_sdr_cap(file, fh, arg); case V4L2_BUF_TYPE_SDR_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_sdr_out)) break; - CLEAR_AFTER_FIELD(p, fmt.sdr); + CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize); return ops->vidioc_try_fmt_sdr_out(file, fh, arg); case V4L2_BUF_TYPE_META_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_meta_cap))