After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 503275 - Quotation marks and apostrophes not encoded properly by libxml2
Quotation marks and apostrophes not encoded properly by libxml2
Status: RESOLVED OBSOLETE
Product: libxml2
Classification: Platform
Component: general
2.6.23
Other All
: Normal normal
: ---
Assigned To: Daniel Veillard
libxml QA maintainers
Depends on:
Blocks:
 
 
Reported: 2007-12-12 15:17 UTC by Darryl Styer
Modified: 2021-07-05 13:23 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Darryl Styer 2007-12-12 15:17:21 UTC
Please describe the problem:
Enter command: xmlstarlet esc "<&\"'>"
Expect results: &lt;&amp;&quot;&apos;&gt;
Actual results: &lt;&amp;"'&gt;

Steps to reproduce:
Enter command: xmlstarlet esc "<&\"'>"

Actual results:
Results: &lt;&amp;"'&gt;

Expected results:
Expect: &lt;&amp;&quot;&apos;&gt; 

Does this happen every time?
yes

Other information:
The source file xml_escape.c in the xml_starlet path calls xmlEncodeEntitiesReentrant() in libxml2-2.6.23:entities.c.  Here is the code snippet that is possibly broken:

/*
	 * By default one have to encode at least '<', '>', '"' and '&' !
	 */
	if (*cur == '<') {
	    *out++ = '&';
	    *out++ = 'l';
	    *out++ = 't';
	    *out++ = ';';
	} else if (*cur == '>') {
	    *out++ = '&';
	    *out++ = 'g';
	    *out++ = 't';
	    *out++ = ';';
	} else if (*cur == '&') {
	    *out++ = '&';
	    *out++ = 'a';
	    *out++ = 'm';
	    *out++ = 'p';
	    *out++ = ';';
	} else if (((*cur >= 0x20) && (*cur < 0x80)) ||
	    (*cur == '\n') || (*cur == '\t') || ((html) && (*cur == '\r'))) {
	    /*
	     * default case, just copy !
	     */
	    *out++ = *cur;
	}

The double quote and apostrophe are not singled out and are thus just copied to the output stream ...
Comment 1 GNOME Infrastructure Team 2021-07-05 13:23:53 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org.
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org
which have not seen updates for a longer time (resources are unfortunately
quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent
and supported software version, then please follow
  https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines
and create a new ticket at
  https://gitlab.gnome.org/GNOME/libxml2/-/issues/

Thank you for your understanding and your help.