mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Get rid of error gotos in HTML5 parse conversion
This commit is contained in:
parent
3876225763
commit
acdf63b999
1 changed files with 8 additions and 9 deletions
|
@ -132,7 +132,7 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
xmlNodePtr lxml_element = xmlNewDocNode(lxml_doc, NULL, name, NULL);
|
||||
if (UNEXPECTED(lxml_element == NULL)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
xmlAddChild(lxml_parent, lxml_element);
|
||||
lxml_element->line = sanitize_line_nr(node->line);
|
||||
|
@ -175,13 +175,13 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
|
||||
if (UNEXPECTED(local_name_length >= INT_MAX || value_length >= INT_MAX)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OVERFLOW;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
|
||||
xmlAttrPtr lxml_attr = xmlMalloc(sizeof(xmlAttr));
|
||||
if (UNEXPECTED(lxml_attr == NULL)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
|
||||
memset(lxml_attr, 0, sizeof(xmlAttr));
|
||||
|
@ -193,7 +193,7 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
if (UNEXPECTED(lxml_text == NULL)) {
|
||||
xmlFreeProp(lxml_attr);
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
|
||||
lxml_attr->children = lxml_attr->last = lxml_text;
|
||||
|
@ -238,12 +238,12 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
size_t data_length = text->char_data.data.length;
|
||||
if (UNEXPECTED(data_length >= INT_MAX)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OVERFLOW;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
xmlNodePtr lxml_text = lexbor_libxml2_bridge_new_text_node_fast(lxml_doc, data, data_length, compact_text_nodes);
|
||||
if (UNEXPECTED(lxml_text == NULL)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
xmlAddChild(lxml_parent, lxml_text);
|
||||
if (node->line >= USHRT_MAX) {
|
||||
|
@ -266,7 +266,7 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
);
|
||||
if (UNEXPECTED(lxml_dtd == NULL)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
/* libxml2 doesn't support line numbers on this anyway, it returns -1 instead, so don't bother */
|
||||
} else if (node->type == LXB_DOM_NODE_TYPE_COMMENT) {
|
||||
|
@ -274,14 +274,13 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
|
|||
xmlNodePtr lxml_comment = xmlNewDocComment(lxml_doc, comment->char_data.data.data);
|
||||
if (UNEXPECTED(lxml_comment == NULL)) {
|
||||
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
xmlAddChild(lxml_parent, lxml_comment);
|
||||
lxml_comment->line = sanitize_line_nr(node->line);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
lexbor_array_obj_destroy(&work_list, false);
|
||||
return retval;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue