Mark matching reportIDs as claimed.
authorabieber <abieber@openbsd.org>
Fri, 6 Aug 2021 17:46:45 +0000 (17:46 +0000)
committerabieber <abieber@openbsd.org>
Fri, 6 Aug 2021 17:46:45 +0000 (17:46 +0000)
This fixes a panic that was reported on misc@ and bugs@ by
Mike <the.lists () mgm51 ! com> and
Anindya Mukherjee <anindya49 () hotmail ! com>

OK jcs@, thanks to mpi@/jcs@ for the pointers!

sys/dev/usb/upd.c

index ad65b77..b4eb6f9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: upd.c,v 1.29 2021/03/08 14:35:57 jcs Exp $ */
+/*     $OpenBSD: upd.c,v 1.30 2021/08/06 17:46:45 abieber Exp $ */
 
 /*
  * Copyright (c) 2015 David Higgs <higgsd@gmail.com>
@@ -167,7 +167,7 @@ upd_match(struct device *parent, void *match, void *aux)
                if (upd_lookup_usage_entry(desc, size,
                    upd_usage_roots + i, &item)) {
                        ret = UMATCH_VENDOR_PRODUCT;
-                       break;
+                       uha->claimed[item.report_ID] = 1;
                }
 
        return (ret);