[maguro] Update COMPREHENSION-TLV parser in CAT

1. Fix the ClassCastException while handling spec out 'Setup menu'
   -Ghana MTN simcard and JDI simcard sends abnormal 'setup menu'cmd.
   -Those 'setup menu' is spec out.
   -At the end of the proactive cmd,extra bytes '0x00 0x00 0x00 0x00' is
   followed.
   - That cause ClassCastException and phone crash.

Bug: 5574160
Change-Id: Ieafb6c4efd94bb4e2a39a04612a6761c958654bb
Signed-off-by: dujin.cha <dujin.cha@samsung.com>
This commit is contained in:
Wink Saville
2011-11-09 17:31:34 -08:00
parent fee5f29b22
commit f08455451c

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2006 The Android Open Source Project
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,6 +28,7 @@ import java.util.List;
* {@hide}
*/
class ComprehensionTlv {
private static final String LOG_TAG = "ComprehensionTlv";
private int mTag;
private boolean mCr;
private int mLength;
@@ -88,8 +89,13 @@ class ComprehensionTlv {
int endIndex = data.length;
while (startIndex < endIndex) {
ComprehensionTlv ctlv = ComprehensionTlv.decode(data, startIndex);
items.add(ctlv);
startIndex = ctlv.mValueIndex + ctlv.mLength;
if (ctlv != null) {
items.add(ctlv);
startIndex = ctlv.mValueIndex + ctlv.mLength;
} else {
CatLog.d(LOG_TAG, "decodeMany: ctlv is null, stop decoding");
break;
}
}
return items;