| Index: third_party/libxml/xmlschemastypes.c
 | 
| diff --git a/third_party/libxml/xmlschemastypes.c b/third_party/libxml/xmlschemastypes.c
 | 
| index 0d967d074132f08f5de740dd6f135eea3d073028..1ce21e10bf14b4b901664b4bb4ed000a69837ef9 100644
 | 
| --- a/third_party/libxml/xmlschemastypes.c
 | 
| +++ b/third_party/libxml/xmlschemastypes.c
 | 
| @@ -2899,12 +2899,23 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
 | 
|          case XML_SCHEMAS_ANYURI:{		
 | 
|                  if (*value != 0) {
 | 
|  		    xmlURIPtr uri;
 | 
| +		    xmlChar *tmpval, *cur;
 | 
|  		    if (normOnTheFly) {		    
 | 
|  			norm = xmlSchemaCollapseString(value);
 | 
|  			if (norm != NULL)
 | 
|  			    value = norm;
 | 
|  		    }
 | 
| -                    uri = xmlParseURI((const char *) value);
 | 
| +		    tmpval = xmlStrdup(value);
 | 
| +		    for (cur = tmpval; *cur; ++cur) {
 | 
| +			if (*cur < 32 || *cur >= 127 || *cur == ' ' ||
 | 
| +			    *cur == '<' || *cur == '>' || *cur == '"' ||
 | 
| +			    *cur == '{' || *cur == '}' || *cur == '|' ||
 | 
| +			    *cur == '\\' || *cur == '^' || *cur == '`' ||
 | 
| +			    *cur == '\'')
 | 
| +			    *cur = '_';
 | 
| +		    }
 | 
| +                    uri = xmlParseURI((const char *) tmpval);
 | 
| +		    xmlFree(tmpval);
 | 
|                      if (uri == NULL)
 | 
|                          goto return1;
 | 
|                      xmlFreeURI(uri);
 | 
| 
 |