Skip to content

Instantly share code, notes, and snippets.

@vvikramjhu
Last active August 29, 2015 14:23
Show Gist options
  • Save vvikramjhu/af6456b88c6960da770b to your computer and use it in GitHub Desktop.
Save vvikramjhu/af6456b88c6960da770b to your computer and use it in GitHub Desktop.
</entry>
<entry id="CVE-2012-6129">
<vuln:vulnerable-configuration id="http://nvd.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.73"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.00"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.03"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.04"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.01"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.02"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.12"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.13"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.10"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.11"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.30"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.22"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.21"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.20"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.40"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.33"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.32"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.31"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.51"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.50"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.42"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.41"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.61"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.60"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.52"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.93"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.92"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.81"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.80"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.77"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.74"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.91"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.90"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.83"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.82"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.76"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.10"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.06"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.20"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.11"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.03"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.02"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.05"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.04"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.01"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.00"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.50"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.51"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.22"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.52"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.34"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.75"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.60"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.73"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.42"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.53"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.61"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.54"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.32"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.33"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.40"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.41"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.21"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.2"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.30"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.31"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.82"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.90"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.80"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.81"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.6.1"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.5"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.6"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.3"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.4"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.1"/></cpe-lang:logical-test></vuln:vulnerable-configuration></entry></nvd>[vvjhu@varxCent xml splitter and test]$
<?xml version="1.0" encoding="UTF-8"?>
<nvd xmlns:scap-core="http://scap.nist.gov/schema/scap-core/0.1" xmlns:cvss="http://scap.nist.gov/schema/cvss-v2/0.2" xmlns:vuln="http://scap.nist.gov/schema/vulnerability/0.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:patch="http://scap.nist.gov/schema/patch/0.1" xmlns="http://scap.nist.gov/schema/feed/vulnerability/2.0" xmlns:cpe-lang="http://cpe.mitre.org/language/2.0" nvd_xml_version="2.0" pub_date="2015-06-04T04:27:15" xsi:schemaLocation="http://scap.nist.gov/schema/patch/0.1 http://nvd.nist.gov/schema/patch_0.1.xsd http://scap.nist.gov/schema/feed/vulnerability/2.0 http://nvd.nist.gov/schema/nvd-cve-feed_2.0.xsd http://scap.nist.gov/schema/scap-core/0.1 http://nvd.nist.gov/schema/scap-core_0.1.xsd"><entry id="CVE-2012-6129"><vuln:vulnerable-configuration id="http://nvd.nist.gov/"><cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.2"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.96"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.95"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.92"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.91"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.94"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.93"/>
</cpe-lang:logical-test>
</vuln:vulnerable-configuration>
<vuln:vulnerable-configuration id="http://nvd.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:12.10"/>
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:12.04:-:lts"/>
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:11.10"/>
<cpe-lang:fact-ref name="cpe:/o:fedoraproject:fedora:16"/>
</cpe-lang:logical-test>
</vuln:vulnerable-configuration>
<vuln:vulnerable-software-list>
<vuln:product>cpe:/a:transmissionbt:transmission:2.61</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.91</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.60</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.90</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.93</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.81</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.92</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.80</vuln:product>
<vuln:product>cpe:/o:fedoraproject:fedora:16</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.6</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.32</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.94</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.31</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.61</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.93</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.30</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.20</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.96</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.73</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.95</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.22</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.21</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.33</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.50</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.80</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.82</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.70</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.81</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.04</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.4</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.03</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.5</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.06</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.2</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.05</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.3</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.1</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.21</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.51</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.20</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.50</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.82</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.53</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.52</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.11</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.54</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.22</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.71</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.70</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:12.04:-:lts</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.04</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:12.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.6.1</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.40</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.83</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.71</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.52</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.42</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.51</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.41</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.00</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.13</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.12</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.02</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.11</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.01</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.90</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.71</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.70</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.60</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.92</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.91</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.2</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:11.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.73</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.42</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.41</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.75</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.31</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.40</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.74</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.30</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.03</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.77</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.33</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.02</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.76</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.32</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.01</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.00</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.34</vuln:product>
</vuln:vulnerable-software-list>
<vuln:cve-id>CVE-2012-6129</vuln:cve-id>
<vuln:published-datetime>2013-04-02T20:55:01.283-04:00</vuln:published-datetime>
<vuln:last-modified-datetime>2013-04-03T00:00:00.000-04:00</vuln:last-modified-datetime>
<vuln:cvss>
<cvss:base_metrics>
<cvss:score>7.5</cvss:score>
<cvss:access-vector>NETWORK</cvss:access-vector>
<cvss:access-complexity>LOW</cvss:access-complexity>
<cvss:authentication>NONE</cvss:authentication>
<cvss:confidentiality-impact>PARTIAL</cvss:confidentiality-impact>
<cvss:integrity-impact>PARTIAL</cvss:integrity-impact>
<cvss:availability-impact>PARTIAL</cvss:availability-impact>
<cvss:source>http://nvd.nist.gov</cvss:source>
<cvss:generated-on-datetime>2013-04-03T08:50:00.000-04:00</cvss:generated-on-datetime>
</cvss:base_metrics>
</vuln:cvss>
<vuln:cwe id="CWE-119"/>
<vuln:references xml:lang="en" reference_type="PATCH">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://trac.transmissionbt.com/changeset/13646" xml:lang="en">https://trac.transmissionbt.com/changeset/13646</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://trac.transmissionbt.com/ticket/5002" xml:lang="en">https://trac.transmissionbt.com/ticket/5002</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://bugzilla.redhat.com/show_bug.cgi?id=909934" xml:lang="en">https://bugzilla.redhat.com/show_bug.cgi?id=909934</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>UBUNTU</vuln:source>
<vuln:reference href="http://www.ubuntu.com/usn/USN-1747-1" xml:lang="en">USN-1747-1</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MLIST</vuln:source>
<vuln:reference href="http://www.openwall.com/lists/oss-security/2013/02/13/1" xml:lang="en">[oss-security] 20130212 Re: CVE request: Transmission can be made to crash remotely</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>SUSE</vuln:source>
<vuln:reference href="http://lists.opensuse.org/opensuse-updates/2013-03/msg00064.html" xml:lang="en">openSUSE-SU-2013:0485</vuln:reference>
</vuln:references>
<vuln:summary>Stack-based buffer overflow in utp.cpp in libutp, as used in Transmission before 2.74 and possibly other products, allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via crafted "micro transport protocol packets."</vuln:summary>
</entry>
<entry id="CVE-2012-6130">
<vuln:vulnerable-configuration id="http://www.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.9"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.0"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.1"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.10"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.11"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.12"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.13"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.14"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.15"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.16"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.17"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.18"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.19"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.2"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.3"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.4"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.5"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.6"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.7"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.8"/>
</cpe-lang:logical-test>
<entry id="CVE-2012-6129">
<vuln:vulnerable-configuration id="http://nvd.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.73"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.00"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.03"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.04"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.01"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.02"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.12"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.13"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.10"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.11"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.30"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.22"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.21"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.20"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.40"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.33"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.32"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.31"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.51"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.50"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.42"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.41"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.61"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.60"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:2.52"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.93"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.92"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.81"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.80"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.77"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.74"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.91"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.90"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.83"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.82"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.76"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.10"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.06"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.20"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.11"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.03"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.02"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.05"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.04"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.01"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.00"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.50"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.51"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.22"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.52"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.34"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.75"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.60"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.73"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.42"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.53"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.61"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.54"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.32"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.33"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.40"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.41"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.21"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.2"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.30"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:1.31"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.82"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.90"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.80"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.81"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.71"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.72"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.6.1"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.70"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.5"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.6"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.3"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.4"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.1"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.2"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.96"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.95"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.92"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.91"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.94"/>
<cpe-lang:fact-ref name="cpe:/a:transmissionbt:transmission:0.93"/>
</cpe-lang:logical-test>
</vuln:vulnerable-configuration>
<vuln:vulnerable-configuration id="http://nvd.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:12.10"/>
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:12.04:-:lts"/>
<cpe-lang:fact-ref name="cpe:/o:canonical:ubuntu_linux:11.10"/>
<cpe-lang:fact-ref name="cpe:/o:fedoraproject:fedora:16"/>
</cpe-lang:logical-test>
</vuln:vulnerable-configuration>
<vuln:vulnerable-software-list>
<vuln:product>cpe:/a:transmissionbt:transmission:1.05</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.06</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.03</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.04</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.33</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.21</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.22</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.31</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.95</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.32</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.20</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.96</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:12.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.73</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.61</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.93</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.30</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.94</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.71</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.91</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.60</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.92</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.70</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.90</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.6.1</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.6</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.5</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.2</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:12.04:-:lts</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.4</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.1</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.3</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.04</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.22</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.54</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.11</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.20</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.52</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.21</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.53</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.50</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.82</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.51</vuln:product>
<vuln:product>cpe:/o:canonical:ubuntu_linux:11.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.60</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.92</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.80</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.61</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.93</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.81</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.90</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.91</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.13</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.01</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.02</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.11</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.12</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.00</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.41</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.10</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.42</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.51</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.83</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.71</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.52</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.40</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.81</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.50</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.82</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:0.70</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.80</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.2</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.02</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.34</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.03</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.00</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.76</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.32</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.01</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.77</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.33</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.42</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.74</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.30</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.75</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.31</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.40</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.72</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:2.41</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.73</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.70</vuln:product>
<vuln:product>cpe:/a:transmissionbt:transmission:1.71</vuln:product>
<vuln:product>cpe:/o:fedoraproject:fedora:16</vuln:product>
</vuln:vulnerable-software-list>
<vuln:cve-id>CVE-2012-6129</vuln:cve-id>
<vuln:published-datetime>2013-04-02T20:55:01.283-04:00</vuln:published-datetime>
<vuln:last-modified-datetime>2013-04-03T00:00:00.000-04:00</vuln:last-modified-datetime>
<vuln:cvss>
<cvss:base_metrics>
<cvss:score>7.5</cvss:score>
<cvss:access-vector>NETWORK</cvss:access-vector>
<cvss:access-complexity>LOW</cvss:access-complexity>
<cvss:authentication>NONE</cvss:authentication>
<cvss:confidentiality-impact>PARTIAL</cvss:confidentiality-impact>
<cvss:integrity-impact>PARTIAL</cvss:integrity-impact>
<cvss:availability-impact>PARTIAL</cvss:availability-impact>
<cvss:source>http://nvd.nist.gov</cvss:source>
<cvss:generated-on-datetime>2013-04-03T08:50:00.000-04:00</cvss:generated-on-datetime>
</cvss:base_metrics>
</vuln:cvss>
<vuln:cwe id="CWE-119"/>
<vuln:references xml:lang="en" reference_type="PATCH">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://trac.transmissionbt.com/changeset/13646" xml:lang="en">https://trac.transmissionbt.com/changeset/13646</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://trac.transmissionbt.com/ticket/5002" xml:lang="en">https://trac.transmissionbt.com/ticket/5002</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MISC</vuln:source>
<vuln:reference href="https://bugzilla.redhat.com/show_bug.cgi?id=909934" xml:lang="en">https://bugzilla.redhat.com/show_bug.cgi?id=909934</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>UBUNTU</vuln:source>
<vuln:reference href="http://www.ubuntu.com/usn/USN-1747-1" xml:lang="en">USN-1747-1</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>MLIST</vuln:source>
<vuln:reference href="http://www.openwall.com/lists/oss-security/2013/02/13/1" xml:lang="en">[oss-security] 20130212 Re: CVE request: Transmission can be made to crash remotely</vuln:reference>
</vuln:references>
<vuln:references xml:lang="en" reference_type="UNKNOWN">
<vuln:source>SUSE</vuln:source>
<vuln:reference href="http://lists.opensuse.org/opensuse-updates/2013-03/msg00064.html" xml:lang="en">openSUSE-SU-2013:0485</vuln:reference>
</vuln:references>
<vuln:summary>Stack-based buffer overflow in utp.cpp in libutp, as used in Transmission before 2.74 and possibly other products, allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via crafted "micro transport protocol packets."</vuln:summary>
</entry>
<entry id="CVE-2012-6130">
<vuln:vulnerable-configuration id="http://www.nist.gov/">
<cpe-lang:logical-test operator="OR" negate="false">
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.9"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.0"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.1"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.10"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.11"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.12"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.13"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.14"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.15"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.16"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.17"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.18"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.19"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.2"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.3"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.4"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.5"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.6"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.7"/>
<cpe-lang:fact-ref name="cpe:/a:roundup-tracker:roundup:1.4.8"/>
</cpe-lang:logical-test>
</vuln:vulnerable-configuration>
<vuln:vulnerable-software-list>
<vuln:product>cpe:/a:roundup-tracker:roundup:1.4.9</vuln:product>
<vuln:product>cpe:/a:roundup-tracker:roundup:1.4.11</vuln:product>
# Website -- https://gist.github.com/benallard/8042835/download#
#!/usr/bin/env python
import os
import xml.parsers.expat
from xml.sax.saxutils import escape
from optparse import OptionParser
from math import log10
# How much data we process at a time
CHUNK_SIZE = 1024 * 1024
# The sequence of element leading us to the current one
path = []
# How far we are in the current file
cur_size = 0
# From how much should we start another file
MAX_SIZE = 1024*1024 # 1Mb
# The current index
cur_idx = 0
# The current file handle we are writing to
cur_file = None
# The format string used to introduce the index in the file to be written
FMT = ".%d"
# The filename we are playing with
out_dir = None
root = None
ext = None
# The xml declaration of the file.
xml_declaration = None
# What was the signature of the last start element
start = None
# if we are currently in the process of changing file
ending = False
def attrs_s(attrs):
""" This generate the XML attributes from an element attribute list """
l = ['']
for i in range(0,len(attrs), 2):
l.append('%s="%s"' % (attrs[i], escape(attrs[i+1])))
return ' '.join(l)
def next_file():
""" This makes the decision to cut the current file and starta new one """
global cur_size, ending
if (not ending) and (cur_size > MAX_SIZE):
# size above threshold, and not already ending
global cur_file, cur_idx
print "part %d Done" % cur_idx
ending = True
# Close the current elements
for elem in reversed(path):
end_element(elem[0])
# Close the file
cur_file.close()
# reset the size
cur_size = 0
# Open another file
cur_idx += 1
cur_file = open(os.path.join(out_dir, root + FMT % cur_idx + ext),
'wt')
if xml_declaration is not None:
cur_file.write('<?xml%s?>\n' % attrs_s(xml_declaration))
# Start again where we stopped
for elem in path:
start_element(*elem)
# We are done 'ending'
ending = False
def xml_decl(version, encoding, standalone):
global xml_declaration
l = ['version', version, 'encoding', encoding]
if standalone != -1:
l.extend(['standalone', 'yes' if standalone else 'no'])
xml_declaration = l
cur_file.write('<?xml%s?>\n' % attrs_s(xml_declaration))
def start_element(name, attrs):
""" Called by the parser when he meet a start element """
global cur_size, start
if start is not None:
# Chaining starts after each others
cur_file.write('<%s%s>' % (start[0], attrs_s(start[1])))
start = (name, attrs)
if ending:
return
cur_size += len(name) + sum(len(k) for k in attrs)
path.append((name, attrs))
def end_element(name):
""" Caled by the parser when he meet an end element """
global cur_size
global start
if start is not None:
# Empty element, good, we did not wrote the start part
cur_file.write('<%s%s/>' % (start[0],attrs_s(start[1])))
else:
# There was some data, close it normaly
cur_file.write('</%s>' % name)
start = None
if ending:
return
elem = path.pop()
assert elem[0] == name
cur_size += len(name)
next_file()
def char_data(data):
""" Called by the parser when he meet data """
global cur_size, start
wroteStart = False
if start is not None:
# The data belong to an element, we should write the start part first
cur_file.write('<%s%s>' % (start[0], attrs_s(start[1])))
start = None
wroteStart = True
# ``escape`` is too much for us, only & and < ned to be escaped there ...
data = data.replace('&', '&amp;')
data = data.replace('<', '&lt;')
if data == '>':
data = '&gt;'
cur_file.write(data.encode('utf-8'))
cur_size += len(data)
if not wroteStart:
# The data was outside of an element, it could be the right moment to
# make the split
next_file()
def main(filename, output_dir):
# Create a parser
p = xml.parsers.expat.ParserCreate()
# We want to reproduce the input, so we are interested in the order of the
# attributess
p.ordered_attributes = 1
# Set our callbacks (we are stripping comments out by not defining
# callbacks for them)
p.XmlDeclHandler = xml_decl
p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
global cur_file, cur_idx
global out_dir, root, ext
global FMT
FMT = ".%%0%dd" % (int(log10(os.path.getsize(filename) / MAX_SIZE)) + 1)
out_dir, filename = os.path.split(filename)
if output_dir is not None:
out_dir = output_dir
root, ext = os.path.splitext(filename)
cur_file = open(os.path.join(out_dir, root + FMT % cur_idx + ext), 'wt')
with open(filename, 'rt') as xml_file:
while True:
# Read a chunk
chunk = xml_file.read(CHUNK_SIZE)
if len(chunk) < CHUNK_SIZE:
# End of file
# tell the parser we're done
p.Parse(chunk, 1)
# exit the loop
break
# process the chunk
p.Parse(chunk)
# Don't forget to close our handle
cur_file.close()
print "part %d Done" % cur_idx
if __name__ == "__main__":
parser = OptionParser(usage="usage: %prog [options] XML_FILE")
parser.add_option("-o", "--output-dir",
help="Specify the directory where the xml files will be written" \
"(default to the same directory where the original file is)")
parser.add_option("-M", "--max_size", type="int",
help="Specify the size at which the files should be split (in Kb)")
(options, args) = parser.parse_args()
if len(args) != 1:
parser.error("incorrect number of arguments")
if options.max_size is not None:
MAX_SIZE = options.max_size * 1024
main(args[0], options.output_dir)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment