Fixed group traversal bug. Added ACHR flag "Unknown 30". All non-REFR flags checked.
This commit is contained in:
@@ -77,7 +77,10 @@ const char *walk_unknown_data(const char *data, size_t size) {
|
||||
|
||||
const char *end = data + size;
|
||||
while (data != end) {
|
||||
assert(data < end);
|
||||
if (data >= end) {
|
||||
fflush(stdout);
|
||||
assert(false);
|
||||
}
|
||||
|
||||
const Type4 *type = (Type4 *)data;
|
||||
|
||||
@@ -101,9 +104,10 @@ const char *walk_group(const char *data) {
|
||||
|
||||
const char *const start = data + sizeof(Group);
|
||||
const char *const end = data + header->size;
|
||||
size_t size = header->size - sizeof(Group);
|
||||
|
||||
// walk through the groups/records inside the group
|
||||
data = walk_unknown_data(start, header->size);
|
||||
data = walk_unknown_data(start, size);
|
||||
assert(data == end);
|
||||
|
||||
return data;
|
||||
@@ -205,7 +209,8 @@ void print_record_flags(Record *const header) {
|
||||
if (str) {
|
||||
printf(" - %s\n", str);
|
||||
flags -= ((uint32_t)1) << highest;
|
||||
}
|
||||
} else
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user