]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - sound/usb/validate.c
Merge tag 'riscv/for-v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv...
[linux.git] / sound / usb / validate.c
index 389e8657434ac40e8521e6b2858af1da7b5af9a6..36ae78c3da3da98ced76215d31c1344e72b492cb 100644 (file)
@@ -322,11 +322,28 @@ static bool validate_desc(unsigned char *hdr, int protocol,
 
 bool snd_usb_validate_audio_desc(void *p, int protocol)
 {
-       return validate_desc(p, protocol, audio_validators);
+       unsigned char *c = p;
+       bool valid;
+
+       valid = validate_desc(p, protocol, audio_validators);
+       if (!valid && snd_usb_skip_validation) {
+               print_hex_dump(KERN_ERR, "USB-audio: buggy audio desc: ",
+                              DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
+               valid = true;
+       }
+       return valid;
 }
 
 bool snd_usb_validate_midi_desc(void *p)
 {
-       return validate_desc(p, UAC_VERSION_1, midi_validators);
+       unsigned char *c = p;
+       bool valid;
+
+       valid = validate_desc(p, UAC_VERSION_1, midi_validators);
+       if (!valid && snd_usb_skip_validation) {
+               print_hex_dump(KERN_ERR, "USB-audio: buggy midi desc: ",
+                              DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
+               valid = true;
+       }
+       return valid;
 }
-