mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
dashdemux: mpdparser: avoid double free
The _parse_url function already frees the previous pointer, avoid freeing it before without setting to null or we have a double free. Coverity ID: 1212181 Coverity ID: 1212180 Coverity ID: 1212179
This commit is contained in:
parent
8299c5b5b4
commit
64bea0252b
1 changed files with 3 additions and 10 deletions
|
@ -1213,16 +1213,12 @@ gst_mpdparser_parse_seg_base_type_ext (GstSegmentBaseType ** pointer,
|
||||||
if (cur_node->type == XML_ELEMENT_NODE) {
|
if (cur_node->type == XML_ELEMENT_NODE) {
|
||||||
if (xmlStrcmp (cur_node->name, (xmlChar *) "Initialization") == 0 ||
|
if (xmlStrcmp (cur_node->name, (xmlChar *) "Initialization") == 0 ||
|
||||||
xmlStrcmp (cur_node->name, (xmlChar *) "Initialisation") == 0) {
|
xmlStrcmp (cur_node->name, (xmlChar *) "Initialisation") == 0) {
|
||||||
if (seg_base_type->Initialization) {
|
/* parse will free the previous pointer to create a new one */
|
||||||
gst_mpdparser_free_url_type_node (seg_base_type->Initialization);
|
|
||||||
}
|
|
||||||
gst_mpdparser_parse_url_type_node (&seg_base_type->Initialization,
|
gst_mpdparser_parse_url_type_node (&seg_base_type->Initialization,
|
||||||
cur_node);
|
cur_node);
|
||||||
} else if (xmlStrcmp (cur_node->name,
|
} else if (xmlStrcmp (cur_node->name,
|
||||||
(xmlChar *) "RepresentationIndex") == 0) {
|
(xmlChar *) "RepresentationIndex") == 0) {
|
||||||
if (seg_base_type->RepresentationIndex) {
|
/* parse will free the previous pointer to create a new one */
|
||||||
gst_mpdparser_free_url_type_node (seg_base_type->RepresentationIndex);
|
|
||||||
}
|
|
||||||
gst_mpdparser_parse_url_type_node (&seg_base_type->RepresentationIndex,
|
gst_mpdparser_parse_url_type_node (&seg_base_type->RepresentationIndex,
|
||||||
cur_node);
|
cur_node);
|
||||||
}
|
}
|
||||||
|
@ -1369,10 +1365,7 @@ gst_mpdparser_parse_mult_seg_base_type_ext (GstMultSegmentBaseType ** pointer,
|
||||||
(&mult_seg_base_type->SegmentTimeline, cur_node);
|
(&mult_seg_base_type->SegmentTimeline, cur_node);
|
||||||
} else if (xmlStrcmp (cur_node->name,
|
} else if (xmlStrcmp (cur_node->name,
|
||||||
(xmlChar *) "BitstreamSwitching") == 0) {
|
(xmlChar *) "BitstreamSwitching") == 0) {
|
||||||
if (mult_seg_base_type->BitstreamSwitching) {
|
/* parse frees the old url before setting the new one */
|
||||||
gst_mpdparser_free_url_type_node
|
|
||||||
(mult_seg_base_type->BitstreamSwitching);
|
|
||||||
}
|
|
||||||
gst_mpdparser_parse_url_type_node
|
gst_mpdparser_parse_url_type_node
|
||||||
(&mult_seg_base_type->BitstreamSwitching, cur_node);
|
(&mult_seg_base_type->BitstreamSwitching, cur_node);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue