fuzz: Add some known previously crashing test cases
diff --git a/fuzz/crashes/crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17 b/fuzz/crashes/crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17
new file mode 100644
index 0000000..9038147
--- /dev/null
+++ b/fuzz/crashes/crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17
@@ -0,0 +1,53 @@
+<plist version="1.0">
+<dict>
+    <key>some test entitites</key>
+    <dict>
+        <key>copyright</key>
+        <string>&#169;</string>
+        <key>multiple entitites</key>
+        <string>&#x2F20;&#x2F21;&#x2F22;</string>
+        <key>multiple entitites with characters inbetween</key>
+        <string>a&#x2F23;b&#x2F24;c&#x2F25;d</string>
+    </dict>
+    <key>one byte entity</key>
+    <dict>
+        <key>one byte entity</key>
+        <string>&#64;</string>
+        <key>one byte entity with text after</key>
+        <string>&#x40;z</string>
+        <key>one byte entity with text before</key>
+        <string>a&#x40;</string>
+        <key>one byte entity with text before &amp; after</key>
+        <string>a&#64;z</string>
+    </dict>
+    <key>two-byte utf-8</key>
+    <dict>
+        <key>two-byte utf-8</key>
+        <string>&#xC4;</string>
+        <key>two-byte utf-8 with text after</key>
+        <string>&#xCB;yz</string>
+        <key>two-byte utf-8 with text before</key>
+        <string>ab&#xD6;</string>
+        <key>two-byte utf-8 with text before &amp; after</key>
+        <string>ab&#xDC;yz</string>
+    </dict>
+    <key>three byte utf-8</key>
+    <dict>
+        <key>three byte utf-8</key>
+        <string>&#xFFE0;</string>
+        <key>three byte utf-8 with text after</key>
+        <string>&#65505;xyz</string>
+        <key>three byte utf-8 with text bef&a;</key>
+        <string>abc&#xFFE5;</string>
+        <key>three byte utf-8 with text before &amp; after</key>
+       (<string>abc&#65510;xyz</string>
+    </dict>
+    <key>four byte utf-8</key>
+    <dict>
+        <key>four byte utf-8</key>
+        <string>&#x1D562;</string>
+ with text before &amp; after</key>
+        <string>abcd&#x1D565;wxyz</string>
+    </dict>
+</dict>
+</plist>
diff --git a/fuzz/crashes/crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1 b/fuzz/crashes/crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1
new file mode 100644
index 0000000..9954475
--- /dev/null
+++ b/fuzz/crashes/crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.aPropertyList-1.0.dtd">
+<plist version="1.0teger>
+	<integer>9223372036854775807</integer>
+	<integer>-9223372036854775808</integer>
+	<integer>9223372036854775808</036854775808</in6854775808</integer>
+	<integer>9223372036854775808</036854775808</integer>
+</array>
+</plist>
diff --git a/fuzz/crashes/crash-348c909a0b3532977185f551eb5d2ed04e694883 b/fuzz/crashes/crash-348c909a0b3532977185f551eb5d2ed04e694883
new file mode 100644
index 0000000..2942529
--- /dev/null
+++ b/fuzz/crashes/crash-348c909a0b3532977185f551eb5d2ed04e694883
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<integer>-1</integer>
+	<integer>18446744073709551615</integer>
+	<integer>9223372036854775807</integer>
+	<integer>-9223372036854775808</integer>
+	<integer>9223372036854775808</integer>
+</array>
+</plist>
diff --git a/fuzz/crashes/crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a b/fuzz/crashes/crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a
new file mode 100644
index 0000000..cda6a0f
--- /dev/null
+++ b/fuzz/crashes/crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist versiog="1.0">
+<dict>
+	<key>Time1</key>
+	<date>2010-11-12T13:14:15Z</date>
+	<key>Time2</key>
+	<date>4016-07-0-11<!---
\ No newline at end of file
diff --git a/fuzz/crashes/crash-80c28b0e2a446665e68927dd4441c10c9a68e64e b/fuzz/crashes/crash-80c28b0e2a446665e68927dd4441c10c9a68e64e
new file mode 100644
index 0000000..7a7d8f1
--- /dev/null
+++ b/fuzz/crashes/crash-80c28b0e2a446665e68927dd4441c10c9a68e64e
Binary files differ
diff --git a/fuzz/crashes/crash-8acf177da60ecf13c36d0da1b8e25de891980ea6 b/fuzz/crashes/crash-8acf177da60ecf13c36d0da1b8e25de891980ea6
new file mode 100644
index 0000000..9a64518
--- /dev/null
+++ b/fuzz/crashes/crash-8acf177da60ecf13c36d0da1b8e25de891980ea6
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"" http://www.apple.com/DTDs/PropertyList-1.0.dtd<integer>-1</integer>
+	<integnteger>
+</array>
+</plist>
diff --git a/fuzz/crashes/crash-94276cf69a50e78dd6cdf079c208cb80f357cd33 b/fuzz/crashes/crash-94276cf69a50e78dd6cdf079c208cb80f357cd33
new file mode 100644
index 0000000..1eed6ac
--- /dev/null
+++ b/fuzz/crashes/crash-94276cf69a50e78dd6cdf079c208cb80f357cd33
Binary files differ
diff --git a/fuzz/crashes/crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9 b/fuzz/crashes/crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9
new file mode 100644
index 0000000..fb9a05f
--- /dev/null
+++ b/fuzz/crashes/crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9
Binary files differ
diff --git a/fuzz/crashes/crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9 b/fuzz/crashes/crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9
new file mode 100644
index 0000000..f06d59b
--- /dev/null
+++ b/fuzz/crashes/crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9
Binary files differ
diff --git a/fuzz/crashes/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 b/fuzz/crashes/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fuzz/crashes/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
diff --git a/fuzz/crashes/crash-f03c680ee1c4d84c28e731752df77a61e213a24d b/fuzz/crashes/crash-f03c680ee1c4d84c28e731752df77a61e213a24d
new file mode 100644
index 0000000..278dbcc
--- /dev/null
+++ b/fuzz/crashes/crash-f03c680ee1c4d84c28e731752df77a61e213a24d
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>Some ASCII string</key>
+	<string>Test ASCII String</string>
+	<key>Some UTF8 strings</key>
+	<array>
+		<string>àéèçù</string>
+		<string>日本語</string>
+		<string>汉语/漢語</string>
+		<string>한국어/조선말</string>
+		<string>русский язык</string>
+		<string>الْعَرَبيّة</string>
+		<string>עִבְרִית</string>
+		<string>język polski</string>
+		<string>हिन्दी</string>
+	</array>
+	<key>Keys &amp; &quot;entities&quot;</key>
+	<string>hellow world &amp; others &lt;nodes&gt; are &quot;fun!?&apos;</string>
+	<key>Boolean</key>
+	<false/>
+	<key>Another Boolean</key>
+	<true/>
+	<key>Some Int</key>
+	<integer>32434543632</integer>
+	<key>Some Real</key>
+	<real>58654.347656</real>
+	<key>Some Date</key>
+	<date>2009-02-12T22:23:00Z</date>
+	<key>Some Data</key>
+	<data>
+	MDEyMzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1
+	w7klIcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qm
+	w6kiJygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAow
+	MTIzNDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8Onw6ApPSvCsCTCoyRewqgqwrXD
+	uSUhwqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbD
+	qSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAx
+	MjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5
+	JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOp
+	IicoLcOoX8Onw6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEy
+	MzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7kl
+	IcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6ki
+	Jygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIz
+	NDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8Onw6ApPSvCsCTCoyRewqgqwrXDuSUh
+	wqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSIn
+	KC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0
+	NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHC
+	pzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIico
+	LcOoX8Onw6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1
+	Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKn
+	Oi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygt
+	w6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2
+	Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8Onw6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6
+	LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3D
+	qF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3
+	ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzov
+	Oy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOo
+	X8Onw6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4
+	OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87
+	Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hf
+	w6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5
+	VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8Onw6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6Lzsu
+	LD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4OVRFU1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/D
+	p8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87Liw/Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlU
+	RVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hfw6fDoCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4s
+	Pz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5VEVTVDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8On
+	w6ApPSvCsCTCoyRewqgqwrXDuSUhwqc6LzsuLD8+PH4je1t8YFxeQF19wqQKMDEyMzQ1Njc4OVRF
+	U1QwMTIzNDU2Nzg5dGVzdCbDqSInKC3DqF/Dp8OgKT0rwrAkwqMkXsKoKsK1w7klIcKnOi87Liw/
+	Pjx+I3tbfGBcXkBdfcKkCjAxMjM0NTY3ODlURVNUMDEyMzQ1Njc4OXRlc3Qmw6kiJygtw6hfw6fD
+	oCk9K8KwJMKjJF7CqCrCtcO5JSHCpzovOy4sPz48fiN7W3xgXF5AXX3CpAowMTIzNDU2Nzg5VEVT
+	VDAxMjM0NTY3ODl0ZXN0JsOpIicoLcOoX8Onw6ApPSvCsCTCoyRewqg
\ No newline at end of file
diff --git a/fuzz/leaks/leak-47b0a9f21d3affab6cfc898e5140bb53265ada07 b/fuzz/leaks/leak-47b0a9f21d3affab6cfc898e5140bb53265ada07
new file mode 100644
index 0000000..36e09f0
--- /dev/null
+++ b/fuzz/leaks/leak-47b0a9f21d3affab6cfc898e5140bb53265ada07
Binary files differ
diff --git a/fuzz/leaks/leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7 b/fuzz/leaks/leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7
new file mode 100644
index 0000000..4dec3dd
--- /dev/null
+++ b/fuzz/leaks/leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7
Binary files differ
diff --git a/fuzz/leaks/leak-53bc466851eda790bd891733da5db0a7482886bf b/fuzz/leaks/leak-53bc466851eda790bd891733da5db0a7482886bf
new file mode 100644
index 0000000..ce9e7ac
--- /dev/null
+++ b/fuzz/leaks/leak-53bc466851eda790bd891733da5db0a7482886bf
@@ -0,0 +1,6 @@
+<plist version="1.0">
+<dict>
+    <key>test&amp</key>
+    <string>value</string>
+</dict>
+</plist>
diff --git a/fuzz/leaks/leak-96fb453b3ba18d31e164831795a708183b5a0dac b/fuzz/leaks/leak-96fb453b3ba18d31e164831795a708183b5a0dac
new file mode 100644
index 0000000..d4a1ec3
--- /dev/null
+++ b/fuzz/leaks/leak-96fb453b3ba18d31e164831795a708183b5a0dac
Binary files differ
diff --git a/fuzz/leaks/leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1 b/fuzz/leaks/leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1
new file mode 100644
index 0000000..d99278b
--- /dev/null
+++ b/fuzz/leaks/leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1
Binary files differ
diff --git a/fuzz/leaks/leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074 b/fuzz/leaks/leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074
new file mode 100644
index 0000000..b499279
--- /dev/null
+++ b/fuzz/leaks/leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074
Binary files differ