To remove any doubt about how java is doing its byte/integer arithmetic
use readUnsignedByte instead of readByte.
Change-Id: I5bdc200ed0cda51ad739804ac1d8d13c043424ec
*/
// The length equals to 3 plus the number of octets in the vendor
// specific content field. And this is little endian.
- int length = ((dis.readByte() & 0xff) +
- ((dis.readByte() & 0xff) << 8)) - 3;
+ int length = (dis.readUnsignedByte() +
+ (dis.readUnsignedByte() << 8)) - 3;
int type = dis.readUnsignedByte();
- byte transId = dis.readByte();
+ int transId = dis.readUnsignedByte();
int status = dis.readUnsignedByte();
if (length < 0) {
return null;