int i;
u32 tmp_strsize;
char *tmp_str;
+ Bool zfound=GF_FALSE;
GF_Err e;
ISOM_DECREASE_SIZE(ptr, 25)
ISOM_DECREASE_SIZE(ptr, 1)
tmp_str[i] = gf_bs_read_u8(bs);
tmp_strsize--;
- if (!tmp_str[i])
+ if (!tmp_str[i]) {
+ zfound = GF_TRUE;
break;
+ }
i++;
}
+ if (!zfound)
+ return GF_ISOM_INVALID_FILE;
if (i) {
ptr->movie_identifier = gf_strdup(tmp_str);
}
ptr->server_entry_count = gf_bs_read_u8(bs);
for (i=0; i<ptr->server_entry_count; i++) {
int j=0;
+ zfound = GF_FALSE;
tmp_strsize=(u32)ptr->size;
while (tmp_strsize) {
ISOM_DECREASE_SIZE(ptr, 1)
tmp_str[j] = gf_bs_read_u8(bs);
tmp_strsize--;
- if (!tmp_str[j])
+ if (!tmp_str[j]) {
+ zfound = GF_TRUE;
break;
+ }
j++;
}
+ if (!zfound)
+ return GF_ISOM_INVALID_FILE;
if (j) {
gf_list_insert(ptr->server_entry_table, gf_strdup(tmp_str), i);
}
ptr->quality_entry_count = gf_bs_read_u8(bs);
for (i=0; i<ptr->quality_entry_count; i++) {
int j=0;
+ zfound = GF_FALSE;
tmp_strsize=(u32)ptr->size;
while (tmp_strsize) {
ISOM_DECREASE_SIZE(ptr, 1)
tmp_str[j] = gf_bs_read_u8(bs);
tmp_strsize--;
- if (!tmp_str[j])
+ if (!tmp_str[j]) {
+ zfound = GF_TRUE;
break;
+ }
j++;
}
+ if (!zfound)
+ return GF_ISOM_INVALID_FILE;
if (j) {
gf_list_insert(ptr->quality_entry_table, gf_strdup(tmp_str), i);
}
i=0;
tmp_strsize=(u32)ptr->size;
+ zfound = GF_FALSE;
while (tmp_strsize) {
ISOM_DECREASE_SIZE(ptr, 1)
tmp_str[i] = gf_bs_read_u8(bs);
tmp_strsize--;
- if (!tmp_str[i])
+ if (!tmp_str[i]) {
+ zfound = GF_TRUE;
break;
+ }
i++;
}
+ if (!zfound)
+ return GF_ISOM_INVALID_FILE;
if (i) {
ptr->drm_data = gf_strdup(tmp_str);
}
i=0;
tmp_strsize=(u32)ptr->size;
+ zfound = GF_FALSE;
while (tmp_strsize) {
ISOM_DECREASE_SIZE(ptr, 1)
tmp_str[i] = gf_bs_read_u8(bs);
tmp_strsize--;
- if (!tmp_str[i])
+ if (!tmp_str[i]) {
+ zfound = GF_TRUE;
break;
+ }
i++;
}
+ if (!zfound)
+ return GF_ISOM_INVALID_FILE;
if (i) {
ptr->meta_data = gf_strdup(tmp_str);
}