Merge pull request #4728 from pks-t/pks/fuzzers Fuzzers
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224
diff --git a/.gitignore b/.gitignore
index 1ef1ec7..5991a41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,5 @@ msvc/Release/
.*.swp
tags
mkmf.log
+*.profdata
+*.profraw
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd84666..b71d903 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,33 +38,36 @@ INCLUDE(EnableWarnings)
# Build options
#
-OPTION( SONAME "Set the (SO)VERSION of the target" ON )
-OPTION( BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON )
-OPTION( THREADSAFE "Build libgit2 as threadsafe" ON )
-OPTION( BUILD_CLAR "Build Tests using the Clar suite" ON )
-OPTION( BUILD_EXAMPLES "Build library usage example apps" OFF )
-OPTION( TAGS "Generate tags" OFF )
-OPTION( PROFILE "Generate profiling information" OFF )
-OPTION( ENABLE_TRACE "Enables tracing support" OFF )
-OPTION( LIBGIT2_FILENAME "Name of the produced binary" OFF )
-
-SET(SHA1_BACKEND "CollisionDetection" CACHE STRING "Backend to use for SHA1. One of Generic, OpenSSL, Win32, CommonCrypto, mbedTLS, CollisionDetection. ")
-OPTION( USE_SSH "Link with libssh to enable SSH support" ON )
-OPTION( USE_HTTPS "Enable HTTPS support. Can be set to a specific backend" ON )
-OPTION( USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF )
-OPTION( VALGRIND "Configure build for valgrind" OFF )
-OPTION( CURL "Use curl for HTTP if available" ON)
-OPTION( USE_EXT_HTTP_PARSER "Use system HTTP_Parser if available" ON)
-OPTION( DEBUG_POOL "Enable debug pool allocator" OFF )
-OPTION( ENABLE_WERROR "Enable compilation with -Werror" OFF )
-OPTION( USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF )
+OPTION(SONAME "Set the (SO)VERSION of the target" ON)
+OPTION(BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON)
+OPTION(THREADSAFE "Build libgit2 as threadsafe" ON)
+OPTION(BUILD_CLAR "Build Tests using the Clar suite" ON)
+OPTION(BUILD_EXAMPLES "Build library usage example apps" OFF)
+OPTION(BUILD_FUZZERS "Build the fuzz targets" OFF)
+OPTION(TAGS "Generate tags" OFF)
+OPTION(PROFILE "Generate profiling information" OFF)
+OPTION(ENABLE_TRACE "Enables tracing support" OFF)
+OPTION(LIBGIT2_FILENAME "Name of the produced binary" OFF)
+
+ SET(SHA1_BACKEND "CollisionDetection" CACHE STRING
+ "Backend to use for SHA1. One of Generic, OpenSSL, Win32, CommonCrypto, mbedTLS, CollisionDetection.")
+OPTION(USE_SSH "Link with libssh to enable SSH support" ON)
+OPTION(USE_HTTPS "Enable HTTPS support. Can be set to a specific backend" ON)
+OPTION(USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF)
+OPTION(USE_STANDALONE_FUZZERS "Enable standalone fuzzers (compatible with gcc)" OFF)
+OPTION(VALGRIND "Configure build for valgrind" OFF)
+OPTION(CURL "Use curl for HTTP if available" ON)
+OPTION(USE_EXT_HTTP_PARSER "Use system HTTP_Parser if available" ON)
+OPTION(DEBUG_POOL "Enable debug pool allocator" OFF)
+OPTION(ENABLE_WERROR "Enable compilation with -Werror" OFF)
+OPTION(USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF)
IF (UNIX AND NOT APPLE)
- OPTION( ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF )
+ OPTION(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF)
ENDIF()
IF (APPLE)
- OPTION( USE_ICONV "Link with and use iconv library" ON )
+ OPTION(USE_ICONV "Link with and use iconv library" ON)
ENDIF()
IF(MSVC)
@@ -74,27 +77,27 @@ IF(MSVC)
#
# If you are writing a CLR program and want to link to libgit2, you'll want
# to turn this on by invoking CMake with the "-DSTDCALL=ON" argument.
- OPTION( STDCALL "Build libgit2 with the __stdcall convention" OFF )
+ OPTION(STDCALL "Build libgit2 with the __stdcall convention" OFF)
# This option must match the settings used in your program, in particular if you
# are linking statically
- OPTION( STATIC_CRT "Link the static CRT libraries" ON )
+ OPTION(STATIC_CRT "Link the static CRT libraries" ON)
# If you want to embed a copy of libssh2 into libgit2, pass a
# path to libssh2
- OPTION( EMBED_SSH_PATH "Path to libssh2 to embed (Windows)" OFF )
+ OPTION(EMBED_SSH_PATH "Path to libssh2 to embed (Windows)" OFF)
ENDIF()
IF(WIN32)
# By default, libgit2 is built with WinHTTP. To use the built-in
# HTTP transport, invoke CMake with the "-DWINHTTP=OFF" argument.
- OPTION( WINHTTP "Use Win32 WinHTTP routines" ON )
+ OPTION(WINHTTP "Use Win32 WinHTTP routines" ON)
ENDIF()
IF(MSVC)
# Enable MSVC CRTDBG memory leak reporting when in debug mode.
- OPTION(MSVC_CRTDBG "Enable CRTDBG memory leak reporting" OFF)
+ OPTION(MSVC_CRTDBG "Enable CRTDBG memory leak reporting" OFF)
ENDIF()
FILE(STRINGS "${libgit2_SOURCE_DIR}/include/git2/version.h" GIT2_HEADER REGEX "^#define LIBGIT2_VERSION \"[^\"]*\"$")
@@ -245,6 +248,14 @@ ELSE()
# that uses CMAKE_CONFIGURATION_TYPES and not CMAKE_BUILD_TYPE
ENDIF()
+IF(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
+ # The actual sanitizer link target will be added when linking the fuzz
+ # targets.
+ SET(CMAKE_REQUIRED_FLAGS "-fsanitize=fuzzer-no-link")
+ ADD_C_FLAG(-fsanitize=fuzzer-no-link)
+ UNSET(CMAKE_REQUIRED_FLAGS)
+ENDIF ()
+
ADD_SUBDIRECTORY(src)
# Tests
@@ -282,6 +293,18 @@ IF (BUILD_EXAMPLES)
ADD_SUBDIRECTORY(examples)
ENDIF ()
+IF(BUILD_FUZZERS)
+ IF(NOT USE_STANDALONE_FUZZERS)
+ IF(BUILD_EXAMPLES)
+ MESSAGE(FATAL_ERROR "Cannot build the fuzzer targets and the examples together")
+ ENDIF()
+ IF(BUILD_CLAR)
+ MESSAGE(FATAL_ERROR "Cannot build the fuzzer targets and the tests together")
+ ENDIF()
+ ENDIF()
+ ADD_SUBDIRECTORY(fuzzers)
+ENDIF()
+
IF(CMAKE_VERSION VERSION_GREATER 3)
FEATURE_SUMMARY(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
FEATURE_SUMMARY(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
diff --git a/ci/build.sh b/ci/build.sh
index a1deab3..0dd8f67 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -29,7 +29,7 @@ echo "## Configuring build environment"
echo "##############################################################################"
echo cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
-cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
+cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON ${CMAKE_OPTIONS}
echo ""
echo "##############################################################################"
diff --git a/ci/test.sh b/ci/test.sh
index 28f7602..a9a8537 100755
--- a/ci/test.sh
+++ b/ci/test.sh
@@ -184,6 +184,17 @@ if [ -z "$SKIP_SSH_TESTS" ]; then
unset GITTEST_REMOTE_SSH_FINGERPRINT
fi
+if [ -z "$SKIP_FUZZERS" ]; then
+ echo ""
+ echo "##############################################################################"
+ echo "## Running fuzzers"
+ echo "##############################################################################"
+
+ for fuzzer in fuzzers/*_fuzzer; do
+ "${fuzzer}" "${SOURCE_DIR}/fuzzers/corpora/$(basename "${fuzzer%_fuzzer}")" || die $?
+ done
+fi
+
echo "Success."
cleanup
exit 0
diff --git a/cmake/Modules/AddCFlagIfSupported.cmake b/cmake/Modules/AddCFlagIfSupported.cmake
index 67fc895..1d6181c 100644
--- a/cmake/Modules/AddCFlagIfSupported.cmake
+++ b/cmake/Modules/AddCFlagIfSupported.cmake
@@ -5,9 +5,21 @@
INCLUDE(CheckCCompilerFlag)
+MACRO(ADD_C_FLAG _FLAG)
+ STRING(TOUPPER ${_FLAG} UPCASE)
+ STRING(REGEX REPLACE "^-" "" UPCASE_PRETTY ${UPCASE})
+ CHECK_C_COMPILER_FLAG(${_FLAG} IS_${UPCASE_PRETTY}_SUPPORTED)
+
+ IF(IS_${UPCASE_PRETTY}_SUPPORTED)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_FLAG}")
+ ELSE()
+ MESSAGE(FATAL_ERROR "Required flag ${_FLAG} is not supported")
+ ENDIF()
+ENDMACRO()
+
MACRO(ADD_C_FLAG_IF_SUPPORTED _FLAG)
STRING(TOUPPER ${_FLAG} UPCASE)
- STRING(REGEX REPLACE "^-" "" UPCASE_PRETTY ${UPCASE})
+ STRING(REGEX REPLACE "^-" "" UPCASE_PRETTY ${UPCASE})
CHECK_C_COMPILER_FLAG(${_FLAG} IS_${UPCASE_PRETTY}_SUPPORTED)
IF(IS_${UPCASE_PRETTY}_SUPPORTED)
diff --git a/docs/fuzzing.md b/docs/fuzzing.md
new file mode 100644
index 0000000..cd82576
--- /dev/null
+++ b/docs/fuzzing.md
@@ -0,0 +1,71 @@
+# Fuzzing
+
+libgit2 is currently using [libFuzzer](https://libfuzzer.info) to perform
+automated fuzz testing. libFuzzer only works with clang.
+
+## Prerequisites** for building fuzz targets:
+
+1. All the prerequisites for [building libgit2](https://github.com/libgit2/libgit2).
+2. A recent version of clang. 6.0 is preferred. [pre-build Debian/Ubuntu
+ packages](https://github.com/libgit2/libgit2)
+
+## Build
+
+1. Create a build directory beneath the libgit2 source directory, and change
+ into it: `mkdir build && cd build`
+2. Choose one sanitizers to add. The currently supported sanitizers are
+ [`address`](https://clang.llvm.org/docs/AddressSanitizer.html),
+ [`undefined`](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html),
+ and [`leak`/`address,leak`](https://clang.llvm.org/docs/LeakSanitizer.html).
+3. Create the cmake build environment and configure the build with the
+ sanitizer chosen: `CC=/usr/bin/clang-6.0 CFLAGS="-fsanitize=address" cmake
+ -DBUILD_CLAR=OFF -DBUILD_FUZZERS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ..`.
+ Note that building the fuzzer targets is incompatible with the
+ tests and examples.
+4. Build libgit2: `cmake --build .`
+5. Exit the cmake build environment: `cd ..`
+
+## Run the fuzz targets
+
+1. `ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolize-6.0
+ LSAN_OPTIONS=allocator_may_return_null=1
+ ASAN_OPTIONS=allocator_may_return_null=1 ./build/fuzz/fuzz_packfile_raw
+ fuzz/corpora/fuzz_packfile_raw/`
+
+The `LSAN_OPTIONS` and `ASAN_OPTIONS` are there to allow `malloc(3)` to return
+`NULL`. The `LLVM_PROFILE_FILE` is there to override the path where libFuzzer
+will write the coverage report.
+
+## Get coverage
+
+In order to get coverage information, you need to add the "-fcoverage-mapping"
+and "-fprofile-instr-generate CFLAGS, and then run the fuzz target with
+`-runs=0`. That will produce a file called `default.profraw` (this behavior can
+be overridden by setting the `LLVM_PROFILE_FILE="yourfile.profraw"` environment
+variable).
+
+1. `llvm-profdata-6.0 merge -sparse default.profraw -o
+ fuzz_packfile_raw.profdata` transforms the data from a sparse representation
+ into a format that can be used by the other tools.
+2. `llvm-cov-6.0 report ./build/fuzz/fuzz_packfile_raw
+ -instr-profile=fuzz_packfile_raw.profdata` shows a high-level per-file
+ coverage report.
+3. `llvm-cov-6.0 show ./build/fuzz/fuzz_packfile_raw
+ -instr-profile=fuzz_packfile_raw.profdata [source file]` shows a line-by-line
+ coverage analysis of all the codebase (or a single source file).
+
+## Standalone mode
+
+In order to ensure that there are no regresions, each fuzzer target can be run
+in a standalone mode. This can be done by passing `-DUSE_STANDALONE_FUZZERS=ON`.
+This makes it compatible with gcc. This does not use the fuzzing engine, but
+just invokes every file in the chosen corpus.
+
+In order to get full coverage, though, you might want to also enable one of the
+sanitizers. You might need a recent version of clang to get full support.
+
+## References
+
+* [libFuzzer](https://llvm.org/docs/LibFuzzer.html) documentation.
+* [Source-based Code
+ Coverage](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html).
diff --git a/fuzzers/CMakeLists.txt b/fuzzers/CMakeLists.txt
new file mode 100644
index 0000000..ea06123
--- /dev/null
+++ b/fuzzers/CMakeLists.txt
@@ -0,0 +1,18 @@
+LINK_DIRECTORIES(${LIBGIT2_LIBDIRS})
+INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
+
+IF(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
+ ADD_C_FLAG(-fsanitize=fuzzer)
+ENDIF ()
+
+FILE(GLOB SRC_FUZZ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_fuzzer.c)
+FOREACH(fuzz_target_src ${SRC_FUZZ})
+ STRING(REPLACE ".c" "" fuzz_target_name ${fuzz_target_src})
+ SET(${fuzz_target_name}_SOURCES ${fuzz_target_src} ${LIBGIT2_OBJECTS})
+ IF(USE_STANDALONE_FUZZERS)
+ LIST(APPEND ${fuzz_target_name}_SOURCES "standalone_driver.c")
+ ENDIF()
+ ADD_EXECUTABLE(${fuzz_target_name} ${${fuzz_target_name}_SOURCES})
+ SET_TARGET_PROPERTIES(${fuzz_target_name} PROPERTIES C_STANDARD 90)
+ TARGET_LINK_LIBRARIES(${fuzz_target_name} ${LIBGIT2_LIBS})
+ENDFOREACH()
diff --git a/fuzzers/corpora/download_refs/clone.dat b/fuzzers/corpora/download_refs/clone.dat
new file mode 100644
index 0000000..f3e56b0
Binary files /dev/null and b/fuzzers/corpora/download_refs/clone.dat differ
diff --git a/fuzzers/corpora/packfile/004bd06c91c0dc8ab7e963f4b5e87be00292911e b/fuzzers/corpora/packfile/004bd06c91c0dc8ab7e963f4b5e87be00292911e
new file mode 100644
index 0000000..53c9642
--- /dev/null
+++ b/fuzzers/corpora/packfile/004bd06c91c0dc8ab7e963f4b5e87be00292911e
@@ -0,0 +1 @@
+ÐPACK
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/00b67414c7b17916b3bd0a3d02284937fa0c4378 b/fuzzers/corpora/packfile/00b67414c7b17916b3bd0a3d02284937fa0c4378
new file mode 100644
index 0000000..838a007
Binary files /dev/null and b/fuzzers/corpora/packfile/00b67414c7b17916b3bd0a3d02284937fa0c4378 differ
diff --git a/fuzzers/corpora/packfile/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77 b/fuzzers/corpora/packfile/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77
new file mode 100644
index 0000000..48fe2b3
Binary files /dev/null and b/fuzzers/corpora/packfile/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77 differ
diff --git a/fuzzers/corpora/packfile/02f4286569be24124d8ab209733b7492f7560310 b/fuzzers/corpora/packfile/02f4286569be24124d8ab209733b7492f7560310
new file mode 100644
index 0000000..3944cd0
Binary files /dev/null and b/fuzzers/corpora/packfile/02f4286569be24124d8ab209733b7492f7560310 differ
diff --git a/fuzzers/corpora/packfile/037ba5f9d6d695aa4739810f8bea6e795c1d7614 b/fuzzers/corpora/packfile/037ba5f9d6d695aa4739810f8bea6e795c1d7614
new file mode 100644
index 0000000..f4ea551
Binary files /dev/null and b/fuzzers/corpora/packfile/037ba5f9d6d695aa4739810f8bea6e795c1d7614 differ
diff --git a/fuzzers/corpora/packfile/038e06289ac876f109fc12ca4b8284497ca26821 b/fuzzers/corpora/packfile/038e06289ac876f109fc12ca4b8284497ca26821
new file mode 100644
index 0000000..24923c4
Binary files /dev/null and b/fuzzers/corpora/packfile/038e06289ac876f109fc12ca4b8284497ca26821 differ
diff --git a/fuzzers/corpora/packfile/042dc4512fa3d391c5170cf3aa61e6a638f84342 b/fuzzers/corpora/packfile/042dc4512fa3d391c5170cf3aa61e6a638f84342
new file mode 100644
index 0000000..597a6db
--- /dev/null
+++ b/fuzzers/corpora/packfile/042dc4512fa3d391c5170cf3aa61e6a638f84342
@@ -0,0 +1 @@
+i
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/044bf19babf3f9cde07adbfa2a45c7508538cbe8 b/fuzzers/corpora/packfile/044bf19babf3f9cde07adbfa2a45c7508538cbe8
new file mode 100644
index 0000000..73a4013
Binary files /dev/null and b/fuzzers/corpora/packfile/044bf19babf3f9cde07adbfa2a45c7508538cbe8 differ
diff --git a/fuzzers/corpora/packfile/044e12ea43bee3c4befe27ba4687bee98d505fd7 b/fuzzers/corpora/packfile/044e12ea43bee3c4befe27ba4687bee98d505fd7
new file mode 100644
index 0000000..1e12966
Binary files /dev/null and b/fuzzers/corpora/packfile/044e12ea43bee3c4befe27ba4687bee98d505fd7 differ
diff --git a/fuzzers/corpora/packfile/061fb208431db793bbd3645b7a16058a1e2a2412 b/fuzzers/corpora/packfile/061fb208431db793bbd3645b7a16058a1e2a2412
new file mode 100644
index 0000000..12183ab
--- /dev/null
+++ b/fuzzers/corpora/packfile/061fb208431db793bbd3645b7a16058a1e2a2412
@@ -0,0 +1 @@
+º
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/06576556d1ad802f247cad11ae748be47b70cd9c b/fuzzers/corpora/packfile/06576556d1ad802f247cad11ae748be47b70cd9c
new file mode 100644
index 0000000..ac044e5
--- /dev/null
+++ b/fuzzers/corpora/packfile/06576556d1ad802f247cad11ae748be47b70cd9c
@@ -0,0 +1 @@
+R
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/06ceea0c98756d302c302410fffe0dc54a055486 b/fuzzers/corpora/packfile/06ceea0c98756d302c302410fffe0dc54a055486
new file mode 100644
index 0000000..add37f9
Binary files /dev/null and b/fuzzers/corpora/packfile/06ceea0c98756d302c302410fffe0dc54a055486 differ
diff --git a/fuzzers/corpora/packfile/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c b/fuzzers/corpora/packfile/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c
new file mode 100644
index 0000000..748750c
Binary files /dev/null and b/fuzzers/corpora/packfile/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c differ
diff --git a/fuzzers/corpora/packfile/0739ff2f064568a4d775c8061958e66c419dbea0 b/fuzzers/corpora/packfile/0739ff2f064568a4d775c8061958e66c419dbea0
new file mode 100644
index 0000000..aed5f16
Binary files /dev/null and b/fuzzers/corpora/packfile/0739ff2f064568a4d775c8061958e66c419dbea0 differ
diff --git a/fuzzers/corpora/packfile/077760469bf8392342d09329c732b98d24be2c30 b/fuzzers/corpora/packfile/077760469bf8392342d09329c732b98d24be2c30
new file mode 100644
index 0000000..c9553bc
Binary files /dev/null and b/fuzzers/corpora/packfile/077760469bf8392342d09329c732b98d24be2c30 differ
diff --git a/fuzzers/corpora/packfile/08534f33c201a45017b502e90a800f1b708ebcb3 b/fuzzers/corpora/packfile/08534f33c201a45017b502e90a800f1b708ebcb3
new file mode 100644
index 0000000..b7d5379
--- /dev/null
+++ b/fuzzers/corpora/packfile/08534f33c201a45017b502e90a800f1b708ebcb3
@@ -0,0 +1 @@
+\
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/09e9046a7d6125cf2915a326a1504dd75d0543b5 b/fuzzers/corpora/packfile/09e9046a7d6125cf2915a326a1504dd75d0543b5
new file mode 100644
index 0000000..86d7321
--- /dev/null
+++ b/fuzzers/corpora/packfile/09e9046a7d6125cf2915a326a1504dd75d0543b5
@@ -0,0 +1 @@
+ÿ
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/0ade7c2cf97f75d009975f4d720d1fa6c19f4897 b/fuzzers/corpora/packfile/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
new file mode 100644
index 0000000..f11c82a
--- /dev/null
+++ b/fuzzers/corpora/packfile/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
@@ -0,0 +1 @@
+9
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/0c316c67c1450aee57ffa3f74c19ea5d32d44622 b/fuzzers/corpora/packfile/0c316c67c1450aee57ffa3f74c19ea5d32d44622
new file mode 100644
index 0000000..08d7351
Binary files /dev/null and b/fuzzers/corpora/packfile/0c316c67c1450aee57ffa3f74c19ea5d32d44622 differ
diff --git a/fuzzers/corpora/packfile/0c395c44e4dd5b67caae8a98a66741e17e8af136 b/fuzzers/corpora/packfile/0c395c44e4dd5b67caae8a98a66741e17e8af136
new file mode 100644
index 0000000..e899a79
Binary files /dev/null and b/fuzzers/corpora/packfile/0c395c44e4dd5b67caae8a98a66741e17e8af136 differ
diff --git a/fuzzers/corpora/packfile/0cb9120e5ae00b0d660a111ef85fc9194a5f244a b/fuzzers/corpora/packfile/0cb9120e5ae00b0d660a111ef85fc9194a5f244a
new file mode 100644
index 0000000..9fb6a66
Binary files /dev/null and b/fuzzers/corpora/packfile/0cb9120e5ae00b0d660a111ef85fc9194a5f244a differ
diff --git a/fuzzers/corpora/packfile/0d44e7156d04cd269fd1219c58c3b79dc8c41d60 b/fuzzers/corpora/packfile/0d44e7156d04cd269fd1219c58c3b79dc8c41d60
new file mode 100644
index 0000000..cf18be0
Binary files /dev/null and b/fuzzers/corpora/packfile/0d44e7156d04cd269fd1219c58c3b79dc8c41d60 differ
diff --git a/fuzzers/corpora/packfile/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3 b/fuzzers/corpora/packfile/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3
new file mode 100644
index 0000000..6d3c9c0
Binary files /dev/null and b/fuzzers/corpora/packfile/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3 differ
diff --git a/fuzzers/corpora/packfile/0db25107ff248616cadc75b7819b21d06394cf25 b/fuzzers/corpora/packfile/0db25107ff248616cadc75b7819b21d06394cf25
new file mode 100644
index 0000000..c158d57
Binary files /dev/null and b/fuzzers/corpora/packfile/0db25107ff248616cadc75b7819b21d06394cf25 differ
diff --git a/fuzzers/corpora/packfile/0debae2db7ef2933f386bac21a2d3bebb473070e b/fuzzers/corpora/packfile/0debae2db7ef2933f386bac21a2d3bebb473070e
new file mode 100644
index 0000000..1f9443f
Binary files /dev/null and b/fuzzers/corpora/packfile/0debae2db7ef2933f386bac21a2d3bebb473070e differ
diff --git a/fuzzers/corpora/packfile/0e2d48524de33394ca82ea3a43f5f04aac6e86c7 b/fuzzers/corpora/packfile/0e2d48524de33394ca82ea3a43f5f04aac6e86c7
new file mode 100644
index 0000000..1fd3289
Binary files /dev/null and b/fuzzers/corpora/packfile/0e2d48524de33394ca82ea3a43f5f04aac6e86c7 differ
diff --git a/fuzzers/corpora/packfile/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc b/fuzzers/corpora/packfile/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc
new file mode 100644
index 0000000..286d703
Binary files /dev/null and b/fuzzers/corpora/packfile/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc differ
diff --git a/fuzzers/corpora/packfile/0f2982027f0b3b05250267b19e3969f8797e389e b/fuzzers/corpora/packfile/0f2982027f0b3b05250267b19e3969f8797e389e
new file mode 100644
index 0000000..57505d2
--- /dev/null
+++ b/fuzzers/corpora/packfile/0f2982027f0b3b05250267b19e3969f8797e389e
@@ -0,0 +1 @@
+ÐPACKïïðŽ
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/11f6ad8ec52a2984abaafd7c3b516503785c2072 b/fuzzers/corpora/packfile/11f6ad8ec52a2984abaafd7c3b516503785c2072
new file mode 100644
index 0000000..c1b0730
--- /dev/null
+++ b/fuzzers/corpora/packfile/11f6ad8ec52a2984abaafd7c3b516503785c2072
@@ -0,0 +1 @@
+x
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/123ca693d81a8cfd99760ff5ca9e152ded878537 b/fuzzers/corpora/packfile/123ca693d81a8cfd99760ff5ca9e152ded878537
new file mode 100644
index 0000000..e680914
Binary files /dev/null and b/fuzzers/corpora/packfile/123ca693d81a8cfd99760ff5ca9e152ded878537 differ
diff --git a/fuzzers/corpora/packfile/12878ca5643ab15a4a847e74ddd84fb365736af2 b/fuzzers/corpora/packfile/12878ca5643ab15a4a847e74ddd84fb365736af2
new file mode 100644
index 0000000..6029463
Binary files /dev/null and b/fuzzers/corpora/packfile/12878ca5643ab15a4a847e74ddd84fb365736af2 differ
diff --git a/fuzzers/corpora/packfile/13f292a24a9e79ae911f5d5e1ef7db0112601e64 b/fuzzers/corpora/packfile/13f292a24a9e79ae911f5d5e1ef7db0112601e64
new file mode 100644
index 0000000..36b85ed
Binary files /dev/null and b/fuzzers/corpora/packfile/13f292a24a9e79ae911f5d5e1ef7db0112601e64 differ
diff --git a/fuzzers/corpora/packfile/13facd9b4b5b4509fee92c7ccc1c82ed90624172 b/fuzzers/corpora/packfile/13facd9b4b5b4509fee92c7ccc1c82ed90624172
new file mode 100644
index 0000000..82f4fa0
Binary files /dev/null and b/fuzzers/corpora/packfile/13facd9b4b5b4509fee92c7ccc1c82ed90624172 differ
diff --git a/fuzzers/corpora/packfile/140092a21903fdc56c98de126725fa6bead98ab1 b/fuzzers/corpora/packfile/140092a21903fdc56c98de126725fa6bead98ab1
new file mode 100644
index 0000000..11006ca
Binary files /dev/null and b/fuzzers/corpora/packfile/140092a21903fdc56c98de126725fa6bead98ab1 differ
diff --git a/fuzzers/corpora/packfile/1489f923c4dca729178b3e3233458550d8dddf29 b/fuzzers/corpora/packfile/1489f923c4dca729178b3e3233458550d8dddf29
new file mode 100644
index 0000000..09f370e
Binary files /dev/null and b/fuzzers/corpora/packfile/1489f923c4dca729178b3e3233458550d8dddf29 differ
diff --git a/fuzzers/corpora/packfile/1501a58834f24f95442f190653a50dd67d01e19d b/fuzzers/corpora/packfile/1501a58834f24f95442f190653a50dd67d01e19d
new file mode 100644
index 0000000..3bbe254
Binary files /dev/null and b/fuzzers/corpora/packfile/1501a58834f24f95442f190653a50dd67d01e19d differ
diff --git a/fuzzers/corpora/packfile/15eddee57cafb11e927810d62230a6e104de1d5c b/fuzzers/corpora/packfile/15eddee57cafb11e927810d62230a6e104de1d5c
new file mode 100644
index 0000000..4c563e6
Binary files /dev/null and b/fuzzers/corpora/packfile/15eddee57cafb11e927810d62230a6e104de1d5c differ
diff --git a/fuzzers/corpora/packfile/1632aa4b049f1118306485b11c70c499a0200dd5 b/fuzzers/corpora/packfile/1632aa4b049f1118306485b11c70c499a0200dd5
new file mode 100644
index 0000000..677f3ab
Binary files /dev/null and b/fuzzers/corpora/packfile/1632aa4b049f1118306485b11c70c499a0200dd5 differ
diff --git a/fuzzers/corpora/packfile/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3 b/fuzzers/corpora/packfile/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3
new file mode 100644
index 0000000..8445262
Binary files /dev/null and b/fuzzers/corpora/packfile/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3 differ
diff --git a/fuzzers/corpora/packfile/18e768865207e0b90047487b66532b20bc74b1a2 b/fuzzers/corpora/packfile/18e768865207e0b90047487b66532b20bc74b1a2
new file mode 100644
index 0000000..2069d5b
Binary files /dev/null and b/fuzzers/corpora/packfile/18e768865207e0b90047487b66532b20bc74b1a2 differ
diff --git a/fuzzers/corpora/packfile/1940c66b45a3bd5c847330b207fd87aee6e96194 b/fuzzers/corpora/packfile/1940c66b45a3bd5c847330b207fd87aee6e96194
new file mode 100644
index 0000000..5b8513e
Binary files /dev/null and b/fuzzers/corpora/packfile/1940c66b45a3bd5c847330b207fd87aee6e96194 differ
diff --git a/fuzzers/corpora/packfile/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5 b/fuzzers/corpora/packfile/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5
new file mode 100644
index 0000000..572d311
Binary files /dev/null and b/fuzzers/corpora/packfile/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5 differ
diff --git a/fuzzers/corpora/packfile/19da91f2603889267dfd77786e07a5b8f067d62a b/fuzzers/corpora/packfile/19da91f2603889267dfd77786e07a5b8f067d62a
new file mode 100644
index 0000000..8b43ca9
--- /dev/null
+++ b/fuzzers/corpora/packfile/19da91f2603889267dfd77786e07a5b8f067d62a
@@ -0,0 +1 @@
+©
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/1a72795a3dffdfc999b030d9aab7237dea1e2bc1 b/fuzzers/corpora/packfile/1a72795a3dffdfc999b030d9aab7237dea1e2bc1
new file mode 100644
index 0000000..5a8a38b
Binary files /dev/null and b/fuzzers/corpora/packfile/1a72795a3dffdfc999b030d9aab7237dea1e2bc1 differ
diff --git a/fuzzers/corpora/packfile/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d b/fuzzers/corpora/packfile/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d
new file mode 100644
index 0000000..52219de
Binary files /dev/null and b/fuzzers/corpora/packfile/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d differ
diff --git a/fuzzers/corpora/packfile/1eb8977ef8c3be9ee896d785663c762c7e32be28 b/fuzzers/corpora/packfile/1eb8977ef8c3be9ee896d785663c762c7e32be28
new file mode 100644
index 0000000..d924eb7
Binary files /dev/null and b/fuzzers/corpora/packfile/1eb8977ef8c3be9ee896d785663c762c7e32be28 differ
diff --git a/fuzzers/corpora/packfile/1f0837530c1c3d122157f2eaa9c2178dcc3580df b/fuzzers/corpora/packfile/1f0837530c1c3d122157f2eaa9c2178dcc3580df
new file mode 100644
index 0000000..26b0c60
Binary files /dev/null and b/fuzzers/corpora/packfile/1f0837530c1c3d122157f2eaa9c2178dcc3580df differ
diff --git a/fuzzers/corpora/packfile/1f3c5fd6dc091faa397bce776aa97b457388fdae b/fuzzers/corpora/packfile/1f3c5fd6dc091faa397bce776aa97b457388fdae
new file mode 100644
index 0000000..5b5232d
Binary files /dev/null and b/fuzzers/corpora/packfile/1f3c5fd6dc091faa397bce776aa97b457388fdae differ
diff --git a/fuzzers/corpora/packfile/20528983163f834108150a7191600ff94ae2c1d2 b/fuzzers/corpora/packfile/20528983163f834108150a7191600ff94ae2c1d2
new file mode 100644
index 0000000..05189f0
Binary files /dev/null and b/fuzzers/corpora/packfile/20528983163f834108150a7191600ff94ae2c1d2 differ
diff --git a/fuzzers/corpora/packfile/20a725140a8ffbe11bb71c1b83f19452147e5180 b/fuzzers/corpora/packfile/20a725140a8ffbe11bb71c1b83f19452147e5180
new file mode 100644
index 0000000..f0337fa
Binary files /dev/null and b/fuzzers/corpora/packfile/20a725140a8ffbe11bb71c1b83f19452147e5180 differ
diff --git a/fuzzers/corpora/packfile/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e b/fuzzers/corpora/packfile/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e
new file mode 100644
index 0000000..e7754ca
--- /dev/null
+++ b/fuzzers/corpora/packfile/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e
@@ -0,0 +1 @@
+À
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109 b/fuzzers/corpora/packfile/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109
new file mode 100644
index 0000000..44c6604
Binary files /dev/null and b/fuzzers/corpora/packfile/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109 differ
diff --git a/fuzzers/corpora/packfile/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6 b/fuzzers/corpora/packfile/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6
new file mode 100644
index 0000000..c2f5439
Binary files /dev/null and b/fuzzers/corpora/packfile/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6 differ
diff --git a/fuzzers/corpora/packfile/21c07e2affed6b0134d5dc28ea6c4937e691c761 b/fuzzers/corpora/packfile/21c07e2affed6b0134d5dc28ea6c4937e691c761
new file mode 100644
index 0000000..ee9fc89
Binary files /dev/null and b/fuzzers/corpora/packfile/21c07e2affed6b0134d5dc28ea6c4937e691c761 differ
diff --git a/fuzzers/corpora/packfile/23841d4076641ebcb4f58d1fd03047528c9d359b b/fuzzers/corpora/packfile/23841d4076641ebcb4f58d1fd03047528c9d359b
new file mode 100644
index 0000000..76b0b49
Binary files /dev/null and b/fuzzers/corpora/packfile/23841d4076641ebcb4f58d1fd03047528c9d359b differ
diff --git a/fuzzers/corpora/packfile/23b9174c42560de6525b1f103125f599479f95cb b/fuzzers/corpora/packfile/23b9174c42560de6525b1f103125f599479f95cb
new file mode 100644
index 0000000..4bef2f6
Binary files /dev/null and b/fuzzers/corpora/packfile/23b9174c42560de6525b1f103125f599479f95cb differ
diff --git a/fuzzers/corpora/packfile/241cbd6dfb6e53c43c73b62f9384359091dcbf56 b/fuzzers/corpora/packfile/241cbd6dfb6e53c43c73b62f9384359091dcbf56
new file mode 100644
index 0000000..bd0fd35
--- /dev/null
+++ b/fuzzers/corpora/packfile/241cbd6dfb6e53c43c73b62f9384359091dcbf56
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/245a2ddea41e6531944933c4420b8c9790ac351b b/fuzzers/corpora/packfile/245a2ddea41e6531944933c4420b8c9790ac351b
new file mode 100644
index 0000000..99cbc9b
Binary files /dev/null and b/fuzzers/corpora/packfile/245a2ddea41e6531944933c4420b8c9790ac351b differ
diff --git a/fuzzers/corpora/packfile/2541e340271ea496a392870bcc20d3510287b9e9 b/fuzzers/corpora/packfile/2541e340271ea496a392870bcc20d3510287b9e9
new file mode 100644
index 0000000..ff63b2a
Binary files /dev/null and b/fuzzers/corpora/packfile/2541e340271ea496a392870bcc20d3510287b9e9 differ
diff --git a/fuzzers/corpora/packfile/276af22d5bf94344737fb1a5eb5de7d335004493 b/fuzzers/corpora/packfile/276af22d5bf94344737fb1a5eb5de7d335004493
new file mode 100644
index 0000000..fd2b077
Binary files /dev/null and b/fuzzers/corpora/packfile/276af22d5bf94344737fb1a5eb5de7d335004493 differ
diff --git a/fuzzers/corpora/packfile/27d5482eebd075de44389774fce28c69f45c8a75 b/fuzzers/corpora/packfile/27d5482eebd075de44389774fce28c69f45c8a75
new file mode 100644
index 0000000..be54354
--- /dev/null
+++ b/fuzzers/corpora/packfile/27d5482eebd075de44389774fce28c69f45c8a75
@@ -0,0 +1 @@
+h
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/28334bd612cb539de776370995f60c8032215434 b/fuzzers/corpora/packfile/28334bd612cb539de776370995f60c8032215434
new file mode 100644
index 0000000..6d67b28
Binary files /dev/null and b/fuzzers/corpora/packfile/28334bd612cb539de776370995f60c8032215434 differ
diff --git a/fuzzers/corpora/packfile/2973e2ac092cba077d7350bfffe1cf2e0644a6e1 b/fuzzers/corpora/packfile/2973e2ac092cba077d7350bfffe1cf2e0644a6e1
new file mode 100644
index 0000000..1066746
Binary files /dev/null and b/fuzzers/corpora/packfile/2973e2ac092cba077d7350bfffe1cf2e0644a6e1 differ
diff --git a/fuzzers/corpora/packfile/2adcd01e876b12d867c858ffaec38c42c59c36c7 b/fuzzers/corpora/packfile/2adcd01e876b12d867c858ffaec38c42c59c36c7
new file mode 100644
index 0000000..4323d10
Binary files /dev/null and b/fuzzers/corpora/packfile/2adcd01e876b12d867c858ffaec38c42c59c36c7 differ
diff --git a/fuzzers/corpora/packfile/2b28470644f5d0323643da99c831d82f20a7a74f b/fuzzers/corpora/packfile/2b28470644f5d0323643da99c831d82f20a7a74f
new file mode 100644
index 0000000..a65ff49
Binary files /dev/null and b/fuzzers/corpora/packfile/2b28470644f5d0323643da99c831d82f20a7a74f differ
diff --git a/fuzzers/corpora/packfile/2b86229020ba808df84e16f800dc152254f18f64 b/fuzzers/corpora/packfile/2b86229020ba808df84e16f800dc152254f18f64
new file mode 100644
index 0000000..bd650d2
Binary files /dev/null and b/fuzzers/corpora/packfile/2b86229020ba808df84e16f800dc152254f18f64 differ
diff --git a/fuzzers/corpora/packfile/2cc5bf2f780cd85ad93d232890f418625f4d1274 b/fuzzers/corpora/packfile/2cc5bf2f780cd85ad93d232890f418625f4d1274
new file mode 100644
index 0000000..f45a38c
--- /dev/null
+++ b/fuzzers/corpora/packfile/2cc5bf2f780cd85ad93d232890f418625f4d1274
@@ -0,0 +1 @@
+Pw
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/2d6ae8fa82b656879dd3371d0a6899e88ef34e76 b/fuzzers/corpora/packfile/2d6ae8fa82b656879dd3371d0a6899e88ef34e76
new file mode 100644
index 0000000..cd62a7b
Binary files /dev/null and b/fuzzers/corpora/packfile/2d6ae8fa82b656879dd3371d0a6899e88ef34e76 differ
diff --git a/fuzzers/corpora/packfile/2e74d24e887678f0681d4c7c010477b8b9697f1a b/fuzzers/corpora/packfile/2e74d24e887678f0681d4c7c010477b8b9697f1a
new file mode 100644
index 0000000..ae9780b
--- /dev/null
+++ b/fuzzers/corpora/packfile/2e74d24e887678f0681d4c7c010477b8b9697f1a
@@ -0,0 +1 @@
+ˆ
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211 b/fuzzers/corpora/packfile/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211
new file mode 100644
index 0000000..4841ef5
Binary files /dev/null and b/fuzzers/corpora/packfile/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211 differ
diff --git a/fuzzers/corpora/packfile/2fec48b0dcb45b98597bfec12bf0dc650543b3e3 b/fuzzers/corpora/packfile/2fec48b0dcb45b98597bfec12bf0dc650543b3e3
new file mode 100644
index 0000000..0ded0e3
Binary files /dev/null and b/fuzzers/corpora/packfile/2fec48b0dcb45b98597bfec12bf0dc650543b3e3 differ
diff --git a/fuzzers/corpora/packfile/31bd25636a9807d6024e78b9b3d02fbb1a02835e b/fuzzers/corpora/packfile/31bd25636a9807d6024e78b9b3d02fbb1a02835e
new file mode 100644
index 0000000..15d1751
--- /dev/null
+++ b/fuzzers/corpora/packfile/31bd25636a9807d6024e78b9b3d02fbb1a02835e
@@ -0,0 +1 @@
+ÿÿÿ@
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/323c88be36ecc20ff30b21cf417106554042db04 b/fuzzers/corpora/packfile/323c88be36ecc20ff30b21cf417106554042db04
new file mode 100644
index 0000000..0e5c2cb
Binary files /dev/null and b/fuzzers/corpora/packfile/323c88be36ecc20ff30b21cf417106554042db04 differ
diff --git a/fuzzers/corpora/packfile/33b3aa957ca4fb31873033a7f460617f1fe81e32 b/fuzzers/corpora/packfile/33b3aa957ca4fb31873033a7f460617f1fe81e32
new file mode 100644
index 0000000..cea3b12
Binary files /dev/null and b/fuzzers/corpora/packfile/33b3aa957ca4fb31873033a7f460617f1fe81e32 differ
diff --git a/fuzzers/corpora/packfile/34303d14e37c9ddfb0bad130e006fec927e13785 b/fuzzers/corpora/packfile/34303d14e37c9ddfb0bad130e006fec927e13785
new file mode 100644
index 0000000..1adb6b1
Binary files /dev/null and b/fuzzers/corpora/packfile/34303d14e37c9ddfb0bad130e006fec927e13785 differ
diff --git a/fuzzers/corpora/packfile/34dac9466a4a2c15aaeef13a9567f6827ace7748 b/fuzzers/corpora/packfile/34dac9466a4a2c15aaeef13a9567f6827ace7748
new file mode 100644
index 0000000..2b0708e
Binary files /dev/null and b/fuzzers/corpora/packfile/34dac9466a4a2c15aaeef13a9567f6827ace7748 differ
diff --git a/fuzzers/corpora/packfile/356a192b7913b04c54574d18c28d46e6395428ab b/fuzzers/corpora/packfile/356a192b7913b04c54574d18c28d46e6395428ab
new file mode 100644
index 0000000..56a6051
--- /dev/null
+++ b/fuzzers/corpora/packfile/356a192b7913b04c54574d18c28d46e6395428ab
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/35bf585248be2c6d3940e15b85f72c4146903097 b/fuzzers/corpora/packfile/35bf585248be2c6d3940e15b85f72c4146903097
new file mode 100644
index 0000000..f17d4fa
Binary files /dev/null and b/fuzzers/corpora/packfile/35bf585248be2c6d3940e15b85f72c4146903097 differ
diff --git a/fuzzers/corpora/packfile/3725a1c4431714019827277deac8ec2efeed8f1d b/fuzzers/corpora/packfile/3725a1c4431714019827277deac8ec2efeed8f1d
new file mode 100644
index 0000000..f58c271
Binary files /dev/null and b/fuzzers/corpora/packfile/3725a1c4431714019827277deac8ec2efeed8f1d differ
diff --git a/fuzzers/corpora/packfile/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee b/fuzzers/corpora/packfile/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee
new file mode 100644
index 0000000..0c71198
Binary files /dev/null and b/fuzzers/corpora/packfile/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee differ
diff --git a/fuzzers/corpora/packfile/37ab8a0ca81fc62279057401761f7730a5a8f1b2 b/fuzzers/corpora/packfile/37ab8a0ca81fc62279057401761f7730a5a8f1b2
new file mode 100644
index 0000000..d9b74cf
Binary files /dev/null and b/fuzzers/corpora/packfile/37ab8a0ca81fc62279057401761f7730a5a8f1b2 differ
diff --git a/fuzzers/corpora/packfile/38011be20a664dcd2594e712a26c063c2d50efcd b/fuzzers/corpora/packfile/38011be20a664dcd2594e712a26c063c2d50efcd
new file mode 100644
index 0000000..bd80616
Binary files /dev/null and b/fuzzers/corpora/packfile/38011be20a664dcd2594e712a26c063c2d50efcd differ
diff --git a/fuzzers/corpora/packfile/3838851a5da8239c2ae6cbbe869c81446c720e87 b/fuzzers/corpora/packfile/3838851a5da8239c2ae6cbbe869c81446c720e87
new file mode 100644
index 0000000..d1282b9
Binary files /dev/null and b/fuzzers/corpora/packfile/3838851a5da8239c2ae6cbbe869c81446c720e87 differ
diff --git a/fuzzers/corpora/packfile/3921322ac01429b001f88d64c8319088fe49218e b/fuzzers/corpora/packfile/3921322ac01429b001f88d64c8319088fe49218e
new file mode 100644
index 0000000..6ed50eb
Binary files /dev/null and b/fuzzers/corpora/packfile/3921322ac01429b001f88d64c8319088fe49218e differ
diff --git a/fuzzers/corpora/packfile/395df8f7c51f007019cb30201c49e884b46b92fa b/fuzzers/corpora/packfile/395df8f7c51f007019cb30201c49e884b46b92fa
new file mode 100644
index 0000000..fa7af8b
--- /dev/null
+++ b/fuzzers/corpora/packfile/395df8f7c51f007019cb30201c49e884b46b92fa
@@ -0,0 +1 @@
+z
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe b/fuzzers/corpora/packfile/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe
new file mode 100644
index 0000000..8f1d1f5
Binary files /dev/null and b/fuzzers/corpora/packfile/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe differ
diff --git a/fuzzers/corpora/packfile/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8 b/fuzzers/corpora/packfile/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8
new file mode 100644
index 0000000..3c1f737
Binary files /dev/null and b/fuzzers/corpora/packfile/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8 differ
diff --git a/fuzzers/corpora/packfile/4067250457728bf775aa310ef253b223ae2fe4dc b/fuzzers/corpora/packfile/4067250457728bf775aa310ef253b223ae2fe4dc
new file mode 100644
index 0000000..1e9a88b
Binary files /dev/null and b/fuzzers/corpora/packfile/4067250457728bf775aa310ef253b223ae2fe4dc differ
diff --git a/fuzzers/corpora/packfile/40818db87e110b29cb864f73265586cc054f5bbb b/fuzzers/corpora/packfile/40818db87e110b29cb864f73265586cc054f5bbb
new file mode 100644
index 0000000..e5e52b2
Binary files /dev/null and b/fuzzers/corpora/packfile/40818db87e110b29cb864f73265586cc054f5bbb differ
diff --git a/fuzzers/corpora/packfile/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc b/fuzzers/corpora/packfile/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc
new file mode 100644
index 0000000..93eb935
Binary files /dev/null and b/fuzzers/corpora/packfile/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc differ
diff --git a/fuzzers/corpora/packfile/41ca0ae865b686089b8d99e9d661da291ce51019 b/fuzzers/corpora/packfile/41ca0ae865b686089b8d99e9d661da291ce51019
new file mode 100644
index 0000000..e6f394f
Binary files /dev/null and b/fuzzers/corpora/packfile/41ca0ae865b686089b8d99e9d661da291ce51019 differ
diff --git a/fuzzers/corpora/packfile/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8 b/fuzzers/corpora/packfile/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8
new file mode 100644
index 0000000..35ec3b9
--- /dev/null
+++ b/fuzzers/corpora/packfile/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8
@@ -0,0 +1 @@
+/
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/420ce645ce1c93cee59a06da2159cbbb251e4c01 b/fuzzers/corpora/packfile/420ce645ce1c93cee59a06da2159cbbb251e4c01
new file mode 100644
index 0000000..5e6efc2
Binary files /dev/null and b/fuzzers/corpora/packfile/420ce645ce1c93cee59a06da2159cbbb251e4c01 differ
diff --git a/fuzzers/corpora/packfile/4345cb1fa27885a8fbfe7c0c830a592cc76a552b b/fuzzers/corpora/packfile/4345cb1fa27885a8fbfe7c0c830a592cc76a552b
new file mode 100644
index 0000000..02691e3
--- /dev/null
+++ b/fuzzers/corpora/packfile/4345cb1fa27885a8fbfe7c0c830a592cc76a552b
@@ -0,0 +1 @@
+%
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/450718a71a93a1b5ff982595432400b0fa876fb6 b/fuzzers/corpora/packfile/450718a71a93a1b5ff982595432400b0fa876fb6
new file mode 100644
index 0000000..977e595
Binary files /dev/null and b/fuzzers/corpora/packfile/450718a71a93a1b5ff982595432400b0fa876fb6 differ
diff --git a/fuzzers/corpora/packfile/453a312eb77b9d4198ac62faef10ecf3e283120c b/fuzzers/corpora/packfile/453a312eb77b9d4198ac62faef10ecf3e283120c
new file mode 100644
index 0000000..b25fe53
Binary files /dev/null and b/fuzzers/corpora/packfile/453a312eb77b9d4198ac62faef10ecf3e283120c differ
diff --git a/fuzzers/corpora/packfile/45470317334b614ce4d119c05ed2d6250dbc6061 b/fuzzers/corpora/packfile/45470317334b614ce4d119c05ed2d6250dbc6061
new file mode 100644
index 0000000..4b9a0a9
Binary files /dev/null and b/fuzzers/corpora/packfile/45470317334b614ce4d119c05ed2d6250dbc6061 differ
diff --git a/fuzzers/corpora/packfile/45a65193e30784b0124f4fed659eb7e46552c2d0 b/fuzzers/corpora/packfile/45a65193e30784b0124f4fed659eb7e46552c2d0
new file mode 100644
index 0000000..5bd7dea
--- /dev/null
+++ b/fuzzers/corpora/packfile/45a65193e30784b0124f4fed659eb7e46552c2d0
@@ -0,0 +1 @@
+¶
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/45cff3494791ded181e1e3dab1c7a0e40130b57b b/fuzzers/corpora/packfile/45cff3494791ded181e1e3dab1c7a0e40130b57b
new file mode 100644
index 0000000..a92e1a5
Binary files /dev/null and b/fuzzers/corpora/packfile/45cff3494791ded181e1e3dab1c7a0e40130b57b differ
diff --git a/fuzzers/corpora/packfile/481dedc2855981510024d48828af0fe35a1503dd b/fuzzers/corpora/packfile/481dedc2855981510024d48828af0fe35a1503dd
new file mode 100644
index 0000000..3d95cc3
Binary files /dev/null and b/fuzzers/corpora/packfile/481dedc2855981510024d48828af0fe35a1503dd differ
diff --git a/fuzzers/corpora/packfile/49a6448a722742b1b392f0471542ee0c572c5a9a b/fuzzers/corpora/packfile/49a6448a722742b1b392f0471542ee0c572c5a9a
new file mode 100644
index 0000000..c767ee5
Binary files /dev/null and b/fuzzers/corpora/packfile/49a6448a722742b1b392f0471542ee0c572c5a9a differ
diff --git a/fuzzers/corpora/packfile/4a6e6af93dea13a5720be52b95f2948e0cab4602 b/fuzzers/corpora/packfile/4a6e6af93dea13a5720be52b95f2948e0cab4602
new file mode 100644
index 0000000..013d77b
Binary files /dev/null and b/fuzzers/corpora/packfile/4a6e6af93dea13a5720be52b95f2948e0cab4602 differ
diff --git a/fuzzers/corpora/packfile/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283 b/fuzzers/corpora/packfile/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283
new file mode 100644
index 0000000..2ee6580
Binary files /dev/null and b/fuzzers/corpora/packfile/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283 differ
diff --git a/fuzzers/corpora/packfile/4b586169f192749a0aa023ad6e4edd2e15d67f53 b/fuzzers/corpora/packfile/4b586169f192749a0aa023ad6e4edd2e15d67f53
new file mode 100644
index 0000000..d517c58
Binary files /dev/null and b/fuzzers/corpora/packfile/4b586169f192749a0aa023ad6e4edd2e15d67f53 differ
diff --git a/fuzzers/corpora/packfile/4c3c8ec0e25da9342dc87c2e78d3040c381514ce b/fuzzers/corpora/packfile/4c3c8ec0e25da9342dc87c2e78d3040c381514ce
new file mode 100644
index 0000000..c6a1059
Binary files /dev/null and b/fuzzers/corpora/packfile/4c3c8ec0e25da9342dc87c2e78d3040c381514ce differ
diff --git a/fuzzers/corpora/packfile/4d5189cd1411daaa579df34591c6a5946204c9a0 b/fuzzers/corpora/packfile/4d5189cd1411daaa579df34591c6a5946204c9a0
new file mode 100644
index 0000000..ac19046
Binary files /dev/null and b/fuzzers/corpora/packfile/4d5189cd1411daaa579df34591c6a5946204c9a0 differ
diff --git a/fuzzers/corpora/packfile/4d7f1bfa928c0d3399598d562e346c6e23de6a03 b/fuzzers/corpora/packfile/4d7f1bfa928c0d3399598d562e346c6e23de6a03
new file mode 100644
index 0000000..712cf00
Binary files /dev/null and b/fuzzers/corpora/packfile/4d7f1bfa928c0d3399598d562e346c6e23de6a03 differ
diff --git a/fuzzers/corpora/packfile/4eee38183d6fce3f42224738be58d0e3975300f4 b/fuzzers/corpora/packfile/4eee38183d6fce3f42224738be58d0e3975300f4
new file mode 100644
index 0000000..4434b93
Binary files /dev/null and b/fuzzers/corpora/packfile/4eee38183d6fce3f42224738be58d0e3975300f4 differ
diff --git a/fuzzers/corpora/packfile/4f2e2af611d6567abcf5b6bfc579487ac417a8d4 b/fuzzers/corpora/packfile/4f2e2af611d6567abcf5b6bfc579487ac417a8d4
new file mode 100644
index 0000000..d16ad16
Binary files /dev/null and b/fuzzers/corpora/packfile/4f2e2af611d6567abcf5b6bfc579487ac417a8d4 differ
diff --git a/fuzzers/corpora/packfile/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097 b/fuzzers/corpora/packfile/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097
new file mode 100644
index 0000000..0102fe3
Binary files /dev/null and b/fuzzers/corpora/packfile/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097 differ
diff --git a/fuzzers/corpora/packfile/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4 b/fuzzers/corpora/packfile/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4
new file mode 100644
index 0000000..83ca019
Binary files /dev/null and b/fuzzers/corpora/packfile/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4 differ
diff --git a/fuzzers/corpora/packfile/5037f4f74273aed9a09122af5f4acc10f42c033a b/fuzzers/corpora/packfile/5037f4f74273aed9a09122af5f4acc10f42c033a
new file mode 100644
index 0000000..cc94079
Binary files /dev/null and b/fuzzers/corpora/packfile/5037f4f74273aed9a09122af5f4acc10f42c033a differ
diff --git a/fuzzers/corpora/packfile/511993d3c99719e38a6779073019dacd7178ddb9 b/fuzzers/corpora/packfile/511993d3c99719e38a6779073019dacd7178ddb9
new file mode 100644
index 0000000..675f43a
--- /dev/null
+++ b/fuzzers/corpora/packfile/511993d3c99719e38a6779073019dacd7178ddb9
@@ -0,0 +1 @@
+P
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/520aa436eab6343c3729f51f0f8048e6b87f6aeb b/fuzzers/corpora/packfile/520aa436eab6343c3729f51f0f8048e6b87f6aeb
new file mode 100644
index 0000000..b5ec5af
--- /dev/null
+++ b/fuzzers/corpora/packfile/520aa436eab6343c3729f51f0f8048e6b87f6aeb
@@ -0,0 +1 @@
+ÏÏ
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/521e228f3b62dca81d87d2e7d5476657d7b5e0a9 b/fuzzers/corpora/packfile/521e228f3b62dca81d87d2e7d5476657d7b5e0a9
new file mode 100644
index 0000000..c0ea9e9
Binary files /dev/null and b/fuzzers/corpora/packfile/521e228f3b62dca81d87d2e7d5476657d7b5e0a9 differ
diff --git a/fuzzers/corpora/packfile/52e37dfd77d56769dc8a96388aa26695a8108dac b/fuzzers/corpora/packfile/52e37dfd77d56769dc8a96388aa26695a8108dac
new file mode 100644
index 0000000..57d12a9
Binary files /dev/null and b/fuzzers/corpora/packfile/52e37dfd77d56769dc8a96388aa26695a8108dac differ
diff --git a/fuzzers/corpora/packfile/5374fb6be0a406cf8d0e95771ecb032254d21305 b/fuzzers/corpora/packfile/5374fb6be0a406cf8d0e95771ecb032254d21305
new file mode 100644
index 0000000..42b16b0
Binary files /dev/null and b/fuzzers/corpora/packfile/5374fb6be0a406cf8d0e95771ecb032254d21305 differ
diff --git a/fuzzers/corpora/packfile/53e1d4898c15c8ee3ef5e2fb279d151108725731 b/fuzzers/corpora/packfile/53e1d4898c15c8ee3ef5e2fb279d151108725731
new file mode 100644
index 0000000..516958e
Binary files /dev/null and b/fuzzers/corpora/packfile/53e1d4898c15c8ee3ef5e2fb279d151108725731 differ
diff --git a/fuzzers/corpora/packfile/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0 b/fuzzers/corpora/packfile/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0
new file mode 100644
index 0000000..ded2968
Binary files /dev/null and b/fuzzers/corpora/packfile/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0 differ
diff --git a/fuzzers/corpora/packfile/55df2a59ed6a888ee2f0cdfdcc8582696702de7a b/fuzzers/corpora/packfile/55df2a59ed6a888ee2f0cdfdcc8582696702de7a
new file mode 100644
index 0000000..a4a063a
--- /dev/null
+++ b/fuzzers/corpora/packfile/55df2a59ed6a888ee2f0cdfdcc8582696702de7a
@@ -0,0 +1 @@
+ï
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2 b/fuzzers/corpora/packfile/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2
new file mode 100644
index 0000000..be0ff0d
Binary files /dev/null and b/fuzzers/corpora/packfile/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2 differ
diff --git a/fuzzers/corpora/packfile/578678e78b72f8bcb9f414e4129ae5d85a4af914 b/fuzzers/corpora/packfile/578678e78b72f8bcb9f414e4129ae5d85a4af914
new file mode 100644
index 0000000..7482954
Binary files /dev/null and b/fuzzers/corpora/packfile/578678e78b72f8bcb9f414e4129ae5d85a4af914 differ
diff --git a/fuzzers/corpora/packfile/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7 b/fuzzers/corpora/packfile/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7
new file mode 100644
index 0000000..4c88499
Binary files /dev/null and b/fuzzers/corpora/packfile/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7 differ
diff --git a/fuzzers/corpora/packfile/5bab61eb53176449e25c2c82f172b82cb13ffb9d b/fuzzers/corpora/packfile/5bab61eb53176449e25c2c82f172b82cb13ffb9d
new file mode 100644
index 0000000..0d758c9
--- /dev/null
+++ b/fuzzers/corpora/packfile/5bab61eb53176449e25c2c82f172b82cb13ffb9d
@@ -0,0 +1 @@
+?
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06 b/fuzzers/corpora/packfile/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06
new file mode 100644
index 0000000..0fe2fa5
--- /dev/null
+++ b/fuzzers/corpora/packfile/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06
@@ -0,0 +1 @@
+j
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/5cb4674f4468d39f061d1df3c95b9c2dca529c54 b/fuzzers/corpora/packfile/5cb4674f4468d39f061d1df3c95b9c2dca529c54
new file mode 100644
index 0000000..9b54d9f
Binary files /dev/null and b/fuzzers/corpora/packfile/5cb4674f4468d39f061d1df3c95b9c2dca529c54 differ
diff --git a/fuzzers/corpora/packfile/60b6fbfe65dc1796a09a734e054223aba8c90260 b/fuzzers/corpora/packfile/60b6fbfe65dc1796a09a734e054223aba8c90260
new file mode 100644
index 0000000..a7df9a6
Binary files /dev/null and b/fuzzers/corpora/packfile/60b6fbfe65dc1796a09a734e054223aba8c90260 differ
diff --git a/fuzzers/corpora/packfile/611f5b9368427ef823f7ed89ad23667b02a06435 b/fuzzers/corpora/packfile/611f5b9368427ef823f7ed89ad23667b02a06435
new file mode 100644
index 0000000..56ee380
Binary files /dev/null and b/fuzzers/corpora/packfile/611f5b9368427ef823f7ed89ad23667b02a06435 differ
diff --git a/fuzzers/corpora/packfile/6214b4afdbfe63400ce428d47a58a2e29f682738 b/fuzzers/corpora/packfile/6214b4afdbfe63400ce428d47a58a2e29f682738
new file mode 100644
index 0000000..09e3c40
Binary files /dev/null and b/fuzzers/corpora/packfile/6214b4afdbfe63400ce428d47a58a2e29f682738 differ
diff --git a/fuzzers/corpora/packfile/634b675b80d51b52c3c6fbc73181ed47f61749ba b/fuzzers/corpora/packfile/634b675b80d51b52c3c6fbc73181ed47f61749ba
new file mode 100644
index 0000000..9afac4f
Binary files /dev/null and b/fuzzers/corpora/packfile/634b675b80d51b52c3c6fbc73181ed47f61749ba differ
diff --git a/fuzzers/corpora/packfile/6431f1b31dc492fad89732b7d3e511fa7361985d b/fuzzers/corpora/packfile/6431f1b31dc492fad89732b7d3e511fa7361985d
new file mode 100644
index 0000000..b68409e
Binary files /dev/null and b/fuzzers/corpora/packfile/6431f1b31dc492fad89732b7d3e511fa7361985d differ
diff --git a/fuzzers/corpora/packfile/6442fd4bbb7656f142c92050da17b0e81e79fad1 b/fuzzers/corpora/packfile/6442fd4bbb7656f142c92050da17b0e81e79fad1
new file mode 100644
index 0000000..2ca2d96
Binary files /dev/null and b/fuzzers/corpora/packfile/6442fd4bbb7656f142c92050da17b0e81e79fad1 differ
diff --git a/fuzzers/corpora/packfile/6486c8cf6bcc2fca60502564924f6b266399df3d b/fuzzers/corpora/packfile/6486c8cf6bcc2fca60502564924f6b266399df3d
new file mode 100644
index 0000000..a80e209
Binary files /dev/null and b/fuzzers/corpora/packfile/6486c8cf6bcc2fca60502564924f6b266399df3d differ
diff --git a/fuzzers/corpora/packfile/651c573b6fdd393e97536a47f8b9e65226e29c33 b/fuzzers/corpora/packfile/651c573b6fdd393e97536a47f8b9e65226e29c33
new file mode 100644
index 0000000..ec11120
Binary files /dev/null and b/fuzzers/corpora/packfile/651c573b6fdd393e97536a47f8b9e65226e29c33 differ
diff --git a/fuzzers/corpora/packfile/657fc646e93cb999417f43f0ec77fbad694e3e18 b/fuzzers/corpora/packfile/657fc646e93cb999417f43f0ec77fbad694e3e18
new file mode 100644
index 0000000..acb56a8
Binary files /dev/null and b/fuzzers/corpora/packfile/657fc646e93cb999417f43f0ec77fbad694e3e18 differ
diff --git a/fuzzers/corpora/packfile/65cc90263dec0020ceabc727d33aa587e57fc175 b/fuzzers/corpora/packfile/65cc90263dec0020ceabc727d33aa587e57fc175
new file mode 100644
index 0000000..d14a6c3
--- /dev/null
+++ b/fuzzers/corpora/packfile/65cc90263dec0020ceabc727d33aa587e57fc175
@@ -0,0 +1 @@
+ÿ÷
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/688934845f22049cb14668832efa33d45013b6b9 b/fuzzers/corpora/packfile/688934845f22049cb14668832efa33d45013b6b9
new file mode 100644
index 0000000..15294a5
Binary files /dev/null and b/fuzzers/corpora/packfile/688934845f22049cb14668832efa33d45013b6b9 differ
diff --git a/fuzzers/corpora/packfile/6b0d31c0d563223024da45691584643ac78c96e8 b/fuzzers/corpora/packfile/6b0d31c0d563223024da45691584643ac78c96e8
new file mode 100644
index 0000000..08b9811
--- /dev/null
+++ b/fuzzers/corpora/packfile/6b0d31c0d563223024da45691584643ac78c96e8
@@ -0,0 +1 @@
+m
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1 b/fuzzers/corpora/packfile/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1
new file mode 100644
index 0000000..d76aa6f
Binary files /dev/null and b/fuzzers/corpora/packfile/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1 differ
diff --git a/fuzzers/corpora/packfile/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5 b/fuzzers/corpora/packfile/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5
new file mode 100644
index 0000000..d1e0eed
Binary files /dev/null and b/fuzzers/corpora/packfile/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5 differ
diff --git a/fuzzers/corpora/packfile/6bace82ea640ac0a78963c79483faf0faa7fd168 b/fuzzers/corpora/packfile/6bace82ea640ac0a78963c79483faf0faa7fd168
new file mode 100644
index 0000000..8c53a7f
--- /dev/null
+++ b/fuzzers/corpora/packfile/6bace82ea640ac0a78963c79483faf0faa7fd168
@@ -0,0 +1 @@
+±
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/6ca38da5f096a5847776e4d50cb63121341fd67c b/fuzzers/corpora/packfile/6ca38da5f096a5847776e4d50cb63121341fd67c
new file mode 100644
index 0000000..628bda0
Binary files /dev/null and b/fuzzers/corpora/packfile/6ca38da5f096a5847776e4d50cb63121341fd67c differ
diff --git a/fuzzers/corpora/packfile/6d344a65b9edced36045f94215b6810799789334 b/fuzzers/corpora/packfile/6d344a65b9edced36045f94215b6810799789334
new file mode 100644
index 0000000..1c79442
Binary files /dev/null and b/fuzzers/corpora/packfile/6d344a65b9edced36045f94215b6810799789334 differ
diff --git a/fuzzers/corpora/packfile/6dd655e8ef0573eb1c41151af924974aa1e9c454 b/fuzzers/corpora/packfile/6dd655e8ef0573eb1c41151af924974aa1e9c454
new file mode 100644
index 0000000..5304756
Binary files /dev/null and b/fuzzers/corpora/packfile/6dd655e8ef0573eb1c41151af924974aa1e9c454 differ
diff --git a/fuzzers/corpora/packfile/6e118259c2940fafba0a9ceeef6308e12e881ae1 b/fuzzers/corpora/packfile/6e118259c2940fafba0a9ceeef6308e12e881ae1
new file mode 100644
index 0000000..23597c3
Binary files /dev/null and b/fuzzers/corpora/packfile/6e118259c2940fafba0a9ceeef6308e12e881ae1 differ
diff --git a/fuzzers/corpora/packfile/6e4b5ef83333606a16a63b579f221f6ffb7b48ee b/fuzzers/corpora/packfile/6e4b5ef83333606a16a63b579f221f6ffb7b48ee
new file mode 100644
index 0000000..6d72c9a
--- /dev/null
+++ b/fuzzers/corpora/packfile/6e4b5ef83333606a16a63b579f221f6ffb7b48ee
@@ -0,0 +1 @@
+è
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/6f47ff60d54c012103a0c28851ffa9eab3002511 b/fuzzers/corpora/packfile/6f47ff60d54c012103a0c28851ffa9eab3002511
new file mode 100644
index 0000000..a7efd53
Binary files /dev/null and b/fuzzers/corpora/packfile/6f47ff60d54c012103a0c28851ffa9eab3002511 differ
diff --git a/fuzzers/corpora/packfile/701a765befff451207517d56c3fe8609d059867d b/fuzzers/corpora/packfile/701a765befff451207517d56c3fe8609d059867d
new file mode 100644
index 0000000..ee936e3
Binary files /dev/null and b/fuzzers/corpora/packfile/701a765befff451207517d56c3fe8609d059867d differ
diff --git a/fuzzers/corpora/packfile/7050f56d64b28499c89d5430761f18a8a2a933d4 b/fuzzers/corpora/packfile/7050f56d64b28499c89d5430761f18a8a2a933d4
new file mode 100644
index 0000000..a3df396
Binary files /dev/null and b/fuzzers/corpora/packfile/7050f56d64b28499c89d5430761f18a8a2a933d4 differ
diff --git a/fuzzers/corpora/packfile/724fa0194f615e1a0f08184a9f1520123f8e2833 b/fuzzers/corpora/packfile/724fa0194f615e1a0f08184a9f1520123f8e2833
new file mode 100644
index 0000000..dd6df78
Binary files /dev/null and b/fuzzers/corpora/packfile/724fa0194f615e1a0f08184a9f1520123f8e2833 differ
diff --git a/fuzzers/corpora/packfile/72c52d0d98717e21dfee45418a046a19198b5d5d b/fuzzers/corpora/packfile/72c52d0d98717e21dfee45418a046a19198b5d5d
new file mode 100644
index 0000000..922e306
Binary files /dev/null and b/fuzzers/corpora/packfile/72c52d0d98717e21dfee45418a046a19198b5d5d differ
diff --git a/fuzzers/corpora/packfile/72cec0949c5743ee1df67b41ece5d6806f9bede6 b/fuzzers/corpora/packfile/72cec0949c5743ee1df67b41ece5d6806f9bede6
new file mode 100644
index 0000000..366439d
Binary files /dev/null and b/fuzzers/corpora/packfile/72cec0949c5743ee1df67b41ece5d6806f9bede6 differ
diff --git a/fuzzers/corpora/packfile/72e6bfb7b881befc0b461334411d70ae227a426a b/fuzzers/corpora/packfile/72e6bfb7b881befc0b461334411d70ae227a426a
new file mode 100644
index 0000000..c7986f6
Binary files /dev/null and b/fuzzers/corpora/packfile/72e6bfb7b881befc0b461334411d70ae227a426a differ
diff --git a/fuzzers/corpora/packfile/73b74736664ad85828ce1be2e29fb4a68d24402b b/fuzzers/corpora/packfile/73b74736664ad85828ce1be2e29fb4a68d24402b
new file mode 100644
index 0000000..009080e
--- /dev/null
+++ b/fuzzers/corpora/packfile/73b74736664ad85828ce1be2e29fb4a68d24402b
@@ -0,0 +1 @@
+÷
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/745bedb79413d20844a8b0e96fbec51b4989c65d b/fuzzers/corpora/packfile/745bedb79413d20844a8b0e96fbec51b4989c65d
new file mode 100644
index 0000000..0022a3e
--- /dev/null
+++ b/fuzzers/corpora/packfile/745bedb79413d20844a8b0e96fbec51b4989c65d
@@ -0,0 +1 @@
+ø
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/748142c17e56d0f0ad9e4d6525b39294d81261d6 b/fuzzers/corpora/packfile/748142c17e56d0f0ad9e4d6525b39294d81261d6
new file mode 100644
index 0000000..7ac1cad
Binary files /dev/null and b/fuzzers/corpora/packfile/748142c17e56d0f0ad9e4d6525b39294d81261d6 differ
diff --git a/fuzzers/corpora/packfile/74dfea2e26741a8778fb942d1d60a84d0759d7a0 b/fuzzers/corpora/packfile/74dfea2e26741a8778fb942d1d60a84d0759d7a0
new file mode 100644
index 0000000..fe307f6
--- /dev/null
+++ b/fuzzers/corpora/packfile/74dfea2e26741a8778fb942d1d60a84d0759d7a0
@@ -0,0 +1 @@
+˜o
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/767b2efbb7502a2f652a448b471693d32c128677 b/fuzzers/corpora/packfile/767b2efbb7502a2f652a448b471693d32c128677
new file mode 100644
index 0000000..90a8f3a
Binary files /dev/null and b/fuzzers/corpora/packfile/767b2efbb7502a2f652a448b471693d32c128677 differ
diff --git a/fuzzers/corpora/packfile/78abe558c4277852128d4b91282edcb68f86bdea b/fuzzers/corpora/packfile/78abe558c4277852128d4b91282edcb68f86bdea
new file mode 100644
index 0000000..30644d1
Binary files /dev/null and b/fuzzers/corpora/packfile/78abe558c4277852128d4b91282edcb68f86bdea differ
diff --git a/fuzzers/corpora/packfile/7960246c2db6d39e68dfe93ded358a3acba8f896 b/fuzzers/corpora/packfile/7960246c2db6d39e68dfe93ded358a3acba8f896
new file mode 100644
index 0000000..4d3703a
Binary files /dev/null and b/fuzzers/corpora/packfile/7960246c2db6d39e68dfe93ded358a3acba8f896 differ
diff --git a/fuzzers/corpora/packfile/7a4ff814176b55af008ad9580201d5e659242f05 b/fuzzers/corpora/packfile/7a4ff814176b55af008ad9580201d5e659242f05
new file mode 100644
index 0000000..029e4fc
Binary files /dev/null and b/fuzzers/corpora/packfile/7a4ff814176b55af008ad9580201d5e659242f05 differ
diff --git a/fuzzers/corpora/packfile/7a752694fce29ded083fbabbc9ff95f5b92a3d9c b/fuzzers/corpora/packfile/7a752694fce29ded083fbabbc9ff95f5b92a3d9c
new file mode 100644
index 0000000..82b5593
Binary files /dev/null and b/fuzzers/corpora/packfile/7a752694fce29ded083fbabbc9ff95f5b92a3d9c differ
diff --git a/fuzzers/corpora/packfile/7a81af3e591ac713f81ea1efe93dcf36157d8376 b/fuzzers/corpora/packfile/7a81af3e591ac713f81ea1efe93dcf36157d8376
new file mode 100644
index 0000000..883ad6e
--- /dev/null
+++ b/fuzzers/corpora/packfile/7a81af3e591ac713f81ea1efe93dcf36157d8376
@@ -0,0 +1 @@
+o
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/7c957a1fd650f9ae0eadc112837ea451a692affc b/fuzzers/corpora/packfile/7c957a1fd650f9ae0eadc112837ea451a692affc
new file mode 100644
index 0000000..251bc95
Binary files /dev/null and b/fuzzers/corpora/packfile/7c957a1fd650f9ae0eadc112837ea451a692affc differ
diff --git a/fuzzers/corpora/packfile/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f b/fuzzers/corpora/packfile/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f
new file mode 100644
index 0000000..9e58e19
Binary files /dev/null and b/fuzzers/corpora/packfile/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f differ
diff --git a/fuzzers/corpora/packfile/7cf184f4c67ad58283ecb19349720b0cae756829 b/fuzzers/corpora/packfile/7cf184f4c67ad58283ecb19349720b0cae756829
new file mode 100644
index 0000000..8ac2eb5
--- /dev/null
+++ b/fuzzers/corpora/packfile/7cf184f4c67ad58283ecb19349720b0cae756829
@@ -0,0 +1 @@
+H
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb b/fuzzers/corpora/packfile/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb
new file mode 100644
index 0000000..0865a4a
Binary files /dev/null and b/fuzzers/corpora/packfile/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb differ
diff --git a/fuzzers/corpora/packfile/820ec3e39089d863641a1be6942445db3ff34270 b/fuzzers/corpora/packfile/820ec3e39089d863641a1be6942445db3ff34270
new file mode 100644
index 0000000..a7a949a
Binary files /dev/null and b/fuzzers/corpora/packfile/820ec3e39089d863641a1be6942445db3ff34270 differ
diff --git a/fuzzers/corpora/packfile/827704fd978bd02a46268b7396b202a52ad261ed b/fuzzers/corpora/packfile/827704fd978bd02a46268b7396b202a52ad261ed
new file mode 100644
index 0000000..855e5fc
Binary files /dev/null and b/fuzzers/corpora/packfile/827704fd978bd02a46268b7396b202a52ad261ed differ
diff --git a/fuzzers/corpora/packfile/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8 b/fuzzers/corpora/packfile/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8
new file mode 100644
index 0000000..cf479ad
Binary files /dev/null and b/fuzzers/corpora/packfile/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8 differ
diff --git a/fuzzers/corpora/packfile/8306a2f04a47fe4c95098675ffa25c074ecd89de b/fuzzers/corpora/packfile/8306a2f04a47fe4c95098675ffa25c074ecd89de
new file mode 100644
index 0000000..44cda73
Binary files /dev/null and b/fuzzers/corpora/packfile/8306a2f04a47fe4c95098675ffa25c074ecd89de differ
diff --git a/fuzzers/corpora/packfile/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a b/fuzzers/corpora/packfile/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a
new file mode 100644
index 0000000..315e1e6
Binary files /dev/null and b/fuzzers/corpora/packfile/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a differ
diff --git a/fuzzers/corpora/packfile/847f4e42f8f2730a48d19951d8829621b2e70082 b/fuzzers/corpora/packfile/847f4e42f8f2730a48d19951d8829621b2e70082
new file mode 100644
index 0000000..22952d5
Binary files /dev/null and b/fuzzers/corpora/packfile/847f4e42f8f2730a48d19951d8829621b2e70082 differ
diff --git a/fuzzers/corpora/packfile/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 b/fuzzers/corpora/packfile/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4
new file mode 100644
index 0000000..3410062
--- /dev/null
+++ b/fuzzers/corpora/packfile/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4
@@ -0,0 +1 @@
+c
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/8552526f5aba95119c0b95b61cd40386e7a3738b b/fuzzers/corpora/packfile/8552526f5aba95119c0b95b61cd40386e7a3738b
new file mode 100644
index 0000000..6a29f0f
Binary files /dev/null and b/fuzzers/corpora/packfile/8552526f5aba95119c0b95b61cd40386e7a3738b differ
diff --git a/fuzzers/corpora/packfile/8565db62ac64209ff009ac40e7c2d2ac4ae944eb b/fuzzers/corpora/packfile/8565db62ac64209ff009ac40e7c2d2ac4ae944eb
new file mode 100644
index 0000000..066b1da
Binary files /dev/null and b/fuzzers/corpora/packfile/8565db62ac64209ff009ac40e7c2d2ac4ae944eb differ
diff --git a/fuzzers/corpora/packfile/859b3346967c5c3c136459e565b402f9a936aa0d b/fuzzers/corpora/packfile/859b3346967c5c3c136459e565b402f9a936aa0d
new file mode 100644
index 0000000..9c10c98
Binary files /dev/null and b/fuzzers/corpora/packfile/859b3346967c5c3c136459e565b402f9a936aa0d differ
diff --git a/fuzzers/corpora/packfile/86a69caf3c5866d78d80da087b1b843cfea5e907 b/fuzzers/corpora/packfile/86a69caf3c5866d78d80da087b1b843cfea5e907
new file mode 100644
index 0000000..b122e37
Binary files /dev/null and b/fuzzers/corpora/packfile/86a69caf3c5866d78d80da087b1b843cfea5e907 differ
diff --git a/fuzzers/corpora/packfile/86e1fb54a04fc18ee482b794ba3b2b306f6515d4 b/fuzzers/corpora/packfile/86e1fb54a04fc18ee482b794ba3b2b306f6515d4
new file mode 100644
index 0000000..7d31055
Binary files /dev/null and b/fuzzers/corpora/packfile/86e1fb54a04fc18ee482b794ba3b2b306f6515d4 differ
diff --git a/fuzzers/corpora/packfile/86f217ee467d31ad9ad2a8c502b91279cd7f1c40 b/fuzzers/corpora/packfile/86f217ee467d31ad9ad2a8c502b91279cd7f1c40
new file mode 100644
index 0000000..9951e26
Binary files /dev/null and b/fuzzers/corpora/packfile/86f217ee467d31ad9ad2a8c502b91279cd7f1c40 differ
diff --git a/fuzzers/corpora/packfile/8768a53e1d4c182907306300f9ca90cfd8018383 b/fuzzers/corpora/packfile/8768a53e1d4c182907306300f9ca90cfd8018383
new file mode 100644
index 0000000..3ea63c2
--- /dev/null
+++ b/fuzzers/corpora/packfile/8768a53e1d4c182907306300f9ca90cfd8018383
@@ -0,0 +1 @@
+…
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/8834a7aac170c494f45aa4da71b9605a52d82435 b/fuzzers/corpora/packfile/8834a7aac170c494f45aa4da71b9605a52d82435
new file mode 100644
index 0000000..40d2f60
Binary files /dev/null and b/fuzzers/corpora/packfile/8834a7aac170c494f45aa4da71b9605a52d82435 differ
diff --git a/fuzzers/corpora/packfile/883f023f38a031d8a8e8ce2cba6614b9bff5d41f b/fuzzers/corpora/packfile/883f023f38a031d8a8e8ce2cba6614b9bff5d41f
new file mode 100644
index 0000000..30928b6
Binary files /dev/null and b/fuzzers/corpora/packfile/883f023f38a031d8a8e8ce2cba6614b9bff5d41f differ
diff --git a/fuzzers/corpora/packfile/88738071086eb04e47b77d1ca28b35ddbfaa0968 b/fuzzers/corpora/packfile/88738071086eb04e47b77d1ca28b35ddbfaa0968
new file mode 100644
index 0000000..7c1f28e
Binary files /dev/null and b/fuzzers/corpora/packfile/88738071086eb04e47b77d1ca28b35ddbfaa0968 differ
diff --git a/fuzzers/corpora/packfile/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd b/fuzzers/corpora/packfile/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd
new file mode 100644
index 0000000..16e6f0a
Binary files /dev/null and b/fuzzers/corpora/packfile/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd differ
diff --git a/fuzzers/corpora/packfile/8afb5c282d23c4055500f88a10b26383c682c900 b/fuzzers/corpora/packfile/8afb5c282d23c4055500f88a10b26383c682c900
new file mode 100644
index 0000000..cf91507
Binary files /dev/null and b/fuzzers/corpora/packfile/8afb5c282d23c4055500f88a10b26383c682c900 differ
diff --git a/fuzzers/corpora/packfile/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61 b/fuzzers/corpora/packfile/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61
new file mode 100644
index 0000000..4c8cc0c
Binary files /dev/null and b/fuzzers/corpora/packfile/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61 differ
diff --git a/fuzzers/corpora/packfile/8c2cccf751bb5844bea8dc63c22e3f8e4489411e b/fuzzers/corpora/packfile/8c2cccf751bb5844bea8dc63c22e3f8e4489411e
new file mode 100644
index 0000000..70e2d30
Binary files /dev/null and b/fuzzers/corpora/packfile/8c2cccf751bb5844bea8dc63c22e3f8e4489411e differ
diff --git a/fuzzers/corpora/packfile/8e30894298502ba4d43af98f1ec3088f9b8f29d5 b/fuzzers/corpora/packfile/8e30894298502ba4d43af98f1ec3088f9b8f29d5
new file mode 100644
index 0000000..c4df802
Binary files /dev/null and b/fuzzers/corpora/packfile/8e30894298502ba4d43af98f1ec3088f9b8f29d5 differ
diff --git a/fuzzers/corpora/packfile/8eb4d738f7170d2e0594b779f782eb3171c9d421 b/fuzzers/corpora/packfile/8eb4d738f7170d2e0594b779f782eb3171c9d421
new file mode 100644
index 0000000..410a7d6
Binary files /dev/null and b/fuzzers/corpora/packfile/8eb4d738f7170d2e0594b779f782eb3171c9d421 differ
diff --git a/fuzzers/corpora/packfile/8f46a043da3aa5d466ade170e62b0b9f362b4c5b b/fuzzers/corpora/packfile/8f46a043da3aa5d466ade170e62b0b9f362b4c5b
new file mode 100644
index 0000000..172736f
Binary files /dev/null and b/fuzzers/corpora/packfile/8f46a043da3aa5d466ade170e62b0b9f362b4c5b differ
diff --git a/fuzzers/corpora/packfile/9295f39686016bf3abb1d6e9924d6725c1263920 b/fuzzers/corpora/packfile/9295f39686016bf3abb1d6e9924d6725c1263920
new file mode 100644
index 0000000..04be533
Binary files /dev/null and b/fuzzers/corpora/packfile/9295f39686016bf3abb1d6e9924d6725c1263920 differ
diff --git a/fuzzers/corpora/packfile/92fa2c2237724e7ba49e9c59adad8d61ce400bbf b/fuzzers/corpora/packfile/92fa2c2237724e7ba49e9c59adad8d61ce400bbf
new file mode 100644
index 0000000..b890df0
Binary files /dev/null and b/fuzzers/corpora/packfile/92fa2c2237724e7ba49e9c59adad8d61ce400bbf differ
diff --git a/fuzzers/corpora/packfile/936548b53e1a1e30cb30747a87203abd4eae78ea b/fuzzers/corpora/packfile/936548b53e1a1e30cb30747a87203abd4eae78ea
new file mode 100644
index 0000000..2171770
Binary files /dev/null and b/fuzzers/corpora/packfile/936548b53e1a1e30cb30747a87203abd4eae78ea differ
diff --git a/fuzzers/corpora/packfile/9835ad3ff27939bc1315632d6a22980b377c36e4 b/fuzzers/corpora/packfile/9835ad3ff27939bc1315632d6a22980b377c36e4
new file mode 100644
index 0000000..025ad50
--- /dev/null
+++ b/fuzzers/corpora/packfile/9835ad3ff27939bc1315632d6a22980b377c36e4
@@ -0,0 +1 @@
+˜Pÿðÿðïÿðï
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/9857740c36a95415fa3be04cdf184db7b41a8b3e b/fuzzers/corpora/packfile/9857740c36a95415fa3be04cdf184db7b41a8b3e
new file mode 100644
index 0000000..7d3242f
Binary files /dev/null and b/fuzzers/corpora/packfile/9857740c36a95415fa3be04cdf184db7b41a8b3e differ
diff --git a/fuzzers/corpora/packfile/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4 b/fuzzers/corpora/packfile/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4
new file mode 100644
index 0000000..ea7c76e
Binary files /dev/null and b/fuzzers/corpora/packfile/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4 differ
diff --git a/fuzzers/corpora/packfile/9929b50ac145c0781a0347be1559764edc668173 b/fuzzers/corpora/packfile/9929b50ac145c0781a0347be1559764edc668173
new file mode 100644
index 0000000..33f1e92
--- /dev/null
+++ b/fuzzers/corpora/packfile/9929b50ac145c0781a0347be1559764edc668173
@@ -0,0 +1 @@
+žPACK³³
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/9bf6a450d87badf2d495c2df37081ea16156915a b/fuzzers/corpora/packfile/9bf6a450d87badf2d495c2df37081ea16156915a
new file mode 100644
index 0000000..ff4c483
Binary files /dev/null and b/fuzzers/corpora/packfile/9bf6a450d87badf2d495c2df37081ea16156915a differ
diff --git a/fuzzers/corpora/packfile/9bffb3ff7a4429144305b770162074bbffe39ce9 b/fuzzers/corpora/packfile/9bffb3ff7a4429144305b770162074bbffe39ce9
new file mode 100644
index 0000000..aa9c335
Binary files /dev/null and b/fuzzers/corpora/packfile/9bffb3ff7a4429144305b770162074bbffe39ce9 differ
diff --git a/fuzzers/corpora/packfile/9c040d3207196e3aeee0df389170d6e59733ba0f b/fuzzers/corpora/packfile/9c040d3207196e3aeee0df389170d6e59733ba0f
new file mode 100644
index 0000000..4c4e68a
Binary files /dev/null and b/fuzzers/corpora/packfile/9c040d3207196e3aeee0df389170d6e59733ba0f differ
diff --git a/fuzzers/corpora/packfile/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d b/fuzzers/corpora/packfile/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d
new file mode 100644
index 0000000..1f1ea65
Binary files /dev/null and b/fuzzers/corpora/packfile/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d differ
diff --git a/fuzzers/corpora/packfile/9cf72097400efb70d06179e6b00abb4cdec74e66 b/fuzzers/corpora/packfile/9cf72097400efb70d06179e6b00abb4cdec74e66
new file mode 100644
index 0000000..25cfb39
Binary files /dev/null and b/fuzzers/corpora/packfile/9cf72097400efb70d06179e6b00abb4cdec74e66 differ
diff --git a/fuzzers/corpora/packfile/9d36c270ef1f14214742562238dc747242d4756e b/fuzzers/corpora/packfile/9d36c270ef1f14214742562238dc747242d4756e
new file mode 100644
index 0000000..c54dc55
Binary files /dev/null and b/fuzzers/corpora/packfile/9d36c270ef1f14214742562238dc747242d4756e differ
diff --git a/fuzzers/corpora/packfile/9fb415ccadc8e7b0f38646ec5782d5895111e259 b/fuzzers/corpora/packfile/9fb415ccadc8e7b0f38646ec5782d5895111e259
new file mode 100644
index 0000000..473ebb7
Binary files /dev/null and b/fuzzers/corpora/packfile/9fb415ccadc8e7b0f38646ec5782d5895111e259 differ
diff --git a/fuzzers/corpora/packfile/a13b7fbb454fe3bdebd07a51d466484aa41ee142 b/fuzzers/corpora/packfile/a13b7fbb454fe3bdebd07a51d466484aa41ee142
new file mode 100644
index 0000000..48edf15
Binary files /dev/null and b/fuzzers/corpora/packfile/a13b7fbb454fe3bdebd07a51d466484aa41ee142 differ
diff --git a/fuzzers/corpora/packfile/a1a7715c7596c77b892dc6d4debb7c108ca4ef97 b/fuzzers/corpora/packfile/a1a7715c7596c77b892dc6d4debb7c108ca4ef97
new file mode 100644
index 0000000..3958311
--- /dev/null
+++ b/fuzzers/corpora/packfile/a1a7715c7596c77b892dc6d4debb7c108ca4ef97
@@ -0,0 +1 @@
+ù
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/a1ac8b656af02b56aefe6029db36b1af9fb664ef b/fuzzers/corpora/packfile/a1ac8b656af02b56aefe6029db36b1af9fb664ef
new file mode 100644
index 0000000..eeae769
Binary files /dev/null and b/fuzzers/corpora/packfile/a1ac8b656af02b56aefe6029db36b1af9fb664ef differ
diff --git a/fuzzers/corpora/packfile/a343687e2522222c2d49e8cb18d3feda64cf1d66 b/fuzzers/corpora/packfile/a343687e2522222c2d49e8cb18d3feda64cf1d66
new file mode 100644
index 0000000..7d24f8c
Binary files /dev/null and b/fuzzers/corpora/packfile/a343687e2522222c2d49e8cb18d3feda64cf1d66 differ
diff --git a/fuzzers/corpora/packfile/a6f57425137e9aa54537f0b3f5364ce165aedb0a b/fuzzers/corpora/packfile/a6f57425137e9aa54537f0b3f5364ce165aedb0a
new file mode 100644
index 0000000..d50394e
--- /dev/null
+++ b/fuzzers/corpora/packfile/a6f57425137e9aa54537f0b3f5364ce165aedb0a
@@ -0,0 +1 @@
+Ì
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/a73df4ce29f75cc638a7a2d823fee57d909ab681 b/fuzzers/corpora/packfile/a73df4ce29f75cc638a7a2d823fee57d909ab681
new file mode 100644
index 0000000..1a443b9
Binary files /dev/null and b/fuzzers/corpora/packfile/a73df4ce29f75cc638a7a2d823fee57d909ab681 differ
diff --git a/fuzzers/corpora/packfile/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569 b/fuzzers/corpora/packfile/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569
new file mode 100644
index 0000000..449e49e
--- /dev/null
+++ b/fuzzers/corpora/packfile/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569
@@ -0,0 +1 @@
+K
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7 b/fuzzers/corpora/packfile/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7
new file mode 100644
index 0000000..8e4277b
Binary files /dev/null and b/fuzzers/corpora/packfile/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7 differ
diff --git a/fuzzers/corpora/packfile/a9c697f383f59a3b0642cd55b88190bce6201bae b/fuzzers/corpora/packfile/a9c697f383f59a3b0642cd55b88190bce6201bae
new file mode 100644
index 0000000..990de0a
Binary files /dev/null and b/fuzzers/corpora/packfile/a9c697f383f59a3b0642cd55b88190bce6201bae differ
diff --git a/fuzzers/corpora/packfile/ab064cd6847c0fa546bbec4241eb9b095e0e73da b/fuzzers/corpora/packfile/ab064cd6847c0fa546bbec4241eb9b095e0e73da
new file mode 100644
index 0000000..b95307b
Binary files /dev/null and b/fuzzers/corpora/packfile/ab064cd6847c0fa546bbec4241eb9b095e0e73da differ
diff --git a/fuzzers/corpora/packfile/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6 b/fuzzers/corpora/packfile/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6
new file mode 100644
index 0000000..02f5e79
Binary files /dev/null and b/fuzzers/corpora/packfile/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6 differ
diff --git a/fuzzers/corpora/packfile/abe729b06750880778312618dcebb43257ec03e0 b/fuzzers/corpora/packfile/abe729b06750880778312618dcebb43257ec03e0
new file mode 100644
index 0000000..fc1860b
Binary files /dev/null and b/fuzzers/corpora/packfile/abe729b06750880778312618dcebb43257ec03e0 differ
diff --git a/fuzzers/corpora/packfile/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716 b/fuzzers/corpora/packfile/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716
new file mode 100644
index 0000000..5b9fb92
Binary files /dev/null and b/fuzzers/corpora/packfile/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716 differ
diff --git a/fuzzers/corpora/packfile/ac47b6d3f0e479df3292131535f8e0d99c288de9 b/fuzzers/corpora/packfile/ac47b6d3f0e479df3292131535f8e0d99c288de9
new file mode 100644
index 0000000..def06ef
Binary files /dev/null and b/fuzzers/corpora/packfile/ac47b6d3f0e479df3292131535f8e0d99c288de9 differ
diff --git a/fuzzers/corpora/packfile/ac9231da4082430afe8f4d40127814c613648d8e b/fuzzers/corpora/packfile/ac9231da4082430afe8f4d40127814c613648d8e
new file mode 100644
index 0000000..501a6bb
--- /dev/null
+++ b/fuzzers/corpora/packfile/ac9231da4082430afe8f4d40127814c613648d8e
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/ace9ffcaa273c01c0eb60381321e47edf4842332 b/fuzzers/corpora/packfile/ace9ffcaa273c01c0eb60381321e47edf4842332
new file mode 100644
index 0000000..783b97f
Binary files /dev/null and b/fuzzers/corpora/packfile/ace9ffcaa273c01c0eb60381321e47edf4842332 differ
diff --git a/fuzzers/corpora/packfile/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a b/fuzzers/corpora/packfile/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a
new file mode 100644
index 0000000..d6e99fc
Binary files /dev/null and b/fuzzers/corpora/packfile/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a differ
diff --git a/fuzzers/corpora/packfile/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe b/fuzzers/corpora/packfile/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe
new file mode 100644
index 0000000..09e47fd
Binary files /dev/null and b/fuzzers/corpora/packfile/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe differ
diff --git a/fuzzers/corpora/packfile/aeeacf0499ace69549fe2c76757d4948ba65a10b b/fuzzers/corpora/packfile/aeeacf0499ace69549fe2c76757d4948ba65a10b
new file mode 100644
index 0000000..4832b6e
Binary files /dev/null and b/fuzzers/corpora/packfile/aeeacf0499ace69549fe2c76757d4948ba65a10b differ
diff --git a/fuzzers/corpora/packfile/af6614c37604ee5d3f7b00cddca761a8776283b5 b/fuzzers/corpora/packfile/af6614c37604ee5d3f7b00cddca761a8776283b5
new file mode 100644
index 0000000..f41a799
Binary files /dev/null and b/fuzzers/corpora/packfile/af6614c37604ee5d3f7b00cddca761a8776283b5 differ
diff --git a/fuzzers/corpora/packfile/afd44f8c385a922c8caacc1ea5688d324bad5b39 b/fuzzers/corpora/packfile/afd44f8c385a922c8caacc1ea5688d324bad5b39
new file mode 100644
index 0000000..eec2110
Binary files /dev/null and b/fuzzers/corpora/packfile/afd44f8c385a922c8caacc1ea5688d324bad5b39 differ
diff --git a/fuzzers/corpora/packfile/aff024fe4ab0fece4091de044c58c9ae4233383a b/fuzzers/corpora/packfile/aff024fe4ab0fece4091de044c58c9ae4233383a
new file mode 100644
index 0000000..6bf0c97
--- /dev/null
+++ b/fuzzers/corpora/packfile/aff024fe4ab0fece4091de044c58c9ae4233383a
@@ -0,0 +1 @@
+w
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/b1f86f05d4928c8393fe0f138c0714df3978f0bb b/fuzzers/corpora/packfile/b1f86f05d4928c8393fe0f138c0714df3978f0bb
new file mode 100644
index 0000000..a36092c
Binary files /dev/null and b/fuzzers/corpora/packfile/b1f86f05d4928c8393fe0f138c0714df3978f0bb differ
diff --git a/fuzzers/corpora/packfile/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813 b/fuzzers/corpora/packfile/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813
new file mode 100644
index 0000000..f763b0d
Binary files /dev/null and b/fuzzers/corpora/packfile/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813 differ
diff --git a/fuzzers/corpora/packfile/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d b/fuzzers/corpora/packfile/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d
new file mode 100644
index 0000000..9e7d3e0
Binary files /dev/null and b/fuzzers/corpora/packfile/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d differ
diff --git a/fuzzers/corpora/packfile/b54664965911c6fe91e18cd01b68a75c8183b530 b/fuzzers/corpora/packfile/b54664965911c6fe91e18cd01b68a75c8183b530
new file mode 100644
index 0000000..39e8d66
--- /dev/null
+++ b/fuzzers/corpora/packfile/b54664965911c6fe91e18cd01b68a75c8183b530
@@ -0,0 +1 @@
+ý
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/b68542373c05c0ed25231d09955b2c699d37c45b b/fuzzers/corpora/packfile/b68542373c05c0ed25231d09955b2c699d37c45b
new file mode 100644
index 0000000..050ac90
--- /dev/null
+++ b/fuzzers/corpora/packfile/b68542373c05c0ed25231d09955b2c699d37c45b
@@ -0,0 +1 @@
+þ
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/b706e78cf7110a78dfccce991cd4ce22c6fd898a b/fuzzers/corpora/packfile/b706e78cf7110a78dfccce991cd4ce22c6fd898a
new file mode 100644
index 0000000..e905006
Binary files /dev/null and b/fuzzers/corpora/packfile/b706e78cf7110a78dfccce991cd4ce22c6fd898a differ
diff --git a/fuzzers/corpora/packfile/b8d3910a75ad8a7058f9c3f202f8eb27419137d7 b/fuzzers/corpora/packfile/b8d3910a75ad8a7058f9c3f202f8eb27419137d7
new file mode 100644
index 0000000..0a0adc4
Binary files /dev/null and b/fuzzers/corpora/packfile/b8d3910a75ad8a7058f9c3f202f8eb27419137d7 differ
diff --git a/fuzzers/corpora/packfile/b93abe6094fb4ebbfa7414fbceb7199ce766075b b/fuzzers/corpora/packfile/b93abe6094fb4ebbfa7414fbceb7199ce766075b
new file mode 100644
index 0000000..fb7b651
Binary files /dev/null and b/fuzzers/corpora/packfile/b93abe6094fb4ebbfa7414fbceb7199ce766075b differ
diff --git a/fuzzers/corpora/packfile/b9a64cc0694f3ac4a3c530c721bbf69026192187 b/fuzzers/corpora/packfile/b9a64cc0694f3ac4a3c530c721bbf69026192187
new file mode 100644
index 0000000..c775b6f
Binary files /dev/null and b/fuzzers/corpora/packfile/b9a64cc0694f3ac4a3c530c721bbf69026192187 differ
diff --git a/fuzzers/corpora/packfile/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1 b/fuzzers/corpora/packfile/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1
new file mode 100644
index 0000000..54e0431
Binary files /dev/null and b/fuzzers/corpora/packfile/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1 differ
diff --git a/fuzzers/corpora/packfile/ba390745a04c5394601f7aa73fe795097b814d1a b/fuzzers/corpora/packfile/ba390745a04c5394601f7aa73fe795097b814d1a
new file mode 100644
index 0000000..1738d2d
Binary files /dev/null and b/fuzzers/corpora/packfile/ba390745a04c5394601f7aa73fe795097b814d1a differ
diff --git a/fuzzers/corpora/packfile/bb7d065b776833337d3e1a3071de4d5d2759d78b b/fuzzers/corpora/packfile/bb7d065b776833337d3e1a3071de4d5d2759d78b
new file mode 100644
index 0000000..2882b18
--- /dev/null
+++ b/fuzzers/corpora/packfile/bb7d065b776833337d3e1a3071de4d5d2759d78b
@@ -0,0 +1 @@
+“
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a b/fuzzers/corpora/packfile/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a
new file mode 100644
index 0000000..7450e26
Binary files /dev/null and b/fuzzers/corpora/packfile/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a differ
diff --git a/fuzzers/corpora/packfile/bd9722d91e0615cbdae3cee3476ec6181fbad98d b/fuzzers/corpora/packfile/bd9722d91e0615cbdae3cee3476ec6181fbad98d
new file mode 100644
index 0000000..a8f95b6
Binary files /dev/null and b/fuzzers/corpora/packfile/bd9722d91e0615cbdae3cee3476ec6181fbad98d differ
diff --git a/fuzzers/corpora/packfile/bf8b4530d8d246dd74ac53a13471bba17941dff7 b/fuzzers/corpora/packfile/bf8b4530d8d246dd74ac53a13471bba17941dff7
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/fuzzers/corpora/packfile/bf8b4530d8d246dd74ac53a13471bba17941dff7
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/bffc4698ad4aaddd977fe857da20858aa6654263 b/fuzzers/corpora/packfile/bffc4698ad4aaddd977fe857da20858aa6654263
new file mode 100644
index 0000000..b7cde14
Binary files /dev/null and b/fuzzers/corpora/packfile/bffc4698ad4aaddd977fe857da20858aa6654263 differ
diff --git a/fuzzers/corpora/packfile/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1 b/fuzzers/corpora/packfile/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1
new file mode 100644
index 0000000..ab56763
Binary files /dev/null and b/fuzzers/corpora/packfile/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1 differ
diff --git a/fuzzers/corpora/packfile/c151b760696d665265187501c51f38cd84503634 b/fuzzers/corpora/packfile/c151b760696d665265187501c51f38cd84503634
new file mode 100644
index 0000000..4be2460
--- /dev/null
+++ b/fuzzers/corpora/packfile/c151b760696d665265187501c51f38cd84503634
@@ -0,0 +1 @@
+Ô
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/c16f90096603258174790bc85f076413dad0e228 b/fuzzers/corpora/packfile/c16f90096603258174790bc85f076413dad0e228
new file mode 100644
index 0000000..d736f27
Binary files /dev/null and b/fuzzers/corpora/packfile/c16f90096603258174790bc85f076413dad0e228 differ
diff --git a/fuzzers/corpora/packfile/c20fc8fb8f1d44050c281089191b8eac2dc9444c b/fuzzers/corpora/packfile/c20fc8fb8f1d44050c281089191b8eac2dc9444c
new file mode 100644
index 0000000..221c482
Binary files /dev/null and b/fuzzers/corpora/packfile/c20fc8fb8f1d44050c281089191b8eac2dc9444c differ
diff --git a/fuzzers/corpora/packfile/c2143b1a0db17957bec1b41bb2e5f75aa135981e b/fuzzers/corpora/packfile/c2143b1a0db17957bec1b41bb2e5f75aa135981e
new file mode 100644
index 0000000..52e60b4
--- /dev/null
+++ b/fuzzers/corpora/packfile/c2143b1a0db17957bec1b41bb2e5f75aa135981e
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/c22c3fba53bb2c5579b47852fa9ec54a88c03472 b/fuzzers/corpora/packfile/c22c3fba53bb2c5579b47852fa9ec54a88c03472
new file mode 100644
index 0000000..45df778
Binary files /dev/null and b/fuzzers/corpora/packfile/c22c3fba53bb2c5579b47852fa9ec54a88c03472 differ
diff --git a/fuzzers/corpora/packfile/c297564cff1bb4f7933221050cfcffa36c59f691 b/fuzzers/corpora/packfile/c297564cff1bb4f7933221050cfcffa36c59f691
new file mode 100644
index 0000000..751e6bb
Binary files /dev/null and b/fuzzers/corpora/packfile/c297564cff1bb4f7933221050cfcffa36c59f691 differ
diff --git a/fuzzers/corpora/packfile/c2c4da76233acd3efe08eaebb7ae8dc9b3036527 b/fuzzers/corpora/packfile/c2c4da76233acd3efe08eaebb7ae8dc9b3036527
new file mode 100644
index 0000000..5533ee3
Binary files /dev/null and b/fuzzers/corpora/packfile/c2c4da76233acd3efe08eaebb7ae8dc9b3036527 differ
diff --git a/fuzzers/corpora/packfile/c3d47118536d19a8d1a601978510cc24344aa8df b/fuzzers/corpora/packfile/c3d47118536d19a8d1a601978510cc24344aa8df
new file mode 100644
index 0000000..dac4251
Binary files /dev/null and b/fuzzers/corpora/packfile/c3d47118536d19a8d1a601978510cc24344aa8df differ
diff --git a/fuzzers/corpora/packfile/c4cbb032db94c57061003a85d30bdf4117979b1e b/fuzzers/corpora/packfile/c4cbb032db94c57061003a85d30bdf4117979b1e
new file mode 100644
index 0000000..e46252e
Binary files /dev/null and b/fuzzers/corpora/packfile/c4cbb032db94c57061003a85d30bdf4117979b1e differ
diff --git a/fuzzers/corpora/packfile/c7090127a03c0e7230c11a649e4f98fcb4ca2b75 b/fuzzers/corpora/packfile/c7090127a03c0e7230c11a649e4f98fcb4ca2b75
new file mode 100644
index 0000000..7009494
Binary files /dev/null and b/fuzzers/corpora/packfile/c7090127a03c0e7230c11a649e4f98fcb4ca2b75 differ
diff --git a/fuzzers/corpora/packfile/c8b839665bd381ff7d006b1b08c35f94f1818556 b/fuzzers/corpora/packfile/c8b839665bd381ff7d006b1b08c35f94f1818556
new file mode 100644
index 0000000..234b26a
Binary files /dev/null and b/fuzzers/corpora/packfile/c8b839665bd381ff7d006b1b08c35f94f1818556 differ
diff --git a/fuzzers/corpora/packfile/ca8c7c16d1d6b60e951dcfb558cc97e14231c750 b/fuzzers/corpora/packfile/ca8c7c16d1d6b60e951dcfb558cc97e14231c750
new file mode 100644
index 0000000..e0b7aec
Binary files /dev/null and b/fuzzers/corpora/packfile/ca8c7c16d1d6b60e951dcfb558cc97e14231c750 differ
diff --git a/fuzzers/corpora/packfile/cb46c744c83541a0900e1e61780c18d43031a08b b/fuzzers/corpora/packfile/cb46c744c83541a0900e1e61780c18d43031a08b
new file mode 100644
index 0000000..825026b
--- /dev/null
+++ b/fuzzers/corpora/packfile/cb46c744c83541a0900e1e61780c18d43031a08b
@@ -0,0 +1 @@
+Á
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d b/fuzzers/corpora/packfile/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d
new file mode 100644
index 0000000..7e60ba4
Binary files /dev/null and b/fuzzers/corpora/packfile/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d differ
diff --git a/fuzzers/corpora/packfile/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db b/fuzzers/corpora/packfile/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db
new file mode 100644
index 0000000..7bd0640
Binary files /dev/null and b/fuzzers/corpora/packfile/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db differ
diff --git a/fuzzers/corpora/packfile/cf74f755c004ca634818f8ba44c99fffbaa950a1 b/fuzzers/corpora/packfile/cf74f755c004ca634818f8ba44c99fffbaa950a1
new file mode 100644
index 0000000..6c8a3e2
Binary files /dev/null and b/fuzzers/corpora/packfile/cf74f755c004ca634818f8ba44c99fffbaa950a1 differ
diff --git a/fuzzers/corpora/packfile/d07e4bc786c88b8d2304f84c7db2098666f822c0 b/fuzzers/corpora/packfile/d07e4bc786c88b8d2304f84c7db2098666f822c0
new file mode 100644
index 0000000..5639b6d
--- /dev/null
+++ b/fuzzers/corpora/packfile/d07e4bc786c88b8d2304f84c7db2098666f822c0
@@ -0,0 +1 @@
+û
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/d17ab0db9edea68e8f9f51f471decae84b192a1a b/fuzzers/corpora/packfile/d17ab0db9edea68e8f9f51f471decae84b192a1a
new file mode 100644
index 0000000..e3ec67e
Binary files /dev/null and b/fuzzers/corpora/packfile/d17ab0db9edea68e8f9f51f471decae84b192a1a differ
diff --git a/fuzzers/corpora/packfile/d1854cae891ec7b29161ccaf79a24b00c274bdaa b/fuzzers/corpora/packfile/d1854cae891ec7b29161ccaf79a24b00c274bdaa
new file mode 100644
index 0000000..ef073cc
--- /dev/null
+++ b/fuzzers/corpora/packfile/d1854cae891ec7b29161ccaf79a24b00c274bdaa
@@ -0,0 +1 @@
+n
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/d22aac18f8b435fc34566fe0d3f42464aec9458c b/fuzzers/corpora/packfile/d22aac18f8b435fc34566fe0d3f42464aec9458c
new file mode 100644
index 0000000..766a326
Binary files /dev/null and b/fuzzers/corpora/packfile/d22aac18f8b435fc34566fe0d3f42464aec9458c differ
diff --git a/fuzzers/corpora/packfile/d446a50788c32053358495358696f9d595358bcf b/fuzzers/corpora/packfile/d446a50788c32053358495358696f9d595358bcf
new file mode 100644
index 0000000..1015f8e
Binary files /dev/null and b/fuzzers/corpora/packfile/d446a50788c32053358495358696f9d595358bcf differ
diff --git a/fuzzers/corpora/packfile/d461cbcff85c87b0068f0e9c15d2056197cdfa52 b/fuzzers/corpora/packfile/d461cbcff85c87b0068f0e9c15d2056197cdfa52
new file mode 100644
index 0000000..e475e61
Binary files /dev/null and b/fuzzers/corpora/packfile/d461cbcff85c87b0068f0e9c15d2056197cdfa52 differ
diff --git a/fuzzers/corpora/packfile/d54709a1b46002c81f57da533379e57f00afe942 b/fuzzers/corpora/packfile/d54709a1b46002c81f57da533379e57f00afe942
new file mode 100644
index 0000000..010a294
Binary files /dev/null and b/fuzzers/corpora/packfile/d54709a1b46002c81f57da533379e57f00afe942 differ
diff --git a/fuzzers/corpora/packfile/d567007f84b83e82df7069838bf8b6c5826b18a8 b/fuzzers/corpora/packfile/d567007f84b83e82df7069838bf8b6c5826b18a8
new file mode 100644
index 0000000..feb21a2
Binary files /dev/null and b/fuzzers/corpora/packfile/d567007f84b83e82df7069838bf8b6c5826b18a8 differ
diff --git a/fuzzers/corpora/packfile/d5e60b9f94126a9ec865fda83feb6835d294b76b b/fuzzers/corpora/packfile/d5e60b9f94126a9ec865fda83feb6835d294b76b
new file mode 100644
index 0000000..63dd395
Binary files /dev/null and b/fuzzers/corpora/packfile/d5e60b9f94126a9ec865fda83feb6835d294b76b differ
diff --git a/fuzzers/corpora/packfile/d81092a4f3607ddbba85862facf2285459696078 b/fuzzers/corpora/packfile/d81092a4f3607ddbba85862facf2285459696078
new file mode 100644
index 0000000..0074e17
Binary files /dev/null and b/fuzzers/corpora/packfile/d81092a4f3607ddbba85862facf2285459696078 differ
diff --git a/fuzzers/corpora/packfile/d898eb860ceac044950605db88429e029ea278ef b/fuzzers/corpora/packfile/d898eb860ceac044950605db88429e029ea278ef
new file mode 100644
index 0000000..a74a67e
Binary files /dev/null and b/fuzzers/corpora/packfile/d898eb860ceac044950605db88429e029ea278ef differ
diff --git a/fuzzers/corpora/packfile/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec b/fuzzers/corpora/packfile/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec
new file mode 100644
index 0000000..9d3cd68
--- /dev/null
+++ b/fuzzers/corpora/packfile/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec
@@ -0,0 +1 @@
+®
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9 b/fuzzers/corpora/packfile/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9
new file mode 100644
index 0000000..1f4966d
Binary files /dev/null and b/fuzzers/corpora/packfile/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9 differ
diff --git a/fuzzers/corpora/packfile/db1bb4b7348d387623dcaf0a743d0b11fa18409f b/fuzzers/corpora/packfile/db1bb4b7348d387623dcaf0a743d0b11fa18409f
new file mode 100644
index 0000000..bed137b
Binary files /dev/null and b/fuzzers/corpora/packfile/db1bb4b7348d387623dcaf0a743d0b11fa18409f differ
diff --git a/fuzzers/corpora/packfile/db291360a195c79ae504a3dfb2cd0f71cbc11902 b/fuzzers/corpora/packfile/db291360a195c79ae504a3dfb2cd0f71cbc11902
new file mode 100644
index 0000000..aaebf73
Binary files /dev/null and b/fuzzers/corpora/packfile/db291360a195c79ae504a3dfb2cd0f71cbc11902 differ
diff --git a/fuzzers/corpora/packfile/dc98359b3ef2ced9c3d07636c89d475a564c39d9 b/fuzzers/corpora/packfile/dc98359b3ef2ced9c3d07636c89d475a564c39d9
new file mode 100644
index 0000000..44b5bbe
Binary files /dev/null and b/fuzzers/corpora/packfile/dc98359b3ef2ced9c3d07636c89d475a564c39d9 differ
diff --git a/fuzzers/corpora/packfile/dccc5642917b20b4dd64d3e44b71d08da30445e9 b/fuzzers/corpora/packfile/dccc5642917b20b4dd64d3e44b71d08da30445e9
new file mode 100644
index 0000000..d6430c2
Binary files /dev/null and b/fuzzers/corpora/packfile/dccc5642917b20b4dd64d3e44b71d08da30445e9 differ
diff --git a/fuzzers/corpora/packfile/dd79c8cfb8beeacd0460429944b4ecbe95a31561 b/fuzzers/corpora/packfile/dd79c8cfb8beeacd0460429944b4ecbe95a31561
new file mode 100644
index 0000000..8a908ec
--- /dev/null
+++ b/fuzzers/corpora/packfile/dd79c8cfb8beeacd0460429944b4ecbe95a31561
@@ -0,0 +1 @@
+â
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/de9550264c4e2dbef14e1281ff3693f2d19dc1c9 b/fuzzers/corpora/packfile/de9550264c4e2dbef14e1281ff3693f2d19dc1c9
new file mode 100644
index 0000000..2c096ff
Binary files /dev/null and b/fuzzers/corpora/packfile/de9550264c4e2dbef14e1281ff3693f2d19dc1c9 differ
diff --git a/fuzzers/corpora/packfile/df8b4d163e9ed75634eb56467343bde73b13263e b/fuzzers/corpora/packfile/df8b4d163e9ed75634eb56467343bde73b13263e
new file mode 100644
index 0000000..5c3529e
Binary files /dev/null and b/fuzzers/corpora/packfile/df8b4d163e9ed75634eb56467343bde73b13263e differ
diff --git a/fuzzers/corpora/packfile/e0184adedf913b076626646d3f52c3b49c39ad6d b/fuzzers/corpora/packfile/e0184adedf913b076626646d3f52c3b49c39ad6d
new file mode 100644
index 0000000..9fb75b8
--- /dev/null
+++ b/fuzzers/corpora/packfile/e0184adedf913b076626646d3f52c3b49c39ad6d
@@ -0,0 +1 @@
+E
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/e0905bac594c818b9cfa909269114977c4d6d1b2 b/fuzzers/corpora/packfile/e0905bac594c818b9cfa909269114977c4d6d1b2
new file mode 100644
index 0000000..40f2025
Binary files /dev/null and b/fuzzers/corpora/packfile/e0905bac594c818b9cfa909269114977c4d6d1b2 differ
diff --git a/fuzzers/corpora/packfile/e0bcb16cd6b42128201e1b6454323175a7e412f0 b/fuzzers/corpora/packfile/e0bcb16cd6b42128201e1b6454323175a7e412f0
new file mode 100644
index 0000000..7386ac1
Binary files /dev/null and b/fuzzers/corpora/packfile/e0bcb16cd6b42128201e1b6454323175a7e412f0 differ
diff --git a/fuzzers/corpora/packfile/e1ac9563c33f4f31b3e147b9d2fef80fca550948 b/fuzzers/corpora/packfile/e1ac9563c33f4f31b3e147b9d2fef80fca550948
new file mode 100644
index 0000000..c87f08b
Binary files /dev/null and b/fuzzers/corpora/packfile/e1ac9563c33f4f31b3e147b9d2fef80fca550948 differ
diff --git a/fuzzers/corpora/packfile/e230c91352f1b07f6f34da803d07e75c06897b30 b/fuzzers/corpora/packfile/e230c91352f1b07f6f34da803d07e75c06897b30
new file mode 100644
index 0000000..ff1376f
Binary files /dev/null and b/fuzzers/corpora/packfile/e230c91352f1b07f6f34da803d07e75c06897b30 differ
diff --git a/fuzzers/corpora/packfile/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034 b/fuzzers/corpora/packfile/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034
new file mode 100644
index 0000000..e6bdb3a
--- /dev/null
+++ b/fuzzers/corpora/packfile/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034
@@ -0,0 +1 @@
+!
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6 b/fuzzers/corpora/packfile/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6
new file mode 100644
index 0000000..3afd5ca
Binary files /dev/null and b/fuzzers/corpora/packfile/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6 differ
diff --git a/fuzzers/corpora/packfile/e2ba004118345660b379df5147bfa7a39d884dbc b/fuzzers/corpora/packfile/e2ba004118345660b379df5147bfa7a39d884dbc
new file mode 100644
index 0000000..cb1ff94
Binary files /dev/null and b/fuzzers/corpora/packfile/e2ba004118345660b379df5147bfa7a39d884dbc differ
diff --git a/fuzzers/corpora/packfile/e45aaf139d726366a18dce9e4854ee6c82901677 b/fuzzers/corpora/packfile/e45aaf139d726366a18dce9e4854ee6c82901677
new file mode 100644
index 0000000..0ba1db8
Binary files /dev/null and b/fuzzers/corpora/packfile/e45aaf139d726366a18dce9e4854ee6c82901677 differ
diff --git a/fuzzers/corpora/packfile/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e b/fuzzers/corpora/packfile/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e
new file mode 100644
index 0000000..786d94b
Binary files /dev/null and b/fuzzers/corpora/packfile/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e differ
diff --git a/fuzzers/corpora/packfile/e6818b96c50bb749911248959af81a9c412a0223 b/fuzzers/corpora/packfile/e6818b96c50bb749911248959af81a9c412a0223
new file mode 100644
index 0000000..b8ac98e
Binary files /dev/null and b/fuzzers/corpora/packfile/e6818b96c50bb749911248959af81a9c412a0223 differ
diff --git a/fuzzers/corpora/packfile/e69f20e9f683920d3fb4329abd951e878b1f9372 b/fuzzers/corpora/packfile/e69f20e9f683920d3fb4329abd951e878b1f9372
new file mode 100644
index 0000000..c137216
--- /dev/null
+++ b/fuzzers/corpora/packfile/e69f20e9f683920d3fb4329abd951e878b1f9372
@@ -0,0 +1 @@
+F
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/e6eb439fef7d5461bc3552aa7c064d24e44c5f32 b/fuzzers/corpora/packfile/e6eb439fef7d5461bc3552aa7c064d24e44c5f32
new file mode 100644
index 0000000..9ab1a4d
Binary files /dev/null and b/fuzzers/corpora/packfile/e6eb439fef7d5461bc3552aa7c064d24e44c5f32 differ
diff --git a/fuzzers/corpora/packfile/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b b/fuzzers/corpora/packfile/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b
new file mode 100644
index 0000000..bd8ffbe
Binary files /dev/null and b/fuzzers/corpora/packfile/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b differ
diff --git a/fuzzers/corpora/packfile/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f b/fuzzers/corpora/packfile/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f
new file mode 100644
index 0000000..aaba356
Binary files /dev/null and b/fuzzers/corpora/packfile/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f differ
diff --git a/fuzzers/corpora/packfile/eb0814ae767e5f28b87c998b0f44dcf80814db1b b/fuzzers/corpora/packfile/eb0814ae767e5f28b87c998b0f44dcf80814db1b
new file mode 100644
index 0000000..f834b0b
Binary files /dev/null and b/fuzzers/corpora/packfile/eb0814ae767e5f28b87c998b0f44dcf80814db1b differ
diff --git a/fuzzers/corpora/packfile/ebbd9763912dd557d08abd1373c867a4b56e6a41 b/fuzzers/corpora/packfile/ebbd9763912dd557d08abd1373c867a4b56e6a41
new file mode 100644
index 0000000..9a5a0ed
Binary files /dev/null and b/fuzzers/corpora/packfile/ebbd9763912dd557d08abd1373c867a4b56e6a41 differ
diff --git a/fuzzers/corpora/packfile/ebcdcb7effcc3f06e0d503638ac621de877fc554 b/fuzzers/corpora/packfile/ebcdcb7effcc3f06e0d503638ac621de877fc554
new file mode 100644
index 0000000..ef60809
--- /dev/null
+++ b/fuzzers/corpora/packfile/ebcdcb7effcc3f06e0d503638ac621de877fc554
@@ -0,0 +1 @@
+Ä
\ No newline at end of file
diff --git a/fuzzers/corpora/packfile/eddccafb2716adafb9ad48203f0621bb00ebc73f b/fuzzers/corpora/packfile/eddccafb2716adafb9ad48203f0621bb00ebc73f
new file mode 100644
index 0000000..9b1c9fb
Binary files /dev/null and b/fuzzers/corpora/packfile/eddccafb2716adafb9ad48203f0621bb00ebc73f differ
diff --git a/fuzzers/corpora/packfile/edfbf20c83d3cec45470105581f7dc8b7e0889da b/fuzzers/corpora/packfile/edfbf20c83d3cec45470105581f7dc8b7e0889da
new file mode 100644
index 0000000..bf9c390
Binary files /dev/null and b/fuzzers/corpora/packfile/edfbf20c83d3cec45470105581f7dc8b7e0889da differ
diff --git a/fuzzers/corpora/packfile/f03218467b1c74e465cebb3b8092e21a5122f31d b/fuzzers/corpora/packfile/f03218467b1c74e465cebb3b8092e21a5122f31d
new file mode 100644
index 0000000..d7539e4
Binary files /dev/null and b/fuzzers/corpora/packfile/f03218467b1c74e465cebb3b8092e21a5122f31d differ
diff --git a/fuzzers/corpora/packfile/f28600befd899a94bed8e62853e90655d614f439 b/fuzzers/corpora/packfile/f28600befd899a94bed8e62853e90655d614f439
new file mode 100644
index 0000000..5087f32
Binary files /dev/null and b/fuzzers/corpora/packfile/f28600befd899a94bed8e62853e90655d614f439 differ
diff --git a/fuzzers/corpora/packfile/f3b15185b7a9a10716752d58434fe656d839092e b/fuzzers/corpora/packfile/f3b15185b7a9a10716752d58434fe656d839092e
new file mode 100644
index 0000000..8575244
Binary files /dev/null and b/fuzzers/corpora/packfile/f3b15185b7a9a10716752d58434fe656d839092e differ
diff --git a/fuzzers/corpora/packfile/f436ed7933482610e08e18b40e9eec102b63b7d4 b/fuzzers/corpora/packfile/f436ed7933482610e08e18b40e9eec102b63b7d4
new file mode 100644
index 0000000..4a7dcff
Binary files /dev/null and b/fuzzers/corpora/packfile/f436ed7933482610e08e18b40e9eec102b63b7d4 differ
diff --git a/fuzzers/corpora/packfile/f55ea5b7c1cf5400aae56d7faf65a42320d0323a b/fuzzers/corpora/packfile/f55ea5b7c1cf5400aae56d7faf65a42320d0323a
new file mode 100644
index 0000000..c5e3137
Binary files /dev/null and b/fuzzers/corpora/packfile/f55ea5b7c1cf5400aae56d7faf65a42320d0323a differ
diff --git a/fuzzers/corpora/packfile/f5eeab2d009aa4984378df6bfdd89366b7ecbb32 b/fuzzers/corpora/packfile/f5eeab2d009aa4984378df6bfdd89366b7ecbb32
new file mode 100644
index 0000000..15828cf
Binary files /dev/null and b/fuzzers/corpora/packfile/f5eeab2d009aa4984378df6bfdd89366b7ecbb32 differ
diff --git a/fuzzers/corpora/packfile/f6250c8b3cc0510e0f8f621100be83f018e2d234 b/fuzzers/corpora/packfile/f6250c8b3cc0510e0f8f621100be83f018e2d234
new file mode 100644
index 0000000..ab03a5e
Binary files /dev/null and b/fuzzers/corpora/packfile/f6250c8b3cc0510e0f8f621100be83f018e2d234 differ
diff --git a/fuzzers/corpora/packfile/f7168410c7158ff7331698930937f9cdc54f4d8a b/fuzzers/corpora/packfile/f7168410c7158ff7331698930937f9cdc54f4d8a
new file mode 100644
index 0000000..e42053d
Binary files /dev/null and b/fuzzers/corpora/packfile/f7168410c7158ff7331698930937f9cdc54f4d8a differ
diff --git a/fuzzers/corpora/packfile/f91847640af285c1b8a6df27f5c50686ed0deb70 b/fuzzers/corpora/packfile/f91847640af285c1b8a6df27f5c50686ed0deb70
new file mode 100644
index 0000000..615255f
Binary files /dev/null and b/fuzzers/corpora/packfile/f91847640af285c1b8a6df27f5c50686ed0deb70 differ
diff --git a/fuzzers/corpora/packfile/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6 b/fuzzers/corpora/packfile/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6
new file mode 100644
index 0000000..860053e
Binary files /dev/null and b/fuzzers/corpora/packfile/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6 differ
diff --git a/fuzzers/corpora/packfile/fe3667be5fd2ffdd553ae04a534a2e9ce5445188 b/fuzzers/corpora/packfile/fe3667be5fd2ffdd553ae04a534a2e9ce5445188
new file mode 100644
index 0000000..d92e574
Binary files /dev/null and b/fuzzers/corpora/packfile/fe3667be5fd2ffdd553ae04a534a2e9ce5445188 differ
diff --git a/fuzzers/corpora/packfile/ff21cad92ddd105224408fa696e91080a8cf98fb b/fuzzers/corpora/packfile/ff21cad92ddd105224408fa696e91080a8cf98fb
new file mode 100644
index 0000000..c1cfc00
Binary files /dev/null and b/fuzzers/corpora/packfile/ff21cad92ddd105224408fa696e91080a8cf98fb differ
diff --git a/fuzzers/corpora/packfile/ff9804ac04790bd58cdd124526c00b920469b812 b/fuzzers/corpora/packfile/ff9804ac04790bd58cdd124526c00b920469b812
new file mode 100644
index 0000000..4280c82
Binary files /dev/null and b/fuzzers/corpora/packfile/ff9804ac04790bd58cdd124526c00b920469b812 differ
diff --git a/fuzzers/corpora/packfile/ffc54ca808e7666f250133ad0ae2185ad688a826 b/fuzzers/corpora/packfile/ffc54ca808e7666f250133ad0ae2185ad688a826
new file mode 100644
index 0000000..4489a65
--- /dev/null
+++ b/fuzzers/corpora/packfile/ffc54ca808e7666f250133ad0ae2185ad688a826
@@ -0,0 +1 @@
+²
\ No newline at end of file
diff --git a/fuzzers/download_refs_fuzzer.c b/fuzzers/download_refs_fuzzer.c
new file mode 100644
index 0000000..3807c09
--- /dev/null
+++ b/fuzzers/download_refs_fuzzer.c
@@ -0,0 +1,211 @@
+/*
+ * libgit2 raw packfile fuzz target.
+ *
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include "git2.h"
+#include "git2/sys/transport.h"
+
+#define UNUSED(x) (void)(x)
+
+struct fuzzer_buffer {
+ const unsigned char *data;
+ size_t size;
+};
+
+struct fuzzer_stream {
+ git_smart_subtransport_stream base;
+ const unsigned char *readp;
+ const unsigned char *endp;
+};
+
+struct fuzzer_subtransport {
+ git_smart_subtransport base;
+ git_transport *owner;
+ struct fuzzer_buffer data;
+};
+
+static git_repository *repo;
+
+static int fuzzer_stream_read(git_smart_subtransport_stream *stream,
+ char *buffer,
+ size_t buf_size,
+ size_t *bytes_read)
+{
+ struct fuzzer_stream *fs = (struct fuzzer_stream *) stream;
+ size_t avail = fs->endp - fs->readp;
+
+ *bytes_read = (buf_size > avail) ? avail : buf_size;
+ memcpy(buffer, fs->readp, *bytes_read);
+ fs->readp += *bytes_read;
+
+ return 0;
+}
+
+static int fuzzer_stream_write(git_smart_subtransport_stream *stream,
+ const char *buffer, size_t len)
+{
+ UNUSED(stream);
+ UNUSED(buffer);
+ UNUSED(len);
+ return 0;
+}
+
+static void fuzzer_stream_free(git_smart_subtransport_stream *stream)
+{
+ free(stream);
+}
+
+static int fuzzer_stream_new(
+ struct fuzzer_stream **out,
+ const struct fuzzer_buffer *data)
+{
+ struct fuzzer_stream *stream = malloc(sizeof(*stream));
+ if (!stream)
+ return -1;
+
+ stream->readp = data->data;
+ stream->endp = data->data + data->size;
+ stream->base.read = fuzzer_stream_read;
+ stream->base.write = fuzzer_stream_write;
+ stream->base.free = fuzzer_stream_free;
+
+ *out = stream;
+
+ return 0;
+}
+
+static int fuzzer_subtransport_action(
+ git_smart_subtransport_stream **out,
+ git_smart_subtransport *transport,
+ const char *url,
+ git_smart_service_t action)
+{
+ struct fuzzer_subtransport *ft = (struct fuzzer_subtransport *) transport;
+
+ UNUSED(url);
+ UNUSED(action);
+
+ return fuzzer_stream_new((struct fuzzer_stream **) out, &ft->data);
+}
+
+static int fuzzer_subtransport_close(git_smart_subtransport *transport)
+{
+ UNUSED(transport);
+ return 0;
+}
+
+static void fuzzer_subtransport_free(git_smart_subtransport *transport)
+{
+ free(transport);
+}
+
+static int fuzzer_subtransport_new(
+ struct fuzzer_subtransport **out,
+ git_transport *owner,
+ const struct fuzzer_buffer *data)
+{
+ struct fuzzer_subtransport *sub = malloc(sizeof(*sub));
+ if (!sub)
+ return -1;
+
+ sub->owner = owner;
+ sub->data.data = data->data;
+ sub->data.size = data->size;
+ sub->base.action = fuzzer_subtransport_action;
+ sub->base.close = fuzzer_subtransport_close;
+ sub->base.free = fuzzer_subtransport_free;
+
+ *out = sub;
+
+ return 0;
+}
+
+int fuzzer_subtransport_cb(
+ git_smart_subtransport **out,
+ git_transport *owner,
+ void *payload)
+{
+ struct fuzzer_buffer *buf = (struct fuzzer_buffer *) payload;
+ struct fuzzer_subtransport *sub;
+
+ if (fuzzer_subtransport_new(&sub, owner, buf) < 0)
+ return -1;
+
+ *out = &sub->base;
+ return 0;
+}
+
+int fuzzer_transport_cb(git_transport **out, git_remote *owner, void *param)
+{
+ git_smart_subtransport_definition def = {
+ fuzzer_subtransport_cb,
+ 1,
+ param
+ };
+ return git_transport_smart(out, owner, &def);
+}
+
+void fuzzer_git_abort(const char *op)
+{
+ const git_error *err = giterr_last();
+ fprintf(stderr, "unexpected libgit error: %s: %s\n",
+ op, err ? err->message : "<none>");
+ abort();
+}
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ char tmp[] = "/tmp/git2.XXXXXX";
+
+ UNUSED(argc);
+ UNUSED(argv);
+
+ if (git_libgit2_init() < 0)
+ abort();
+
+ if (git_libgit2_opts(GIT_OPT_SET_PACK_MAX_OBJECTS, 10000000) < 0)
+ abort();
+
+ if (mkdtemp(tmp) != tmp)
+ abort();
+
+ if (git_repository_init(&repo, tmp, 1) < 0)
+ fuzzer_git_abort("git_repository_init");
+
+ return 0;
+}
+
+int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size)
+{
+ struct fuzzer_buffer buffer = { data, size };
+ git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
+ git_remote *remote;
+
+ if (git_remote_create_anonymous(&remote, repo, "fuzzer://remote-url") < 0)
+ fuzzer_git_abort("git_remote_create");
+
+ callbacks.transport = fuzzer_transport_cb;
+ callbacks.payload = &buffer;
+
+ if (git_remote_connect(remote, GIT_DIRECTION_FETCH,
+ &callbacks, NULL, NULL) < 0)
+ goto out;
+
+ git_remote_download(remote, NULL, NULL);
+
+ out:
+ git_remote_free(remote);
+
+ return 0;
+}
diff --git a/fuzzers/packfile_fuzzer.c b/fuzzers/packfile_fuzzer.c
new file mode 100644
index 0000000..a59d283
--- /dev/null
+++ b/fuzzers/packfile_fuzzer.c
@@ -0,0 +1,122 @@
+/*
+ * libgit2 packfile fuzzer target.
+ *
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <limits.h>
+#include <unistd.h>
+
+#include "git2.h"
+#include "git2/sys/mempack.h"
+
+#define UNUSED(x) (void)(x)
+
+static git_odb *odb = NULL;
+static git_odb_backend *mempack = NULL;
+
+/* Arbitrary object to seed the ODB. */
+static const unsigned char base_obj[] = { 07, 076 };
+static const unsigned int base_obj_len = 2;
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ UNUSED(argc);
+ UNUSED(argv);
+ if (git_libgit2_init() < 0) {
+ fprintf(stderr, "Failed to initialize libgit2\n");
+ abort();
+ }
+ if (git_libgit2_opts(GIT_OPT_SET_PACK_MAX_OBJECTS, 10000000) < 0) {
+ fprintf(stderr, "Failed to limit maximum pack object count\n");
+ abort();
+ }
+ if (git_odb_new(&odb) < 0) {
+ fprintf(stderr, "Failed to create the odb\n");
+ abort();
+ }
+ if (git_mempack_new(&mempack) < 0) {
+ fprintf(stderr, "Failed to create the mempack\n");
+ abort();
+ }
+ if (git_odb_add_backend(odb, mempack, 999) < 0) {
+ fprintf(stderr, "Failed to add the mempack\n");
+ abort();
+ }
+ return 0;
+}
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ git_indexer *indexer = NULL;
+ git_transfer_progress stats = {0, 0};
+ bool append_hash = false;
+ git_oid id;
+ char hash[GIT_OID_HEXSZ + 1] = {0};
+ char path[PATH_MAX];
+
+ if (size == 0)
+ return 0;
+
+ if (!odb || !mempack) {
+ fprintf(stderr, "Global state not initialized\n");
+ abort();
+ }
+ git_mempack_reset(mempack);
+
+ if (git_odb_write(&id, odb, base_obj, base_obj_len, GIT_OBJ_BLOB) < 0) {
+ fprintf(stderr, "Failed to add an object to the odb\n");
+ abort();
+ }
+
+ if (git_indexer_new(&indexer, ".", 0, odb, NULL, NULL) < 0) {
+ fprintf(stderr, "Failed to create the indexer: %s\n",
+ giterr_last()->message);
+ abort();
+ }
+
+ /*
+ * If the first byte in the stream has the high bit set, append the
+ * SHA1 hash so that the packfile is somewhat valid.
+ */
+ append_hash = *data & 0x80;
+ ++data;
+ --size;
+
+ if (git_indexer_append(indexer, data, size, &stats) < 0)
+ goto cleanup;
+ if (append_hash) {
+ git_oid oid;
+ if (git_odb_hash(&oid, data, size, GIT_OBJ_BLOB) < 0) {
+ fprintf(stderr, "Failed to compute the SHA1 hash\n");
+ abort();
+ }
+ if (git_indexer_append(indexer, &oid, sizeof(oid), &stats) < 0) {
+ goto cleanup;
+ }
+ }
+ if (git_indexer_commit(indexer, &stats) < 0)
+ goto cleanup;
+
+ /*
+ * We made it! We managed to produce a valid packfile.
+ * Let's clean it up.
+ */
+ git_oid_fmt(hash, git_indexer_hash(indexer));
+ printf("Generated packfile %s\n", hash);
+ snprintf(path, sizeof(path), "pack-%s.idx", hash);
+ unlink(path);
+ snprintf(path, sizeof(path), "pack-%s.pack", hash);
+ unlink(path);
+
+cleanup:
+ git_mempack_reset(mempack);
+ git_indexer_free(indexer);
+ return 0;
+}
diff --git a/fuzzers/standalone_driver.c b/fuzzers/standalone_driver.c
new file mode 100644
index 0000000..fd8453d
--- /dev/null
+++ b/fuzzers/standalone_driver.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include <assert.h>
+#include <dirent.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#include "fileops.h"
+#include "path.h"
+
+extern int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size);
+extern int LLVMFuzzerInitialize(int *argc, char ***argv);
+
+static int run_one_file(const char *filename)
+{
+ git_buf buf = GIT_BUF_INIT;
+ int error = 0;
+
+ if (git_futils_readbuffer(&buf, filename) < 0) {
+ fprintf(stderr, "Failed to read %s: %m\n", filename);
+ error = -1;
+ goto exit;
+ }
+
+ LLVMFuzzerTestOneInput((const unsigned char *)buf.ptr, buf.size);
+exit:
+ git_buf_dispose(&buf);
+ return error;
+}
+
+int main(int argc, char **argv)
+{
+ git_vector corpus_files = GIT_VECTOR_INIT;
+ char *filename = NULL;
+ unsigned i = 0;
+ int error = 0;
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s <corpus directory>\n", argv[0]);
+ error = -1;
+ goto exit;
+ }
+
+ fprintf(stderr, "Running %s against %s\n", argv[0], argv[1]);
+ LLVMFuzzerInitialize(&argc, &argv);
+
+ if (git_path_dirload(&corpus_files, argv[1], 0, 0x0) < 0) {
+ fprintf(stderr, "Failed to scan corpus directory: %m\n");
+ error = -1;
+ goto exit;
+ }
+ git_vector_foreach(&corpus_files, i, filename) {
+ fprintf(stderr, "\tRunning %s...\n", filename);
+ if (run_one_file(filename) < 0) {
+ error = -1;
+ goto exit;
+ }
+ }
+ fprintf(stderr, "Done %d runs\n", i);
+
+exit:
+ git_vector_free_deep(&corpus_files);
+ return error;
+}