Package: libxml2-utils
Version: 2.9.4+dfsg1-2.2

It looks like there is an issue in parsing (interpreting?) the following regex:

  <xs:simpleType name="UniqueIdentifier">
    <xs:restriction base="xs:string">
      <xs:minLength value="3"/>
      <xs:maxLength value="64"/>
      <xs:pattern value="(([1-9][0-9]*)|0)(\.([1-9][0-9]*|0))+"/>
    </xs:restriction>
  </xs:simpleType>


Steps:

$ xmllint --noout --schema bug.xsd bug.xml
bug.xml validates

Clearly xmllint should have failed the validation. I did test the
regex online and in python interpreter it should not have worked.

Python 2.7.12+ (default, Aug  4 2016, 20:04:34)
[GCC 6.1.1 20160724] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> p=re.compile("(([1-9][0-9]*)|0)(\.([1-9][0-9]*|0))+")
>>> p.match("123") == None
True
<?xml version="1.0" encoding="UTF-8"?>
<report>
<study uid="123"/>
</report>

Attachment: bug.xsd
Description: Binary data

Reply via email to