diff options
| author | Takashi Iwai <[email protected]> | 2019-08-20 15:17:09 +0000 |
|---|---|---|
| committer | Takashi Iwai <[email protected]> | 2019-08-22 08:35:59 +0000 |
| commit | 57f8770620e9b51c61089751f0b5ad3dbe376ff2 (patch) | |
| tree | 3302223d107681aa8b7558e68fdf1bf322cdc4b4 /sound/usb/power.c | |
| parent | ALSA: usb-audio: Check mixer unit bitmap yet more strictly (diff) | |
| download | kernel-57f8770620e9b51c61089751f0b5ad3dbe376ff2.tar.gz kernel-57f8770620e9b51c61089751f0b5ad3dbe376ff2.zip | |
ALSA: usb-audio: More validations of descriptor units
Introduce a new helper to validate each audio descriptor unit before
and check the unit before actually accessing it. This should harden
against the OOB access cases with malformed descriptors that have been
recently frequently reported by fuzzers.
The existing descriptor checks are still kept although they become
superfluous after this patch. They'll be cleaned up eventually
later.
Signed-off-by: Takashi Iwai <[email protected]>
Diffstat (limited to 'sound/usb/power.c')
| -rw-r--r-- | sound/usb/power.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/usb/power.c b/sound/usb/power.c index bd303a1ba1b7..606a2cb23eab 100644 --- a/sound/usb/power.c +++ b/sound/usb/power.c @@ -31,6 +31,8 @@ snd_usb_find_power_domain(struct usb_host_interface *ctrl_iface, struct uac3_power_domain_descriptor *pd_desc = p; int i; + if (!snd_usb_validate_audio_desc(p, UAC_VERSION_3)) + continue; for (i = 0; i < pd_desc->bNrEntities; i++) { if (pd_desc->baEntityID[i] == id) { pd->pd_id = pd_desc->bPowerDomainID; |
