summaryrefslogtreecommitdiff
path: root/altoslib/AltosHexfile.java
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2018-08-05 11:24:13 +0800
committerBdale Garbee <bdale@gag.com>2018-08-05 11:24:13 +0800
commita3b4f0d33e9d13fb5294397304ec0eb44ecaf1fc (patch)
tree69c563070ea7ca4a127f2ac925f18a36acb888bb /altoslib/AltosHexfile.java
parent67da03d1382228a95d0414294703371cf32e666e (diff)
parent3a2a5a05bb6372d9003905cee7afdfcd6d38ae7e (diff)
Merge branch 'branch-1.8' into debian
Diffstat (limited to 'altoslib/AltosHexfile.java')
-rw-r--r--altoslib/AltosHexfile.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/altoslib/AltosHexfile.java b/altoslib/AltosHexfile.java
index 6aa98383..f2ab4bea 100644
--- a/altoslib/AltosHexfile.java
+++ b/altoslib/AltosHexfile.java
@@ -294,15 +294,19 @@ public class AltosHexfile {
if (usb_descriptors == null)
return -1;
- /* Walk the descriptors looking for the device */
- a = usb_descriptors.address;
- while (get_u8(a+1) != AO_USB_DESC_DEVICE) {
- int delta = get_u8(a);
- a += delta;
- if (delta == 0 || a >= max_address)
- return -1;
+ try {
+ /* Walk the descriptors looking for the device */
+ a = usb_descriptors.address;
+ while (get_u8(a+1) != AO_USB_DESC_DEVICE) {
+ int delta = get_u8(a);
+ a += delta;
+ if (delta == 0 || a >= max_address)
+ return -1;
+ }
+ return a;
+ } catch (ArrayIndexOutOfBoundsException ae) {
+ return -1;
}
- return a;
}
public AltosUsbId find_usb_id() {