|
@@ -276,7 +276,7 @@ static bool unpack_nameX(struct aa_ext *e, enum aa_code code, const char *name)
|
|
|
char *tag = NULL;
|
|
char *tag = NULL;
|
|
|
size_t size = unpack_u16_chunk(e, &tag);
|
|
size_t size = unpack_u16_chunk(e, &tag);
|
|
|
/* if a name is specified it must match. otherwise skip tag */
|
|
/* if a name is specified it must match. otherwise skip tag */
|
|
|
- if (name && (!size || strcmp(name, tag)))
|
|
|
|
|
|
|
+ if (name && (!size || tag[size-1] != '\0' || strcmp(name, tag)))
|
|
|
goto fail;
|
|
goto fail;
|
|
|
} else if (name) {
|
|
} else if (name) {
|
|
|
/* if a name is specified and there is no name tag fail */
|
|
/* if a name is specified and there is no name tag fail */
|