From 63c997c637feb86a112fe4249363050e78046614 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 29 Jun 2020 15:00:47 +0200 Subject: [PATCH] 4.9-stable patches added patches: alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch --- ...l-check-in-snd_emuusb_set_samplerate.patch | 53 +++++++++++++++++++ queue-4.9/series | 1 + 2 files changed, 54 insertions(+) create mode 100644 queue-4.9/alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch diff --git a/queue-4.9/alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch b/queue-4.9/alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch new file mode 100644 index 00000000000..7f7a1691717 --- /dev/null +++ b/queue-4.9/alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch @@ -0,0 +1,53 @@ +From 6de3c9e3f6b3eaf66859e1379b3f35dda781416b Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 15 Aug 2019 11:41:06 +0200 +Subject: ALSA: usb-audio: Fix invalid NULL check in snd_emuusb_set_samplerate() + +From: Takashi Iwai + +commit 6de3c9e3f6b3eaf66859e1379b3f35dda781416b upstream. + +The quirk function snd_emuusb_set_samplerate() has a NULL check for +the mixer element, but this is useless in the current code. It used +to be a check against mixer->id_elems[unitid] but it was changed later +to the value after mixer_eleme_list_to_info() which is always non-NULL +due to the container_of() usage. + +This patch fixes the check before the conversion. + +While we're at it, correct a typo in the comment in the function, +too. + +Fixes: 8c558076c740 ("ALSA: usb-audio: Clean up mixer element list traverse") +Cc: +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/mixer_quirks.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/sound/usb/mixer_quirks.c ++++ b/sound/usb/mixer_quirks.c +@@ -1168,17 +1168,17 @@ void snd_emuusb_set_samplerate(struct sn + { + struct usb_mixer_interface *mixer; + struct usb_mixer_elem_info *cval; +- int unitid = 12; /* SamleRate ExtensionUnit ID */ ++ int unitid = 12; /* SampleRate ExtensionUnit ID */ + + list_for_each_entry(mixer, &chip->mixer_list, list) { +- cval = mixer_elem_list_to_info(mixer->id_elems[unitid]); +- if (cval) { ++ if (mixer->id_elems[unitid]) { ++ cval = mixer_elem_list_to_info(mixer->id_elems[unitid]); + snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, + cval->control << 8, + samplerate_id); + snd_usb_mixer_notify_id(mixer, unitid); ++ break; + } +- break; + } + } + diff --git a/queue-4.9/series b/queue-4.9/series index 6a0d44c2f44..7faea508686 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -186,3 +186,4 @@ sunrpc-fixed-rollback-in-rpc_gssd_dummy_populate.patch sunrpc-properly-set-the-subbuf-parameter-of-xdr_buf_subsegment.patch pnfs-flexfiles-fix-list-corruption-if-the-mirror-count-changes.patch nfsv4-fix-close-not-waiting-for-direct-io-compeletion.patch +alsa-usb-audio-fix-invalid-null-check-in-snd_emuusb_set_samplerate.patch -- 2.47.3