1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-03-21 22:50:08 +03:00
Nick Wellnhofer eddfbc38fa Don't load external entity from xmlSAX2GetEntity
Despite the comment, I can't see a reason why external entities must be
loaded in the SAX handler. For external entities, the handler is
typically first invoked via xmlParseReference which will later load the
entity on its own if it wasn't loaded yet.

The old code also lead to duplicated SAX events which makes it
basically impossible to reuse xmlSAX2GetEntity for a custom SAX parser.
See the change to the expected test output.

Note that xmlSAX2GetEntity was loading the entity via
xmlParseCtxtExternalEntity while xmlParseReference uses
xmlParseExternalEntityPrivate. In the previous commit, the two
functions were merged, trying to compensate for some slight differences
between the two mostly identical implementations.

But the more urgent reason for this change is that xmlParseReference
has the facility to abort early when recursive entities are detected,
avoiding what could practically amount to an infinite loop.

If you want to backport this change, note that the previous three
commits are required as well:

f9ea1a24 Fix copying of entities in xmlParseReference
5c7e0a9a Copy some XMLReader option flags to parser context
1a3e584a Merge code paths loading external entities

Found by OSS-Fuzz.
2020-02-11 17:35:42 +01:00
2020-02-11 11:32:23 +01:00
2019-09-30 18:04:38 +02:00
2020-02-11 11:32:23 +01:00
2017-11-27 14:35:29 +01:00
2017-11-27 14:35:29 +01:00
2020-01-02 13:50:10 +01:00
2019-09-30 18:04:38 +02:00
2017-11-27 14:35:29 +01:00
2020-01-02 15:24:23 +01:00
2014-10-13 16:06:21 +08:00
2019-09-30 18:04:38 +02:00
2019-11-06 11:47:57 +01:00
2019-09-30 18:05:42 +02:00
2012-09-11 13:26:36 +08:00
2019-10-30 20:14:56 +01:00
2019-10-20 18:15:34 +02:00
2019-09-30 18:04:38 +02:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:05:45 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2010-03-10 10:35:56 +01:00
2020-02-11 11:32:23 +01:00
2012-08-17 11:59:01 +08:00
2019-09-30 18:04:38 +02:00
2017-06-17 16:34:23 +02:00
2017-11-09 17:28:00 +01:00
2019-09-26 12:11:39 +02:00
2020-01-02 14:14:48 +01:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2012-05-07 15:23:25 +08:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:04:38 +02:00
2012-09-11 13:26:36 +08:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:04:38 +02:00
2019-09-25 15:27:45 +02:00
2012-09-11 13:26:36 +08:00
2018-11-29 22:11:59 +01:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:04:38 +02:00
2020-01-10 15:55:07 +01:00
2019-09-30 18:04:38 +02:00
2013-12-12 15:00:46 +08:00
2013-12-12 15:11:40 +08:00
2019-09-30 18:04:38 +02:00
2012-09-11 13:26:36 +08:00
2019-09-30 18:04:38 +02:00
2020-01-02 14:14:48 +01:00
2019-09-30 18:04:38 +02:00
2017-11-27 14:33:37 +01:00
2019-11-11 11:29:17 +01:00
2020-02-11 11:32:23 +01:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2020-01-02 14:12:39 +01:00
2017-06-18 17:58:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00
2019-09-30 18:04:38 +02:00

                  XML toolkit from the GNOME project

Full documentation is available on-line at
    http://xmlsoft.org/

This code is released under the MIT Licence see the Copyright file.

To build on an Unixised setup:
   ./configure ; make ; make install
   if the ./configure file does not exist, run ./autogen.sh instead.
To build on Windows:
   see instructions on win32/Readme.txt

To assert build quality:
   on an Unixised setup:
      run make tests
   otherwise:
       There is 3 standalone tools runtest.c runsuite.c testapi.c, which
       should compile as part of the build or as any application would.
       Launch them from this directory to get results, runtest checks 
       the proper functionning of libxml2 main APIs while testapi does
       a full coverage check. Report failures to the list.

To report bugs, follow the instructions at: 
  http://xmlsoft.org/bugs.html

A mailing-list xml@gnome.org is available, to subscribe:
    http://mail.gnome.org/mailman/listinfo/xml

The list archive is at:
    http://mail.gnome.org/archives/xml/

All technical answers asked privately will be automatically answered on
the list and archived for public access unless privacy is explicitly
required and justified.

Daniel Veillard

$Id$
Description
XML parser and toolkit
Readme 34 MiB
Languages
C 88.1%
HTML 5.8%
Python 3.6%
M4 0.5%
CMake 0.5%
Other 1.4%