| libxml2: Fix CVE-2017-0663 |
| |
| [No upstream tracking] -- https://bugzilla.gnome.org/show_bug.cgi?id=780228 |
| |
| valid: Fix type confusion in xmlValidateOneNamespace |
| |
| Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types |
| on namespace declarations make no practical sense anyway. |
| |
| Fixes bug 780228 |
| |
| Upstream-Status: Backport [https://git.gnome.org/browse/libxml2/commit/?id=92b9e8c8b3787068565a1820ba575d042f9eec66] |
| CVE: CVE-2017-0663 |
| Signed-off-by: Andrej Valek <andrej.valek@siemens.com> |
| |
| diff --git a/valid.c b/valid.c |
| index 19f84b8..e03d35e 100644 |
| --- a/valid.c |
| +++ b/valid.c |
| @@ -4621,6 +4621,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { |
| } |
| } |
| |
| + /* |
| + * Casting ns to xmlAttrPtr is wrong. We'd need separate functions |
| + * xmlAddID and xmlAddRef for namespace declarations, but it makes |
| + * no practical sense to use ID types anyway. |
| + */ |
| +#if 0 |
| /* Validity Constraint: ID uniqueness */ |
| if (attrDecl->atype == XML_ATTRIBUTE_ID) { |
| if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) |
| @@ -4632,6 +4638,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { |
| if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) |
| ret = 0; |
| } |
| +#endif |
| |
| /* Validity Constraint: Notation Attributes */ |
| if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) { |