Release of libxml2-2.9.4

* doc/xml.html libxml.spec.in: updated for the release
* doc/*: regenerated but no API additions
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index c68ae92..af3b1a5 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -143,6 +143,7 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
 </dd><dt>unsafe</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
 </dd><dt>unsigned</dt><dd><a href="">c</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
 <a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
 </dd><dt>unsupported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 9027afe..f9ac249 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -368,9 +368,7 @@
 <a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
 <a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
diff --git a/doc/devhelp/libxml2-xmlmemory.html b/doc/devhelp/libxml2-xmlmemory.html
index 8610538..bf400d0 100644
--- a/doc/devhelp/libxml2-xmlmemory.html
+++ b/doc/devhelp/libxml2-xmlmemory.html
@@ -118,7 +118,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlMallocAtomicLoc"/>xmlMallocAtomicLoc ()</h3><pre class="programlisting">void *	xmlMallocAtomicLoc		(size_t size, <br/>					 const char * file, <br/>					 int line)<br/>
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlMallocLoc"/>xmlMallocLoc ()</h3><pre class="programlisting">void *	xmlMallocLoc			(size_t size, <br/>					 const char * file, <br/>					 int line)<br/>
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
diff --git a/doc/devhelp/libxml2-xmlstring.html b/doc/devhelp/libxml2-xmlstring.html
index 6dfc70b..ca90ed4 100644
--- a/doc/devhelp/libxml2-xmlstring.html
+++ b/doc/devhelp/libxml2-xmlstring.html
@@ -49,7 +49,7 @@
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlCharStrndup">xmlCharStrndup</a>		(const char * cur, <br/>					 int len);
 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcasestr">xmlStrcasestr</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcat">xmlStrcat</a>		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add);
-int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 ... ...);
+int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 ... ...);
 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrstr">xmlStrstr</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
 int	<a href="#xmlUTF8Size">xmlUTF8Size</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
 int	<a href="#xmlStrQEqual">xmlStrQEqual</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
@@ -65,7 +65,7 @@
 int	<a href="#xmlGetUTF8Char">xmlGetUTF8Char</a>			(const unsigned char * utf, <br/>					 int * len);
 int	<a href="#xmlStrcasecmp">xmlStrcasecmp</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrndup">xmlStrndup</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 int len);
-int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 va_list ap);
+int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 va_list ap);
 int	<a href="#xmlUTF8Strsize">xmlUTF8Strsize</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/>					 int len);
 int	<a href="#xmlCheckUTF8">xmlCheckUTF8</a>			(const unsigned char * utf);
 int	<a href="#xmlStrncasecmp">xmlStrncasecmp</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/>					 int len);
@@ -111,7 +111,7 @@
 </pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 ... ...)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 ... ...)<br/>
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
         <hr/>
@@ -119,7 +119,7 @@
 </pre><p>Check if a QName is Equal to a given string</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 va_list ap)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 va_list ap)<br/>
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
         <hr/>
diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html
index d653775..3406e09 100644
--- a/doc/html/libxml-xmlmemory.html
+++ b/doc/html/libxml-xmlmemory.html
@@ -65,7 +65,7 @@
 </pre><p>Initialize the memory layer.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMallocAtomicLoc" id="xmlMallocAtomicLoc"></a>Function: xmlMallocAtomicLoc</h3><pre class="programlisting">void *	xmlMallocAtomicLoc		(size_t size, <br />					 const char * file, <br />					 int line)<br />
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
 void *	xmlMallocFunc			(size_t size)
 </pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
 <h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void *	xmlMallocLoc			(size_t size, <br />					 const char * file, <br />					 int line)<br />
diff --git a/doc/html/libxml-xmlstring.html b/doc/html/libxml-xmlstring.html
index 4f12cc7..89e9809 100644
--- a/doc/html/libxml-xmlstring.html
+++ b/doc/html/libxml-xmlstring.html
@@ -16,9 +16,9 @@
 <pre class="programlisting">int	<a href="#xmlCheckUTF8">xmlCheckUTF8</a>			(const unsigned char * utf)</pre>
 <pre class="programlisting">int	<a href="#xmlGetUTF8Char">xmlGetUTF8Char</a>			(const unsigned char * utf, <br />					 int * len)</pre>
 <pre class="programlisting">int	<a href="#xmlStrEqual">xmlStrEqual</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
-<pre class="programlisting">int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 ... ...)</pre>
+<pre class="programlisting">int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 ... ...)</pre>
 <pre class="programlisting">int	<a href="#xmlStrQEqual">xmlStrQEqual</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
-<pre class="programlisting">int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 va_list ap)</pre>
+<pre class="programlisting">int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 va_list ap)</pre>
 <pre class="programlisting">int	<a href="#xmlStrcasecmp">xmlStrcasecmp</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
 <pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcasestr">xmlStrcasestr</a>		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
 <pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcat">xmlStrcat</a>		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)</pre>
@@ -55,11 +55,11 @@
 </pre><p>Read the first UTF8 character from @utf</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div><h3><a name="xmlStrEqual" id="xmlStrEqual"></a>Function: xmlStrEqual</h3><pre class="programlisting">int	xmlStrEqual			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
 </pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 ... ...)<br />
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrQEqual" id="xmlStrQEqual"></a>Function: xmlStrQEqual</h3><pre class="programlisting">int	xmlStrQEqual			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
 </pre><p>Check if a QName is Equal to a given string</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 va_list ap)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 va_list ap)<br />
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrcasecmp" id="xmlStrcasecmp"></a>Function: xmlStrcasecmp</h3><pre class="programlisting">int	xmlStrcasecmp			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
 </pre><p>a strcasecmp for xmlChar's</p>
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index 7680a1b..a0a0117 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -10985,7 +10985,7 @@
     <function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
       <info>a malloc() equivalent, with logging of the allocation info.</info>
       <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
-      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+      <arg name='size' type='size_t' info='an unsigned int specifying the size in byte to allocate.'/>
       <arg name='file' type='const char *' info='the file name or NULL'/>
       <arg name='line' type='int' info='the line number'/>
     </function>
@@ -14487,7 +14487,7 @@
       <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
       <arg name='buf' type='xmlChar *' info='the result buffer.'/>
       <arg name='len' type='int' info='the result buffer length.'/>
-      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+      <arg name='msg' type='const char *' info='the message with printf formatting.'/>
       <arg name='...' type='...' info='extra parameters for the message.'/>
     </function>
     <function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
@@ -14502,7 +14502,7 @@
       <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
       <arg name='buf' type='xmlChar *' info='the result buffer.'/>
       <arg name='len' type='int' info='the result buffer length.'/>
-      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+      <arg name='msg' type='const char *' info='the message with printf formatting.'/>
       <arg name='ap' type='va_list' info='extra parameters for the message.'/>
     </function>
     <function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index 07a608f..6dce37f 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -8406,9 +8406,7 @@
       <ref name='xmlSplitQName2'/>
       <ref name='xmlSplitQName3'/>
       <ref name='xmlStrEqual'/>
-      <ref name='xmlStrPrintf'/>
       <ref name='xmlStrQEqual'/>
-      <ref name='xmlStrVPrintf'/>
       <ref name='xmlStrcasecmp'/>
       <ref name='xmlStrcasestr'/>
       <ref name='xmlStrcat'/>
@@ -30349,6 +30347,7 @@
         </word>
         <word name='unsigned'>
           <ref name='c'/>
+          <ref name='xmlMallocAtomicLoc'/>
           <ref name='xmlURIUnescapeString'/>
         </word>
         <word name='unsupported'>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index 0825d53..0d4b8fe 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,182 +8,73 @@
   </vendor>
   <product id="libxml2">
     <name>libxml2</name>
-    <version>2.9.2</version>
-    <last-release> Oct 16 2014</last-release>
+    <version>v2.9.3</version>
+    <last-release> Nov 20 2015</last-release>
     <info-url>http://xmlsoft.org/</info-url>
     <changes>   - Security:
-  Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),
-  CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)
-  
-   - Bug Fixes:
-  fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer),
-  xmlmemory: handle realloc properly (Yegor Yefremov),
-  Python generator bug raised by the const change (Daniel Veillard),
-  Windows Critical sections not released correctly (Daniel Veillard),
-  Parser error on repeated recursive entity expansion containing &amp;lt; (Daniel Veillard),
-  xpointer : fixing Null Pointers (Gaurav Gupta),
-  Remove Unnecessary Null check in xpointer.c (Gaurav Gupta),
-  parser bug on misformed namespace attributes (Dennis Filder),
-  Pointer dereferenced before null check (Daniel Veillard),
-  Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta),
-  Possible overflow in HTMLParser.c (Daniel Veillard),
-  python/tests/sync.py assumes Python dictionaries are ordered (John Beck),
-  Fix Enum check and missing break (Gaurav Gupta),
-  xmlIO: Handle error returns from dup() (Philip Withnall),
-  Fix a problem properly saving URIs (Daniel Veillard),
-  wrong error column in structured error when parsing attribute values (Juergen Keil),
-  wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil),
-  no error column in structured error handler for xml schema validation errors (Juergen Keil),
-  Couple of Missing Null checks (Gaurav Gupta),
-  Add couple of missing Null checks (Daniel Veillard),
-  xmlschemastypes: Fix potential array overflow (Philip Withnall),
-  runtest: Fix a memory leak on parse failure (Philip Withnall),
-  xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall),
-  xmlcatalog: Fix a memory leak on quit (Philip Withnall),
-  HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall),
-  Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer),
-  Avoid Possible Null Pointer in trio.c (Gaurav Gupta),
-  Fix processing in SAX2 in case of an allocation failure (Daniel Veillard),
-  XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard),
-  Fix various Missing Null checks (Gaurav Gupta),
-  Fix a potential NULL dereference (Daniel Veillard),
-  Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta),
-  Add a missing argument check (Gaurav Gupta),
-  Adding a check in case of allocation error (Gaurav Gupta),
-  xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder),
-  Adding some missing NULL checks (Gaurav),
-  Fixes for xmlInitParserCtxt (Daniel Veillard),
-  Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard),
-  erroneously ignores a validation error if no error callback set (Daniel Veillard),
-  xmllint was not parsing the --c14n11 flag (Sérgio Batista),
-  Avoid Possible null pointer dereference in memory debug mode (Gaurav),
-  Avoid Double Null Check (Gaurav),
-  Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer),
-  Fix xmlParseInNodeContext() if node is not element (Daniel Veillard),
-  Avoid a possible NULL pointer dereference (Gaurav),
-  Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard),
-  Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard),
-  fixing a ptotential uninitialized access (Daniel Veillard),
-  Fix an fd leak in an error case (Daniel Veillard),
-  Missing initialization for the catalog module (Daniel Veillard),
-  Handling of XPath function arguments in error case (Nick Wellnhofer),
-  Fix a couple of missing NULL checks (Gaurav),
-  Avoid a possibility of dangling encoding handler (Gaurav),
-  Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks),
-  Fix a bug loading some compressed files (Mike Alexander),
-  Fix XPath node comparison bug (Gaurav),
-  Type mismatch in xmlschemas.c (Gaurav),
-  Type mismatch in xmlschemastypes.c (Gaurav),
-  Avoid a deadcode in catalog.c (Daniel Veillard),
-  run close socket on Solaris, same as we do on other platforms (Denis Pauk),
-  Fix pointer dereferenced before null check (Gaurav),
-  Fix a potential NULL dereference in tree code (Daniel Veillard),
-  Fix potential NULL pointer dereferences in regexp code (Gaurav),
-  xmllint --pretty crashed without following numeric argument (Tim Galeckas),
-  Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer),
-  Fix XPath '//' optimization with predicates (Nick Wellnhofer),
-  Clear up a potential NULL dereference (Daniel Veillard),
-  Fix a possible NULL dereference (Gaurav),
-  Avoid crash if allocation fails (Daniel Veillard),
-  Remove occasional leading space in XPath number formatting (Daniel Veillard),
-  Fix handling of mmap errors (Daniel Veillard),
-  Catch malloc error and exit accordingly (Daniel Veillard),
-  missing else in xlink.c (Ami Fischman),
-  Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard),
-  Fix a regression in xmlGetDocCompressMode() (Daniel Veillard),
-  properly quote the namespace uris written out during c14n (Aleksey Sanin),
-  Remove premature XInclude check on URI being relative (Alexey Neyman),
-  Fix missing break on last() function for attributes (dcb),
-  Do not URI escape in server side includes (Romain Bondue),
-  Fix an error in xmlCleanupParser (Alexander Pastukhov)
+  CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),
+  CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),
+  CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),
+  CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),
+  CVE-2015-5312 Another entity expansion issue (David Drysdale),
+  CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),
+  CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),
+  CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),
+  CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),
+  CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),
+  CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)
+  CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),
+  CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),
   
    - Documentation:
-  typo in error messages "colon are forbidden from..." (Daniel Veillard),
-  Fix a link to James SAX documentation old page (Daniel Veillard),
-  Fix typos in relaxng.c (Jan Pokorný),
-  Fix a doc typo (Daniel Veillard),
-  Fix typos in {tree,xpath}.c (errror) (Jan Pokorný),
-  Add limitations about encoding conversion (Daniel Veillard),
-  Fix typos in xmlschemas{,types}.c (Jan Pokorný),
-  Fix incorrect spelling entites-&gt;entities (Jan Pokorný),
-  Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard)
+  Correct spelling of "calling" (Alex Henrie),
+  Fix a small error in xmllint --format description (Fabien Degomme),
+  Avoid XSS on the search of xmlsoft.org (Daniel Veillard)
   
    - Portability:
-  AC_CONFIG_FILES and executable bit (Roumen Petrov),
-  remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov),
-  fix some tabs mixing incompatible with python3 (Roumen Petrov),
-  Visual Studio 14 CTP defines snprintf() (Francis Dupont),
-  OS400: do not try to copy unexisting doc files (Patrick Monnerat),
-  OS400: use either configure.ac or configure.in. (Patrick Monnerat),
-  os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat),
-  OS400: Add some more C macros equivalent procedures. (Patrick Monnerat),
-  OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat),
-  OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat),
-  OS400: include in distribution tarball. (Patrick Monnerat),
-  OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat),
-  OS400: Add compilation scripts. (Patrick Monnerat),
-  OS400: ILE RPG language header files. (Patrick Monnerat),
-  OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat),
-  OS400: UTF8&lt;--&gt;EBCDIC wrappers for system and external library calls (Patrick Monnerat),
-  OS400: Easy character transcoding support (Patrick Monnerat),
-  OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat),
-  OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat),
-  Fix building when configuring without xpath and xptr (Daniel Veillard),
-  configure: Add --with-python-install-dir (Jonas Eriksson),
-  Fix compilation with minimum and xinclude. (Nicolas Le Cam),
-  Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam),
-  Fix compilation with minimum and schematron. (Nicolas Le Cam),
-  Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam),
-  Don't use xmlValidateName() when not available. (Nicolas Le Cam),
-  Fix a portability issue on Windows (Longstreth Jon),
-  Various portability patches for OpenVMS (Jacob (Jouk) Jansen),
-  Use specific macros for portability to OS/400 (Patrick Monnerat),
-  Add macros needed for OS/400 portability (Patrick Monnerat),
-  Portability patch for fopen on OS/400 (Patrick Monnerat),
-  Portability fixes for OS/400 (Patrick Monnerat),
-  Improve va_list portability (Patrick Monnerat),
-  Portability fix (Patrick Monnerat),
-  Portability fix (Patrick Monnerat),
-  Generic portability fix (Patrick Monnerat),
-  Shortening lines in headers (Patrick Monnerat),
-  build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall),
-  build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall),
-  fix some tabs mixing incompatible with python3 (Daniel Veillard),
-  add additional defines checks for support "./configure --with-minimum" (Denis Pauk),
-  Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis),
-  python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev),
-  python: Fix compiler warnings when building python3 bindings (Armin K),
-  Fix for compilation with python 2.6.8 (Petr Sumbera)
+  threads: use forward declarations only for glibc (Michael Heimpold),
+  Update Win32 configure.js to search for configure.ac (Daniel Veillard)
+  
+   - Bug Fixes:
+  Bug on creating new stream from entity (Daniel Veillard),
+  Fix some loop issues embedding NEXT (Daniel Veillard),
+  Do not print error context when there is none (Daniel Veillard),
+  Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),
+  Fix parsing short unclosed comment uninitialized access (Daniel Veillard),
+  Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),
+  Fix a bug in CData error handling in the push parser (Daniel Veillard),
+  Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),
+  Fix the spurious ID already defined error (Daniel Veillard),
+  Fix previous change to node sort order (Nick Wellnhofer),
+  Fix a self assignment issue raised by clang (Scott Graham),
+  Fail parsing early on if encoding conversion failed (Daniel Veillard),
+  Do not process encoding values if the declaration if broken (Daniel Veillard),
+  Silence clang's -Wunknown-attribute (Michael Catanzaro),
+  xmlMemUsed is not thread-safe (Martin von Gagern),
+  Fix support for except in nameclasses (Daniel Veillard),
+  Fix order of root nodes (Nick Wellnhofer),
+  Allow attributes on descendant-or-self axis (Nick Wellnhofer),
+  Fix the fix to Windows locking (Steve Nairn),
+  Fix timsort invariant loop re: Envisage article (Christopher Swenson),
+  Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),
+  Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),
+  Remove various unused value assignments (Philip Withnall),
+  Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),
+  Revert "Missing initialization for the catalog module" (Daniel Veillard)
   
    - Improvements:
-  win32/libxml2.def.src after rebuild in doc (Roumen Petrov),
-  elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov),
-  elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov),
-  Provide cmake module (Samuel Martin),
-  Fix a couple of issues raised by make dist (Daniel Veillard),
-  Fix and add const qualifiers (Kurt Roeckx),
-  Preparing for upcoming release of 2.9.2 (Daniel Veillard),
-  Fix zlib and lzma libraries check via command line (Dmitriy),
-  wrong error column in structured error when parsing end tag (Juergen Keil),
-  doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat),
-  Add methods for python3 iterator (Ron Angeles),
-  Support element node traversal in document fragments. (Kyle VanderBeek),
-  xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom),
-  Added macros for argument casts (Eric Zurcher),
-  adding init calls to xml and html Read parsing entry points (Daniel Veillard),
-  Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný),
-  Implement choice for name classes on attributes (Shaun McCance),
-  Two small namespace tweaks (Daniel Veillard),
-  xmllint --memory should fail on empty files (Daniel Veillard),
-  Cast encoding name to char pointer to match arg type (Nikolay Sivov)
+  Reuse xmlHaltParser() where it makes sense (Daniel Veillard),
+  xmlStopParser reset errNo (Daniel Veillard),
+  Reenable xz support by default (Daniel Veillard),
+  Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),
+  Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),
+  Regression test for bug #695699 (Nick Wellnhofer),
+  Add a couple of XPath tests (Nick Wellnhofer),
+  Add Python 3 rpm subpackage (Tomas Radej),
+  libxml2-config.cmake.in: update include directories (Samuel Martin),
+  Adding example from bugs 738805 to regression tests (Daniel Veillard)
   
    - Cleanups:
-  Removal of old configure.in (Daniel Veillard),
-  Unreachable code in tree.c (Gaurav Gupta),
-  Remove a couple of dead conditions (Gaurav Gupta),
-  Avoid some dead code and cleanup in relaxng.c (Gaurav),
-  Drop not needed checks (Denis Pauk),
-  Fix a wrong test (Daniel Veillard)
   
 
 </changes>
diff --git a/doc/news.html b/doc/news.html
index e76ef55..0c692c8 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -8,7 +8,97 @@
 H3 {font-family: Verdana,Arial,Helvetica}
 A:link, A:visited, A:active { text-decoration: underline }
 </style><title>Releases</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Releases</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>v2.9.3: Nov 20 2015</h3><ul>
+to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>2.9.4: May 23 2016</h3><ul>
+  <li>Security:<br />
+  More format string warnings with possible format string vulnerability (David Kilzer),<br />
+  Avoid building recursive entities (Daniel Veillard),<br />
+  Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br />
+  Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br />
+  Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br />
+  Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br />
+  Fix some format string warnings with possible format string vulnerability (David Kilzer),<br />
+  Detect change of encoding when parsing HTML names (Hugh Davenport),<br />
+  Fix inappropriate fetch of entities content (Daniel Veillard),<br />
+  Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br />
+  Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br />
+  Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br />
+  Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br />
+  Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br />
+  </li>
+
+  <li>Documentation:<br />
+  Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br />
+  Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br />
+  Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br />
+  Correct a typo. (Shlomi Fish)<br />
+  </li>
+
+  <li>Portability:<br />
+  Correct the usage of LDFLAGS (Mattias Hansson),<br />
+  Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br />
+  libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br />
+  Fix apibuild for a recently added construct (Daniel Veillard),<br />
+  Use pkg-config to locate zlib when possible (Stewart Brodie),<br />
+  Use pkg-config to locate ICU when possible (Stewart Brodie),<br />
+  Portability to non C99 compliant compilers (Patrick Monnerat),<br />
+  dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br />
+  os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br />
+  os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br />
+  os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br />
+  os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br />
+  os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br />
+  os400: implement CL command XMLLINT. (Patrick Monnerat),<br />
+  os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br />
+  os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br />
+  os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br />
+  os400: use like() for double type. (Patrick Monnerat),<br />
+  os400: use like() for int type. (Patrick Monnerat),<br />
+  os400: use like() for unsigned int type. (Patrick Monnerat),<br />
+  os400: use like() for enum types. (Patrick Monnerat),<br />
+  Add xz to xml2-config --libs output (Baruch Siach),<br />
+  Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br />
+  win32\VC10\config.h and VS 2015 (Bruce Dawson),<br />
+  Add configure maintainer mode (orzen)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br />
+  Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br />
+  Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br />
+  Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br />
+  Integer overflow parsing port number in URI (Michael Paddon),<br />
+  Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br />
+  Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br />
+  Fix namespace axis traversal (Nick Wellnhofer),<br />
+      Fix null pointer deref in docs with no root element (Hugh Davenport),<br />
+  Fix XSD validation of URIs with ampersands (Alex Henrie),<br />
+  xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br />
+  xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+  xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+  Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+  Fix namespace::node() XPath expression (Nick Wellnhofer),<br />
+  Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br />
+  Fix parsing of NCNames in XPath (Nick Wellnhofer),<br />
+  Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br />
+  Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br />
+  Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br />
+  Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br />
+  error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br />
+  Add missing RNG test files (David Kilzer),<br />
+  Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br />
+  Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br />
+  Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br />
+  python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br />
+  Add autogen.sh to distrib (orzen),<br />
+  Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Add more debugging info to runtest (Daniel Veillard),<br />
+  Implement "runtest -u" mode (David Kilzer),<br />
+  Add a make rule to rebuild for ASAN (Daniel Veillard)<br />
+  </li>
+</ul><h3>v2.9.3: Nov 20 2015</h3><ul>
   <li>Security:<br />
   CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br />
   CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br />
diff --git a/doc/xml.html b/doc/xml.html
index 51dca8c..d035934 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -709,6 +709,98 @@
 
 <p>Here is the list of public releases:</p>
 
+<h3>2.9.4: May 23 2016</h3>
+<ul>
+  <li>Security:<br/>
+  More format string warnings with possible format string vulnerability (David Kilzer),<br/>
+  Avoid building recursive entities (Daniel Veillard),<br/>
+  Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br/>
+  Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br/>
+  Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br/>
+  Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br/>
+  Fix some format string warnings with possible format string vulnerability (David Kilzer),<br/>
+  Detect change of encoding when parsing HTML names (Hugh Davenport),<br/>
+  Fix inappropriate fetch of entities content (Daniel Veillard),<br/>
+  Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br/>
+  Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br/>
+  Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br/>
+  Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br/>
+  Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br/>
+  </li>
+
+  <li>Documentation:<br/>
+  Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br/>
+  Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br/>
+  Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br/>
+  Correct a typo. (Shlomi Fish)<br/>
+  </li>
+
+  <li>Portability:<br/>
+  Correct the usage of LDFLAGS (Mattias Hansson),<br/>
+  Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br/>
+  libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br/>
+  Fix apibuild for a recently added construct (Daniel Veillard),<br/>
+  Use pkg-config to locate zlib when possible (Stewart Brodie),<br/>
+  Use pkg-config to locate ICU when possible (Stewart Brodie),<br/>
+  Portability to non C99 compliant compilers (Patrick Monnerat),<br/>
+  dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br/>
+  os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br/>
+  os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br/>
+  os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br/>
+  os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br/>
+  os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br/>
+  os400: implement CL command XMLLINT. (Patrick Monnerat),<br/>
+  os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br/>
+  os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br/>
+  os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br/>
+  os400: use like() for double type. (Patrick Monnerat),<br/>
+  os400: use like() for int type. (Patrick Monnerat),<br/>
+  os400: use like() for unsigned int type. (Patrick Monnerat),<br/>
+  os400: use like() for enum types. (Patrick Monnerat),<br/>
+  Add xz to xml2-config --libs output (Baruch Siach),<br/>
+  Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br/>
+  win32\VC10\config.h and VS 2015 (Bruce Dawson),<br/>
+  Add configure maintainer mode (orzen)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br/>
+  Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br/>
+  Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br/>
+  Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br/>
+  Integer overflow parsing port number in URI (Michael Paddon),<br/>
+  Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br/>
+  Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br/>
+  Fix namespace axis traversal (Nick Wellnhofer),<br/>
+      Fix null pointer deref in docs with no root element (Hugh Davenport),<br/>
+  Fix XSD validation of URIs with ampersands (Alex Henrie),<br/>
+  xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br/>
+  xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+  xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+  Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+  Fix namespace::node() XPath expression (Nick Wellnhofer),<br/>
+  Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br/>
+  Fix parsing of NCNames in XPath (Nick Wellnhofer),<br/>
+  Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br/>
+  Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br/>
+  Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br/>
+  Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br/>
+  error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br/>
+  Add missing RNG test files (David Kilzer),<br/>
+  Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br/>
+  Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br/>
+  Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br/>
+  python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br/>
+  Add autogen.sh to distrib (orzen),<br/>
+  Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Add more debugging info to runtest (Daniel Veillard),<br/>
+  Implement "runtest -u" mode (David Kilzer),<br/>
+  Add a make rule to rebuild for ASAN (Daniel Veillard)<br/>
+  </li>
+</ul>
 <h3>v2.9.3: Nov 20 2015</h3>
 <ul>
   <li>Security:<br/>
diff --git a/libxml.spec.in b/libxml.spec.in
index 6fe3c69..9029a18 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -3,10 +3,10 @@
 Summary: Library providing XML and HTML support
 Name: libxml2
 Version: @VERSION@
-Release: 0rc2%{?dist}%{?extra_release}
+Release: 1%{?dist}%{?extra_release}
 License: MIT
 Group: Development/Libraries
-Source: ftp://xmlsoft.org/libxml2/libxml2-%{version}-rc2.tar.gz
+Source: ftp://xmlsoft.org/libxml2/libxml2-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 BuildRequires: python-devel
 %if 0%{?with_python3}