These changes add support for reading identities in TG files that have
names longer than 127 characters.
This was first fixed in release/1.34.0 and this backports the changes to
release/1.32.0.2.
gitlab #33
Change-Id: Ie78804976457e1bff86842a09d5d76c727df514a
if(type == 1) {
int parent = safeInt();
if(type == 1) {
int parent = safeInt();
- int nameLen = bytes[byteIndex++]&0xff;
+ int nameLen = getDynamicUInt32();
if(byteIndex+nameLen < SIZE) {
procedure.execute(new Identity(rid, new External(parent, utf(bytes, byteIndex, byteIndex + nameLen))));
if(byteIndex+nameLen < SIZE) {
procedure.execute(new Identity(rid, new External(parent, utf(bytes, byteIndex, byteIndex + nameLen))));
else if(type == 3) {
int parent = safeInt();
else if(type == 3) {
int parent = safeInt();
- int nameLen = bytes[byteIndex++]&0xff;
+ int nameLen = getDynamicUInt32();
if(byteIndex+nameLen < SIZE) {
procedure.execute(new Identity(rid, new Internal(parent, utf(bytes, byteIndex, byteIndex + nameLen))));
byteIndex += nameLen;
if(byteIndex+nameLen < SIZE) {
procedure.execute(new Identity(rid, new Internal(parent, utf(bytes, byteIndex, byteIndex + nameLen))));
byteIndex += nameLen;
// Root
else if(type == 0) {
// Root
else if(type == 0) {
- int nameLen = bytes[byteIndex++]&0xff;
+ int nameLen = getDynamicUInt32();
String name = utf(safeBytes(nameLen), 0, nameLen);
String name = utf(safeBytes(nameLen), 0, nameLen);
- int nameLen2 = bytes[byteIndex++]&0xff;
+ int nameLen2 = getDynamicUInt32();
String rType = utf(safeBytes(nameLen2), 0, nameLen2);
procedure.execute(new Identity(rid, new Root(name, rType)));
String rType = utf(safeBytes(nameLen2), 0, nameLen2);
procedure.execute(new Identity(rid, new Root(name, rType)));