From 621085e50f59647d745d12488b88c41077d70ee9 Mon Sep 17 00:00:00 2001 From: Prerepa Viswanadham Date: Wed, 13 Aug 2014 16:52:55 -0700 Subject: [PATCH] Protect from malformed advt with invalid manf_id/data combo Bug: 16979645 Change-Id: Ie7ea00ed20cbad1120c7582bb2bafd44b4295052 --- core/java/android/bluetooth/le/ScanRecord.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/java/android/bluetooth/le/ScanRecord.java b/core/java/android/bluetooth/le/ScanRecord.java index e7f33ff116836..2f3d06fc4bcfa 100644 --- a/core/java/android/bluetooth/le/ScanRecord.java +++ b/core/java/android/bluetooth/le/ScanRecord.java @@ -257,9 +257,11 @@ public final class ScanRecord { } return new ScanRecord(serviceUuids, manufacturerData, serviceData, advertiseFlag, txPowerLevel, localName, scanRecord); - } catch (IndexOutOfBoundsException e) { + } catch (Exception e) { Log.e(TAG, "unable to parse scan record: " + Arrays.toString(scanRecord)); - return null; + // As the record is invalid, ignore all the parsed results for this packet + // and return an empty record with raw scanRecord bytes in results + return new ScanRecord(null, null, null, -1, Integer.MIN_VALUE, null, scanRecord); } }