Projects
Eulaceura:Mainline
compat-rest
_service:obs_scm:backport-xml-Don-t-crash-parsi...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:backport-xml-Don-t-crash-parsing-empty-XML-string.patch of Package compat-rest
From a217a9fea1a1cfb2bee3263b0ea08b860535af8d Mon Sep 17 00:00:00 2001 From: Christophe Fergeau <cfergeau@redhat.com> Date: Mon, 16 Oct 2017 10:48:33 +0200 Subject: [PATCH] xml: Don't crash parsing empty XML string Calling rest_xml_parser_parse_from_data() with an empty string ("") currently causes a crash as xmlReaderForMemory() returns NULL in that case, and we then try to dereference this pointer without checking it's non-NULL. https://bugzilla.gnome.org/show_bug.cgi?id=789053 --- rest/rest-xml-parser.c | 3 +++ tests/xml.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/rest/rest-xml-parser.c b/rest/rest-xml-parser.c index ffa6ff3..796052e 100644 --- a/rest/rest-xml-parser.c +++ b/rest/rest-xml-parser.c @@ -103,6 +103,9 @@ rest_xml_parser_parse_from_data (RestXmlParser *parser, NULL, /* URL? */ NULL, /* encoding */ XML_PARSE_RECOVER | XML_PARSE_NOCDATA); + if (reader == NULL) { + return NULL; + } xmlTextReaderSetErrorHandler(reader, rest_xml_parser_xml_reader_error, NULL); while (xmlTextReaderRead (reader) == 1) diff --git a/tests/xml.c b/tests/xml.c index 4b7718b..9d03e29 100644 --- a/tests/xml.c +++ b/tests/xml.c @@ -34,6 +34,12 @@ main (int argc, char **argv) parser = rest_xml_parser_new (); + root = rest_xml_parser_parse_from_data (parser, "", -1); + g_assert (root == NULL); + + root = rest_xml_parser_parse_from_data (parser, "<invalid", -1); + g_assert (root == NULL); + root = rest_xml_parser_parse_from_data (parser, TEST_XML, strlen (TEST_XML)); g_assert (root); -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2