diff options
author | Bdale Garbee <bdale@gag.com> | 2018-08-05 11:24:13 +0800 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2018-08-05 11:24:13 +0800 |
commit | a3b4f0d33e9d13fb5294397304ec0eb44ecaf1fc (patch) | |
tree | 69c563070ea7ca4a127f2ac925f18a36acb888bb /altoslib/AltosHexfile.java | |
parent | 67da03d1382228a95d0414294703371cf32e666e (diff) | |
parent | 3a2a5a05bb6372d9003905cee7afdfcd6d38ae7e (diff) |
Merge branch 'branch-1.8' into debian
Diffstat (limited to 'altoslib/AltosHexfile.java')
-rw-r--r-- | altoslib/AltosHexfile.java | 20 |
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() { |