From: Vinod Koul <vinod.koul@intel.com>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org, broonie@linaro.org,
clemens@ladisch.de, omair.m.abdullah@intel.com
Subject: Re: [PATCH 2/4] ALSA: control: delegate checking the length of data payload to each drivers
Date: Tue, 30 Aug 2016 21:16:28 +0530 [thread overview]
Message-ID: <20160830154628.GF9355@localhost> (raw)
In-Reply-To: <1472514285-3769-3-git-send-email-o-takashi@sakamocchi.jp>
On Tue, Aug 30, 2016 at 08:44:43AM +0900, Takashi Sakamoto wrote:
> In ioctl(2) for TLV feature of ALSA control interface, an argument is
> a pointer to a data of 'struct snd_ctl_tlv' type in user space.
> The first field of this structure is for numerical ID of control element
> (numid), the second is for the length of the rest in byte unit (length).
> The rest is data payload (tlv).
>
> In current implementation, ALSA control core checks the length field
> so that the lest is bigger than sizeof(unsigned int) * 2. This is due to
> original design of this feature.
>
> Originally, this feature is designed to allow each driver to handle
> threshold level information. The rest of array stores the information.
> The information is expected to be this formation:
> - type: e.g. SNDRV_CTL_TLVT_CONTAINER.
> - length: length of the rest
> - the rest: information fields
>
> Against the original design, this feature can also be used to operate I/O.
> In this case, the data field in 'struct snd_ctl_tlv' is not necessarily
> the formation. Therefore, the check in control core is unreasonable.
> Perhaps, there's a case to transfer just 1 byte by this feature.
>
> This commit purges the check and delegate it to each drivers. Fortunately,
> each implementation in drivers already check the length of payload.
Shouldn't it be other way around, we want to core to check these type of
things and not duplicate over drivers...
> @@ -1438,8 +1438,6 @@ static int snd_ctl_tlv_ioctl(struct snd_ctl_file *file,
>
> if (copy_from_user(&tlv, _tlv, sizeof(tlv)))
> return -EFAULT;
> - if (tlv.length < sizeof(unsigned int) * 2)
> - return -EINVAL;
> if (!tlv.numid)
> return -EINVAL;
> down_read(&card->controls_rwsem);
--
~Vinod
next prev parent reply other threads:[~2016-08-30 15:38 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-29 23:44 [RFC][PATCH 0/4] ALSA: control: return payload length of TLV operation Takashi Sakamoto
2016-08-29 23:44 ` [PATCH 1/4] ALSA: control: return payload length for " Takashi Sakamoto
2016-08-30 5:29 ` Takashi Iwai
2016-08-30 6:19 ` Takashi Sakamoto
2016-08-30 6:59 ` Takashi Iwai
2016-08-30 7:13 ` Takashi Sakamoto
2016-08-30 7:39 ` Takashi Iwai
2016-08-30 7:05 ` Clemens Ladisch
2016-08-30 7:09 ` Takashi Sakamoto
2016-08-30 8:04 ` Clemens Ladisch
2016-08-30 12:22 ` Takashi Sakamoto
2016-08-30 14:51 ` Vinod Koul
2016-08-30 22:04 ` Takashi Sakamoto
2016-08-31 4:20 ` Vinod Koul
2016-08-31 4:30 ` Takashi Sakamoto
2016-08-31 9:05 ` Charles Keepax
2016-08-31 9:40 ` Takashi Iwai
2016-08-31 11:54 ` Clemens Ladisch
2016-08-31 12:08 ` Takashi Iwai
2016-08-31 15:26 ` Takashi Sakamoto
2016-08-31 15:40 ` Takashi Iwai
2016-09-02 11:30 ` Takashi Sakamoto
2016-09-02 13:09 ` Takashi Iwai
2016-09-02 14:50 ` Takashi Sakamoto
2016-09-02 15:19 ` Takashi Iwai
2016-09-02 16:26 ` Takashi Iwai
2016-09-03 11:38 ` Charles Keepax
2016-09-04 11:07 ` Takashi Sakamoto
2016-09-04 20:45 ` Takashi Iwai
2016-09-06 3:30 ` Takashi Sakamoto
2016-09-12 12:37 ` Charles Keepax
2016-09-12 15:25 ` Vinod Koul
2016-09-12 15:28 ` Takashi Iwai
2016-09-12 16:03 ` Charles Keepax
2016-09-12 16:28 ` Takashi Iwai
2016-09-13 8:39 ` Charles Keepax
2016-08-31 12:19 ` Charles Keepax
2016-08-31 13:24 ` Clemens Ladisch
2016-08-31 14:18 ` Charles Keepax
2016-08-31 16:05 ` Vinod Koul
2016-09-02 11:18 ` Takashi Sakamoto
2016-09-02 16:05 ` Takashi Iwai
2016-09-03 3:53 ` Takashi Sakamoto
2016-09-03 11:32 ` Charles Keepax
2016-08-29 23:44 ` [PATCH 2/4] ALSA: control: delegate checking the length of data payload to each drivers Takashi Sakamoto
2016-08-30 15:46 ` Vinod Koul [this message]
2016-08-29 23:44 ` [PATCH 3/4] ALSA: control: add kerneldoc for snd_kcontrol_tlv_rw_t Takashi Sakamoto
2016-08-29 23:44 ` [PATCH 4/4] ALSA: control: bump up protocol version to 2.0.8 Takashi Sakamoto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160830154628.GF9355@localhost \
--to=vinod.koul@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@linaro.org \
--cc=clemens@ladisch.de \
--cc=o-takashi@sakamocchi.jp \
--cc=omair.m.abdullah@intel.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).