diff --git a/src/isomedia/isom_read.c b/src/isomedia/isom_read.c index d140b1b0b1..f978ca32f2 100644 --- a/src/isomedia/isom_read.c +++ b/src/isomedia/isom_read.c @@ -2721,6 +2721,11 @@ GF_Err gf_isom_get_user_data(GF_ISOFile *movie, u32 trackNumber, u32 UserDataTyp ptr = (GF_UnknownBox*)gf_list_get(map->boxes, UserDataIndex-1); if (ptr->type == GF_ISOM_BOX_TYPE_UNKNOWN) { + if (!ptr->dataSize) { + *userData = NULL; + *userDataSize = 0; + return GF_OK; + } *userData = (char *)gf_malloc(sizeof(char)*ptr->dataSize); if (!*userData) return GF_OUT_OF_MEM; memcpy(*userData, ptr->data, sizeof(char)*ptr->dataSize); @@ -2728,6 +2733,11 @@ GF_Err gf_isom_get_user_data(GF_ISOFile *movie, u32 trackNumber, u32 UserDataTyp return GF_OK; } else if (ptr->type == GF_ISOM_BOX_TYPE_UUID) { GF_UnknownUUIDBox *p_uuid = (GF_UnknownUUIDBox *)ptr; + if (!p_uuid->dataSize) { + *userData = NULL; + *userDataSize = 0; + return GF_OK; + } *userData = (char *)gf_malloc(sizeof(char)*p_uuid->dataSize); if (!*userData) return GF_OUT_OF_MEM; memcpy(*userData, p_uuid->data, sizeof(char)*p_uuid->dataSize);