Commit f8e5f90b authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: usb-audio: Fix endianess in descriptor validation

I overlooked that some fields are words and need the converts from
LE in the recently added USB descriptor validation code.
This patch fixes those with the proper macro usages.

Fixes: 57f87706 ("ALSA: usb-audio: More validations of descriptor units")
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200201080530.22390-1-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 78be2228
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ static bool validate_processing_unit(const void *p,
	default:
		if (v->type == UAC1_EXTENSION_UNIT)
			return true; /* OK */
		switch (d->wProcessType) {
		switch (le16_to_cpu(d->wProcessType)) {
		case UAC_PROCESS_UP_DOWNMIX:
		case UAC_PROCESS_DOLBY_PROLOGIC:
			if (d->bLength < len + 1) /* bNrModes */
@@ -125,7 +125,7 @@ static bool validate_processing_unit(const void *p,
	case UAC_VERSION_2:
		if (v->type == UAC2_EXTENSION_UNIT_V2)
			return true; /* OK */
		switch (d->wProcessType) {
		switch (le16_to_cpu(d->wProcessType)) {
		case UAC2_PROCESS_UP_DOWNMIX:
		case UAC2_PROCESS_DOLBY_PROLOCIC: /* SiC! */
			if (d->bLength < len + 1) /* bNrModes */
@@ -142,7 +142,7 @@ static bool validate_processing_unit(const void *p,
			len += 2; /* wClusterDescrID */
			break;
		}
		switch (d->wProcessType) {
		switch (le16_to_cpu(d->wProcessType)) {
		case UAC3_PROCESS_UP_DOWNMIX:
			if (d->bLength < len + 1) /* bNrModes */
				return false;