aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/validate.c
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2025-06-12 10:08:24 -0700
committerJakub Kicinski <kuba@kernel.org>2025-08-21 11:33:15 -0700
commita9af709fda7edafa17e072bffe610d9e7ed7a5df (patch)
tree11857f0522f37343677b6430ee8f9a4b1a9e420a /sound/usb/validate.c
parentselftests: net: fix memory leak in tls.c (diff)
parentMerge tag 'net-6.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/net... (diff)
downloadlinux-a9af709fda7edafa17e072bffe610d9e7ed7a5df.tar.gz
linux-a9af709fda7edafa17e072bffe610d9e7ed7a5df.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR (net-6.17-rc3). No conflicts or adjacent changes. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'sound/usb/validate.c')
-rw-r--r--sound/usb/validate.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/usb/validate.c b/sound/usb/validate.c
index 6fe206f6e911..4f4e8e87a14c 100644
--- a/sound/usb/validate.c
+++ b/sound/usb/validate.c
@@ -221,6 +221,17 @@ static bool validate_uac3_feature_unit(const void *p,
return d->bLength >= sizeof(*d) + 4 + 2;
}
+static bool validate_uac3_power_domain_unit(const void *p,
+ const struct usb_desc_validator *v)
+{
+ const struct uac3_power_domain_descriptor *d = p;
+
+ if (d->bLength < sizeof(*d))
+ return false;
+ /* baEntities[] + wPDomainDescrStr */
+ return d->bLength >= sizeof(*d) + d->bNrEntities + 2;
+}
+
static bool validate_midi_out_jack(const void *p,
const struct usb_desc_validator *v)
{
@@ -285,6 +296,7 @@ static const struct usb_desc_validator audio_validators[] = {
struct uac3_clock_multiplier_descriptor),
/* UAC_VERSION_3, UAC3_SAMPLE_RATE_CONVERTER: not implemented yet */
/* UAC_VERSION_3, UAC3_CONNECTORS: not implemented yet */
+ FUNC(UAC_VERSION_3, UAC3_POWER_DOMAIN, validate_uac3_power_domain_unit),
{ } /* terminator */
};