diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5cde1657..b8037ef0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,27 @@ version: 2 updates: -- package-ecosystem: cargo - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 + - package-ecosystem: cargo + directory: "/" + schedule: + interval: "daily" + open-pull-requests-limit: 10 + commit-message: + prefix: "chore" + prefix-development: "test" + include: "scope" + - package-ecosystem: cargo + directory: "/fuzz" + schedule: + interval: "daily" + open-pull-requests-limit: 10 + commit-message: + prefix: "test(fuzz)" + include: "scope" + - package-ecosystem: "github-actions" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + open-pull-requests-limit: 10 + commit-message: + prefix: "ci" + include: "scope" \ No newline at end of file diff --git a/.github/workflows/auto_merge_prs.yml b/.github/workflows/auto_merge_prs.yml new file mode 100644 index 00000000..260723a4 --- /dev/null +++ b/.github/workflows/auto_merge_prs.yml @@ -0,0 +1,23 @@ +name: Auto-merge PRs from owner and trusted bots +on: pull_request + +permissions: + contents: write + pull-requests: write + +jobs: + auto-merge: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' || github.actor == 'github-actions' || github.actor == 'Pr0methean' }} + steps: + - name: Dependabot metadata + id: metadata + if: ${{ github.actor == 'dependabot[bot]' }} + uses: dependabot/fetch-metadata@v2.1.0 + with: + github-token: "${{ github.token }}" + - name: Enable auto-merge + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GH_TOKEN: "${{ secrets.RELEASE_PLZ_PAT }}" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 35d4a6e9..9762b3b4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -2,91 +2,287 @@ name: CI on: pull_request: - push: branches: - - master + - 'master' + push: + branches-ignore: + - 'gh-readonly-queue/**' + workflow_dispatch: + merge_group: + types: [checks_requested] env: RUSTFLAGS: -Dwarnings jobs: build_and_test: - name: Build and test - runs-on: ${{ matrix.os }} + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name strategy: matrix: os: [ubuntu-latest, macOS-latest, windows-latest] - rust: [stable, 1.59.0] - + rustalias: [stable, nightly, msrv] + feature_flag: ["--all-features", "--no-default-features", ""] + include: + - rustalias: stable + rust: stable + - rustalias: msrv + rust: '1.70' + - rustalias: nightly + rust: nightly + name: 'Build and test ${{ matrix.feature_flag }}: ${{ matrix.os }}, ${{ matrix.rustalias }}' + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@master - - name: Install ${{ matrix.rust }} + - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} override: true - - name: check + - name: Check uses: actions-rs/cargo@v1 with: command: check - args: --all --bins --examples + args: --all ${{ matrix.feature_flag }} --bins --examples - - name: tests + - name: Tests uses: actions-rs/cargo@v1 with: command: test - args: --all + args: --all ${{ matrix.feature_flag }} - clippy: + cargo_fmt: + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - + - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - components: clippy + components: rustfmt + - name: fmt + run: cargo fmt --all -- --check - - name: clippy - uses: actions-rs/cargo@v1 - with: - command: clippy - args: --all-targets --all-features -- -D warnings - - check_fmt_and_docs: - name: Checking fmt and docs + style_and_docs: + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + strategy: + matrix: + feature_flag: ["--all-features", "--no-default-features", ""] runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: + profile: minimal toolchain: nightly - components: rustfmt, clippy override: true + components: clippy + - name: clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all-targets ${{ matrix.feature_flag }} -- -D warnings + - name: docs + uses: actions-rs/cargo@v1 + with: + command: doc + args: --no-deps ${{ matrix.feature_flag }} - - name: fmt - run: cargo fmt --all -- --check - - - name: Docs - run: cargo doc - - fuzz: + fuzz_read: runs-on: ubuntu-latest - + needs: + - build_and_test + - cargo_fmt + - style_and_docs steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - - - run: cargo install cargo-fuzz + - uses: actions-rs/cargo@v1 + with: + command: install + args: cargo-fuzz - name: compile fuzz - run: | - cargo fuzz build fuzz_read + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: build --all-features fuzz_read + - name: run fuzz + timeout-minutes: 331 + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: run --all-features fuzz_read -- fuzz/corpus/fuzz_read -timeout=10s -fork=2 -runs=25000000 -max_len=1300 -len_control=0 -dict=fuzz/fuzz.dict + - name: Upload any failure inputs + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_read_bad_inputs + path: fuzz/artifacts/fuzz_read/crash-* + if-no-files-found: ignore + - name: Minimize seed corpus + if: always() + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: cmin --all-features fuzz_read fuzz/corpus/fuzz_read -- fuzz/corpus/new_seed + - name: Upload updated seed corpus + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_read_corpus + path: fuzz/corpus/new_seed/* + + fuzz_read_with_no_features: + runs-on: ubuntu-latest + needs: + - build_and_test + - cargo_fmt + - style_and_docs + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - uses: actions-rs/cargo@v1 + with: + command: install + args: cargo-fuzz + - name: compile fuzz + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: build --no-default-features fuzz_read + - name: run fuzz + timeout-minutes: 331 + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: run --no-default-features fuzz_read fuzz/corpus/fuzz_read -- -timeout=10s -fork=2 -runs=40000000 -max_total_time=19800 -max_len=16384 -len_control=0 -dict=fuzz/fuzz.dict + - name: Upload any failure inputs + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_read_no_features_bad_inputs + path: fuzz/artifacts/fuzz_read/crash-* + if-no-files-found: ignore + - name: Minimize seed corpus + if: always() + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: cmin --no-default-features fuzz_read fuzz/corpus/fuzz_read -- fuzz/corpus/new_seed + - name: Upload updated seed corpus + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_read_no_features_corpus + path: fuzz/corpus/new_seed/* + + fuzz_write: + runs-on: ubuntu-latest + needs: + - build_and_test + - cargo_fmt + - style_and_docs + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - uses: actions-rs/cargo@v1 + with: + command: install + args: cargo-fuzz + - name: compile fuzz + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: build --all-features fuzz_write + - name: run fuzz + timeout-minutes: 331 + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: run --all-features fuzz_write fuzz/corpus/fuzz_write -- -timeout=2s -fork=2 -runs=1000000 -max_len=500 -dict=fuzz/fuzz.dict + - name: Upload any failure inputs + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_write_bad_inputs + path: | + fuzz/artifacts/fuzz_write/crash-* + fuzz/artifacts/fuzz_write/leak-* + fuzz/artifacts/fuzz_write/timeout-* + if-no-files-found: ignore + - name: Minimize seed corpus + if: always() + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: cmin --all-features fuzz_write fuzz/corpus/fuzz_write -- fuzz/corpus/new_seed + - name: Upload updated seed corpus + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_write_corpus + path: fuzz/corpus/new_seed/* + + fuzz_write_with_no_features: + runs-on: ubuntu-latest + needs: + - build_and_test + - cargo_fmt + - style_and_docs + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - uses: actions-rs/cargo@v1 + with: + command: install + args: cargo-fuzz + - name: compile fuzz + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: build --no-default-features fuzz_write + - name: run fuzz + timeout-minutes: 331 + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: run --no-default-features fuzz_write fuzz/corpus/fuzz_write -- -timeout=10s -fork=2 -runs=50000000 -max_len=10000 -len_control=200 -dict=fuzz/fuzz.dict + - name: Upload any failure inputs + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_write_no_features_bad_inputs + path: fuzz/artifacts/fuzz_write/crash-* + if-no-files-found: ignore + - name: Minimize seed corpus + if: always() + uses: actions-rs/cargo@v1 + with: + command: fuzz + args: cmin --no-default-features fuzz_write fuzz/corpus/fuzz_write -- fuzz/corpus/new_seed + - name: Upload updated seed corpus + if: always() + uses: actions/upload-artifact@v4 + with: + name: fuzz_write_no_features_corpus + path: fuzz/corpus/new_seed/* diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml new file mode 100644 index 00000000..e3ab5f7a --- /dev/null +++ b/.github/workflows/devskim.yml @@ -0,0 +1,37 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: DevSkim + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + schedule: + - cron: '39 17 * * *' + merge_group: + types: [checks_requested] + + +jobs: + lint: + name: DevSkim + runs-on: ubuntu-20.04 + permissions: + actions: read + contents: read + security-events: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run DevSkim scanner + uses: microsoft/DevSkim-Action@v1 + + - name: Upload DevSkim scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: devskim-results.sarif diff --git a/.github/workflows/release-plz.yml b/.github/workflows/release-plz.yml new file mode 100644 index 00000000..52919860 --- /dev/null +++ b/.github/workflows/release-plz.yml @@ -0,0 +1,28 @@ +name: Release +on: + push: + branches: + - 'master' +permissions: + pull-requests: write + contents: write +jobs: + release-plz: + name: Release-plz + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.RELEASE_PLZ_PAT }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + profile: minimal + - name: Run release-plz + uses: MarcoIeni/release-plz-action@v0.5 + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_PLZ_PAT }} + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index f976c0b5..2abb1d5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ Cargo.lock target - +.DS_Store \.idea/ diff --git a/.whitesource b/.whitesource new file mode 100644 index 00000000..9c7ae90b --- /dev/null +++ b/.whitesource @@ -0,0 +1,14 @@ +{ + "scanSettings": { + "baseBranches": [] + }, + "checkRunSettings": { + "vulnerableCheckRunConclusionLevel": "failure", + "displayMode": "diff", + "useMendCheckNames": true + }, + "issueSettings": { + "minSeverityLevel": "LOW", + "issueType": "DEPENDENCY" + } +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 4faa68d6..f157075f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,360 @@ # Changelog +## [1.2.2](https://github.com/zip-rs/zip2/compare/v1.2.1...v1.2.2) - 2024-05-09 + +### 🐛 Bug Fixes +- Failed to clear "writing_raw" before finishing a symlink, leading to dropped extra fields + +### ⚡ Performance +- Use boxed slice for archive comment, since it can't be concatenated +- Optimize for the fact that false signatures can't overlap with real ones + +## [1.2.1](https://github.com/zip-rs/zip2/compare/v1.2.0...v1.2.1) - 2024-05-06 + +### 🐛 Bug Fixes +- Prevent panic when trying to read a file with an unsupported compression method +- Prevent panic after reading an invalid LZMA file +- Make `Stored` the default compression method if `Deflated` isn't available, so that zip files are readable by as much software as possible +- version_needed was wrong when e.g. cfg(bzip2) but current file wasn't bzip2 ([#100](https://github.com/zip-rs/zip2/pull/100)) +- file paths shouldn't start with slashes ([#102](https://github.com/zip-rs/zip2/pull/102)) + +### 🚜 Refactor +- Overhaul `impl Arbitrary for FileOptions` +- Remove unused `atomic` module + +## [1.2.0](https://github.com/zip-rs/zip2/compare/v1.1.4...v1.2.0) - 2024-05-06 + +### 🚀 Features +- Add method `decompressed_size()` so non-recursive ZIP bombs can be detected + +### 🚜 Refactor +- Make `ZipWriter::finish()` consume the `ZipWriter` + +### ⚙️ Miscellaneous Tasks +- Use panic! rather than abort to ensure the fuzz harness can process the failure +- Update fuzz_write to use replace_with +- Remove a drop that can no longer be explicit +- Add `#![allow(unexpected_cfgs)]` in nightly + +## [1.1.4](https://github.com/zip-rs/zip2/compare/v1.1.3...v1.1.4) - 2024-05-04 + +### 🐛 Bug Fixes +- Build was failing with bzip2 enabled +- use is_dir in more places where Windows paths might be handled incorrectly + +### ⚡ Performance +- Quick filter for paths that contain "/../" or "/./" or start with "./" or "../" +- Fast handling for separator-free paths +- Speed up logic if main separator isn't '/' +- Drop `normalized_components` slightly sooner when not using it +- Speed up `path_to_string` in cases where the path is already in the proper format + +### ⚙️ Miscellaneous Tasks +- Refactor: can short-circuit handling of paths that start with MAIN_SEPARATOR, no matter what MAIN_SEPARATOR is +- Bug fix: non-canonical path detection when MAIN_SEPARATOR is not slash or occurs twice in a row +- Bug fix: must recreate if . or .. is a path element +- Bug fix + +### ◀️ Revert +- [#58](https://github.com/zip-rs/zip2/pull/58) (partial): `bzip2-rs` can't replace `bzip2` because it's decompress-only + +## [1.1.3](https://github.com/zip-rs/zip2/compare/v1.1.2...v1.1.3) - 2024-04-30 + +### 🐛 Bug Fixes +- Rare bug where find_and_parse would give up prematurely on detecting a false end-of-CDR header + +## [1.1.2](https://github.com/Pr0methean/zip/compare/v1.1.1...v1.1.2) - 2024-04-28 + +### 🐛 Bug Fixes +- Alignment was previously handled incorrectly ([#33](https://github.com/Pr0methean/zip/pull/33)) + +### 🚜 Refactor +- deprecate `deflate-miniz` feature since it's now equivalent to `deflate` ([#35](https://github.com/Pr0methean/zip/pull/35)) + +## [1.1.1] + +### Added + +- `index_for_name`, `index_for_path`, `name_for_index`: get the index of a file given its path or vice-versa, without + initializing metadata from the local-file header or needing to mutably borrow the `ZipArchive`. +- `add_symlink_from_path`, `shallow_copy_file_from_path`, `deep_copy_file_from_path`, `raw_copy_file_to_path`: copy a + file or create a symlink using `AsRef` arguments + +### Changed + +- `add_directory_from_path` and `start_file_from_path` are no longer deprecated, and they now normalize `..` as well as + `.`. + +## [1.1.0] + +### Added + +- Support for decoding LZMA. + +### Changed + +- Eliminated a custom `AtomicU64` type by replacing it with `OnceLock` in the only place it's used. +- `FileOptions` now has the subtype `SimpleFileOptions` which implements `Copy` but has no extra data. + +## [1.0.1] + +### Changed + +- The published package on crates.io no longer includes the tests or examples. + +## [1.0.0] + +### Changed + +- Now uses boxed slices rather than `String` or `Vec` for metadata fields that aren't likely to grow. + +## [0.11.0] + +### Added + +- Support for `DEFLATE64` (decompression only). +- Support for Zopfli compression levels up to `i64::MAX`. + +### Changed + +- `InvalidPassword` is now a kind of `ZipError` to eliminate the need for nested `Result` structs. +- Updated dependencies. + +## [0.10.3] + +### Changed + +- Updated dependencies. +- MSRV increased to `1.67`. + +### Fixed + +- Fixed some rare bugs that could cause panics when trying to read an invalid ZIP file or using an incorrect password. + +## [0.10.2] + +### Changed + +- Where possible, methods are now `const`. This improves performance, especially when reading. + +## [0.10.1] + +### Changed + +- Date and time conversion methods now return `DateTimeRangeError` rather than `()` on error. + +## [0.10.0] + +### Changed + +- Replaces the `flush_on_finish_file` parameter of `ZipWriter::new` and `ZipWriter::Append` with + a `set_flush_on_finish_file` method. + +### Fixed + +- Fixes build errors that occur when all default features are disabled. +- Fixes more cases of a bug when ZIP64 magic bytes occur in filenames. + +## [0.9.2] + +### Added + +- `zlib-ng` for fast Deflate compression. This is now the default for compression levels 0-9. +- `chrono` to convert zip::DateTime to and from chrono::NaiveDateTime + +## [0.9.1] + +### Added + +- Zopfli for aggressive Deflate compression. + +## [0.9.0] + +### Added + + - `flush_on_finish_file` parameter for `ZipWriter`. + +## [0.8.3] + +### Changed + +- Uses the `aes::cipher::KeyInit` trait from `aes` 0.8.2 where appropriate. + +### Fixed + +- Calling `abort_file()` no longer corrupts the archive if called on a + shallow copy of a remaining file, or on an archive whose CDR entries are out + of sequence. However, it may leave an unused entry in the archive. +- Calling `abort_file()` while writing a ZipCrypto-encrypted file no longer + causes a crash. +- Calling `abort_file()` on the last file before `finish()` no longer produces + an invalid ZIP file or garbage in the comment. + +### Added + +- `ZipWriter` methods `get_comment()` and `get_raw_comment()`. + +## [0.8.2] + +### Fixed + +- Fixed an issue where code might spuriously fail during write fuzzing. + +### Added + +- New method `with_alignment` on `FileOptions`. + +## [0.8.1] + +### Fixed + +- `ZipWriter` now once again implements `Send` if the underlying writer does. + +## [0.8.0] + +### Deleted + +- Methods `start_file_aligned`, `start_file_with_extra_data`, `end_local_start_central_extra_data` and + `end_extra_data` (see below). + +### Changed + +- Alignment and extra-data fields are now attributes of [`zip::unstable::write::FileOptions`], allowing them to be + specified for `add_directory` and `add_symlink`. +- Extra-data fields are now formatted by the `FileOptions` method `add_extra_data`. +- Improved performance, especially for `shallow_copy_file` and `deep_copy_file` on files with extra data. + +### Fixed + +- Fixes a rare bug where the size of the extra-data field could overflow when `large_file` was set. +- Fixes more cases of a bug when ZIP64 magic bytes occur in filenames. + +## [0.7.5] + +### Fixed + +- Fixed a bug that occurs when ZIP64 magic bytes occur twice in a filename or across two filenames. + +## [0.7.4] + +### Added + +- Added experimental [`zip::unstable::write::FileOptions::with_deprecated_encryption`] API to enable encrypting + files with PKWARE encryption. + +## [0.7.3] + +### Fixed + +- Fixed a bug that occurs when a filename in a ZIP32 file includes the ZIP64 magic bytes. + +## [0.7.2] + +### Added + +- Method `abort_file` - removes the current or most recently-finished file from the archive. + +### Fixed + +- Fixed a bug where a file could remain open for writing after validations failed. + +## [0.7.1] + +### Changed + +- Bumped the version number in order to upload an updated README to crates.io. + +## [0.7.0] + +### Fixed + +- Calling `start_file` with invalid parameters no longer closes the `ZipWriter`. +- Attempting to write a 4GiB file without calling `FileOptions::large_file(true)` now removes the file from the archive + but does not close the `ZipWriter`. +- Attempting to write a file with an unrepresentable or invalid last-modified date will instead add it with a date of + 1980-01-01 00:00:00. + +### Added + +- Method `is_writing_file` - indicates whether a file is open for writing. + +## [0.6.13] + +### Fixed + +- Fixed a possible bug in deep_copy_file. + +## [0.6.12] + +### Fixed + +- Fixed a Clippy warning that was missed during the last release. + +## [0.6.11] + +### Fixed + +- Fixed a bug that could cause later writes to fail after a `deep_copy_file` call. + +## [0.6.10] + +### Changed + +- Updated dependency versions. + +## [0.6.9] + +### Fixed + +- Fixed an issue that prevented `ZipWriter` from implementing `Send`. + +## [0.6.8] + +### Added + +- Detects duplicate filenames. + +### Fixed + +- `deep_copy_file` could set incorrect Unix permissions. +- `deep_copy_file` could handle files incorrectly if their compressed size was u32::MAX bytes or less but their + uncompressed size was not. +- Documented that `deep_copy_file` does not copy a directory's contents. + +### Changed + +- Improved performance of `deep_copy_file` by using a HashMap and eliminating a redundant search. + +## [0.6.7] + +### Added + +- `deep_copy_file` method: more standards-compliant way to copy a file from within the ZipWriter + +## [0.6.6] + +### Fixed + +- Unused flag `#![feature(read_buf)]` was breaking compatibility with stable compiler. + +### Changed + +- Updated `aes` dependency to `0.8.2` (https://github.com/zip-rs/zip/pull/354) +- Updated other dependency versions. + ## [0.6.5] ### Changed - Added experimental [`zip::unstable::write::FileOptions::with_deprecated_encryption`] API to enable encrypting files with PKWARE encryption. +### Added + +- `shallow_copy_file` method: copy a file from within the ZipWriter + + ## [0.6.4] ### Changed - - [#333](https://github.com/zip-rs/zip/pull/333): disabled the default features of the `time` dependency, and also `formatting` and `macros`, as they were enabled by mistake. - - Deprecated [`DateTime::from_time`](https://docs.rs/zip/0.6/zip/struct.DateTime.html#method.from_time) in favor of [`DateTime::try_from`](https://docs.rs/zip/0.6/zip/struct.DateTime.html#impl-TryFrom-for-DateTime) - \ No newline at end of file +- [#333](https://github.com/zip-rs/zip/pull/333): disabled the default features of the `time` dependency, and also `formatting` and `macros`, as they were enabled by mistake. +- Deprecated [`DateTime::from_time`](https://docs.rs/zip/0.6/zip/struct.DateTime.html#method.from_time) in favor of [`DateTime::try_from`](https://docs.rs/zip/0.6/zip/struct.DateTime.html#impl-TryFrom-for-DateTime) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..bcc44448 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,7 @@ +Pull requests are welcome, but they're subject to some requirements: + +* They must build against the MSRV, the latest stable Rust version, and the nightly Rust version, both with `--no-default-features` and with `--all-features`. +* They must pass fuzz tests (see the Actions tab). +* Commit messages must conform to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and start with + one of the types specified by the [Angular convention](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type). +* All commits must be signed. diff --git a/Cargo.toml b/Cargo.toml index fd8b3020..2b1efcee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,45 +1,88 @@ [package] name = "zip" -version = "0.6.5" -authors = ["Mathijs van de Nes ", "Marli Frost ", "Ryan Levick "] +version = "1.2.2" +authors = [ + "Mathijs van de Nes ", + "Marli Frost ", + "Ryan Levick ", + "Chris Hennick ", +] license = "MIT" -repository = "https://github.com/zip-rs/zip.git" +repository = "https://github.com/zip-rs/zip2.git" keywords = ["zip", "archive"] +rust-version = "1.70.0" description = """ Library to support the reading and writing of zip files. """ edition = "2021" -rust-version = "1.59.0" +exclude = ["tests/**", "examples/**", ".github/**", "fuzz/**"] +build = "src/build.rs" + +[workspace.dependencies] +time = { version = "0.3.36", default-features = false } [dependencies] -aes = { version = "0.7.5", optional = true } -byteorder = "1.4.3" -bzip2 = { version = "0.4.3", optional = true } -constant_time_eq = { version = "0.1.5", optional = true } -crc32fast = "1.3.2" -flate2 = { version = "1.0.23", default-features = false, optional = true } +aes = { version = "0.8.4", optional = true } +bzip2 = { version = "0.4.4", optional = true } +chrono = { version = "0.4.38", optional = true } +constant_time_eq = { version = "0.3.0", optional = true } +crc32fast = "1.4.0" +displaydoc = { version = "0.2.4", default-features = false } +flate2 = { version = "1.0.28", default-features = false, optional = true } +indexmap = "2" hmac = { version = "0.12.1", optional = true, features = ["reset"] } -pbkdf2 = {version = "0.11.0", optional = true } -sha1 = {version = "0.10.1", optional = true } -time = { version = "0.3.7", optional = true, default-features = false, features = ["std"] } -zstd = { version = "0.11.2", optional = true } +pbkdf2 = { version = "0.12.2", optional = true } +rand = { version = "0.8.5", optional = true } +sha1 = { version = "0.10.6", optional = true } +thiserror = "1.0.48" +time = { workspace = true, optional = true, features = [ + "std", +] } +zeroize = { version = "1.6.0", optional = true, features = ["zeroize_derive"] } +zstd = { version = "0.13.1", optional = true, default-features = false } +zopfli = { version = "0.8.0", optional = true } +deflate64 = { version = "0.1.8", optional = true } +lzma-rs = { version = "0.3.0", default-features = false, optional = true } [target.'cfg(any(all(target_arch = "arm", target_pointer_width = "32"), target_arch = "mips", target_arch = "powerpc"))'.dependencies] -crossbeam-utils = "0.8.8" +crossbeam-utils = "0.8.19" + +[target.'cfg(fuzzing)'.dependencies] +arbitrary = { version = "1.3.2", features = ["derive"] } [dev-dependencies] bencher = "0.1.5" -getrandom = "0.2.5" -walkdir = "2.3.2" -time = { version = "0.3.7", features = ["formatting", "macros"] } +getrandom = { version = "0.2.14", features = ["js"] } +walkdir = "2.5.0" +time = { workspace = true, features = ["formatting", "macros"] } +anyhow = "1" +clap = { version = "=4.4.18", features = ["derive"] } [features] -aes-crypto = [ "aes", "constant_time_eq", "hmac", "pbkdf2", "sha1" ] -deflate = ["flate2/rust_backend"] -deflate-miniz = ["flate2/default"] -deflate-zlib = ["flate2/zlib"] +aes-crypto = ["aes", "constant_time_eq", "hmac", "pbkdf2", "sha1", "rand", "zeroize"] +chrono = ["chrono/default"] +_deflate-any = [] +deflate = ["flate2/rust_backend", "_deflate-any"] + +# DEPRECATED: previously enabled `flate2/miniz_oxide` which is equivalent to `flate2/rust_backend` +deflate-miniz = ["deflate", "_deflate-any"] + +deflate-zlib = ["flate2/zlib", "_deflate-any"] +deflate-zlib-ng = ["flate2/zlib-ng", "_deflate-any"] +deflate-zopfli = ["zopfli", "_deflate-any"] +lzma = ["lzma-rs/stream"] unreserved = [] -default = ["aes-crypto", "bzip2", "deflate", "time", "zstd"] +default = [ + "aes-crypto", + "bzip2", + "deflate", + "deflate64", + "deflate-zlib-ng", + "deflate-zopfli", + "lzma", + "time", + "zstd", +] [[bench]] name = "read_entry" @@ -48,3 +91,7 @@ harness = false [[bench]] name = "read_metadata" harness = false + +[[bench]] +name = "merge_archive" +harness = false diff --git a/README.md b/README.md index 584a747e..7322e7c9 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,65 @@ -zip-rs -====== +zip +======== -[![Build Status](https://img.shields.io/github/workflow/status/zip-rs/zip/CI)](https://github.com/zip-rs/zip/actions?query=branch%3Amaster+workflow%3ACI) +[![Build Status](https://github.com/zip-rs/zip2/actions/workflows/ci.yaml/badge.svg)](https://github.com/Pr0methean/zip/actions?query=branch%3Amaster+workflow%3ACI) [![Crates.io version](https://img.shields.io/crates/v/zip.svg)](https://crates.io/crates/zip) -[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/rQ7H9cSsF4) -[Documentation](https://docs.rs/zip/0.6.3/zip/) +[Documentation](https://docs.rs/zip/latest/zip/) Info ---- -A zip library for rust which supports reading and writing of simple ZIP files. +A zip library for rust which supports reading and writing of simple ZIP files. Formerly hosted at +https://github.com/zip-rs/zip2. Supported compression formats: * stored (i.e. none) * deflate +* deflate64 (decompression only) * bzip2 * zstd +* lzma (decompression only) Currently unsupported zip extensions: -* Encryption * Multi-disk -Usage ------ - -With all default features: - -```toml -[dependencies] -zip = "5" -``` - -Without the default features: - -```toml -[dependencies] -zip = { version = "0.6.5", default-features = false } -``` +Features +-------- The features available are: * `aes-crypto`: Enables decryption of files which were encrypted with AES. Supports AE-1 and AE-2 methods. -* `deflate`: Enables the deflate compression algorithm, which is the default for zip files. +* `deflate`: Enables decompressing the deflate compression algorithm, which is the default for zip files. +* `deflate-zlib`: Enables deflating files with the `zlib` library (used when compression quality is 0..=9). +* `deflate-zlib-ng`: Enables deflating files with the `zlib-ng` library (used when compression quality is 0..=9). + This is the fastest `deflate` implementation available. +* `deflate-zopfli`: Enables deflating files with the `zopfli` library (used when compression quality is 10..=264). This + is the most effective `deflate` implementation available. +* `deflate64`: Enables the deflate64 compression algorithm. Only decompression is supported. +* `lzma`: Enables the LZMA compression algorithm. Only decompression is supported. * `bzip2`: Enables the BZip2 compression algorithm. * `time`: Enables features using the [time](https://github.com/rust-lang-deprecated/time) crate. +* `chrono`: Enables converting last-modified `zip::DateTime` to and from `chrono::NaiveDateTime`. * `zstd`: Enables the Zstandard compression algorithm. -All of these are enabled by default. +By default `aes-crypto`, `deflate`, `deflate-zlib-ng`, `deflate-zopfli`, `bzip2`, `time` and `zstd` are enabled. + +The following feature flags are deprecated: + +* `deflate-miniz`: Use `flate2`'s default backend for compression. Currently the same as `deflate`. MSRV ---- -Our current Minimum Supported Rust Version is **1.59.0**. When adding features, +Our current Minimum Supported Rust Version is **1.70**. When adding features, we will follow these guidelines: - We will always support the latest four minor Rust versions. This gives you a 6 month window to upgrade your compiler. -- Any change to the MSRV will be accompanied with a **minor** version bump - - While the crate is pre-1.0, this will be a change to the PATCH version. +- Any change to the MSRV will be accompanied with a **minor** version bump. Examples -------- @@ -72,6 +70,7 @@ See the [examples directory](examples) for: * How to extract a zip file. * How to extract a single file from a zip. * How to read a zip from the standard input. + * How to append a directory to an existing archive Fuzzing ------- @@ -93,3 +92,9 @@ To start fuzzing zip extraction: ```bash cargo +nightly fuzz run fuzz_read ``` + +To start fuzzing zip creation: + +```bash +cargo +nightly fuzz run fuzz_write +``` diff --git a/benches/merge_archive.rs b/benches/merge_archive.rs new file mode 100644 index 00000000..ff07e1a6 --- /dev/null +++ b/benches/merge_archive.rs @@ -0,0 +1,131 @@ +use bencher::{benchmark_group, benchmark_main}; + +use std::io::{Cursor, Read, Seek, Write}; + +use bencher::Bencher; +use getrandom::getrandom; +use zip::{result::ZipResult, write::SimpleFileOptions, ZipArchive, ZipWriter}; + +fn generate_random_archive( + num_entries: usize, + entry_size: usize, + options: SimpleFileOptions, +) -> ZipResult<(usize, ZipArchive>>)> { + let buf = Cursor::new(Vec::new()); + let mut zip = ZipWriter::new(buf); + + let mut bytes = vec![0u8; entry_size]; + for i in 0..num_entries { + let name = format!("random{}.dat", i); + zip.start_file(name, options)?; + getrandom(&mut bytes).unwrap(); + zip.write_all(&bytes)?; + } + + let buf = zip.finish()?.into_inner(); + let len = buf.len(); + + Ok((len, ZipArchive::new(Cursor::new(buf))?)) +} + +fn perform_merge( + src: ZipArchive, + mut target: ZipWriter, +) -> ZipResult> { + target.merge_archive(src)?; + Ok(target) +} + +fn perform_raw_copy_file( + mut src: ZipArchive, + mut target: ZipWriter, +) -> ZipResult> { + for i in 0..src.len() { + let entry = src.by_index(i)?; + target.raw_copy_file(entry)?; + } + Ok(target) +} + +const NUM_ENTRIES: usize = 100; +const ENTRY_SIZE: usize = 1024; + +fn merge_archive_stored(bench: &mut Bencher) { + let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); + let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap(); + + bench.bytes = len as u64; + + bench.iter(|| { + let buf = Cursor::new(Vec::new()); + let zip = ZipWriter::new(buf); + let zip = perform_merge(src.clone(), zip).unwrap(); + let buf = zip.finish().unwrap().into_inner(); + assert_eq!(buf.len(), len); + }); +} + +#[cfg(feature = "_deflate-any")] +fn merge_archive_compressed(bench: &mut Bencher) { + let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Deflated); + let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap(); + + bench.bytes = len as u64; + + bench.iter(|| { + let buf = Cursor::new(Vec::new()); + let zip = ZipWriter::new(buf); + let zip = perform_merge(src.clone(), zip).unwrap(); + let buf = zip.finish().unwrap().into_inner(); + assert_eq!(buf.len(), len); + }); +} + +fn merge_archive_raw_copy_file_stored(bench: &mut Bencher) { + let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); + let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap(); + + bench.bytes = len as u64; + + bench.iter(|| { + let buf = Cursor::new(Vec::new()); + let zip = ZipWriter::new(buf); + let zip = perform_raw_copy_file(src.clone(), zip).unwrap(); + let buf = zip.finish().unwrap().into_inner(); + assert_eq!(buf.len(), len); + }); +} + +#[cfg(feature = "_deflate-any")] +fn merge_archive_raw_copy_file_compressed(bench: &mut Bencher) { + let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Deflated); + let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap(); + + bench.bytes = len as u64; + + bench.iter(|| { + let buf = Cursor::new(Vec::new()); + let zip = ZipWriter::new(buf); + let zip = perform_raw_copy_file(src.clone(), zip).unwrap(); + let buf = zip.finish().unwrap().into_inner(); + assert_eq!(buf.len(), len); + }); +} + +#[cfg(feature = "_deflate-any")] +benchmark_group!( + benches, + merge_archive_stored, + merge_archive_compressed, + merge_archive_raw_copy_file_stored, + merge_archive_raw_copy_file_compressed, +); + +#[cfg(not(feature = "_deflate-any"))] +benchmark_group!( + benches, + merge_archive_stored, + merge_archive_raw_copy_file_stored, +); + +benchmark_main!(benches); diff --git a/benches/read_entry.rs b/benches/read_entry.rs index af9affe3..eeabe74e 100644 --- a/benches/read_entry.rs +++ b/benches/read_entry.rs @@ -4,13 +4,12 @@ use std::io::{Cursor, Read, Write}; use bencher::Bencher; use getrandom::getrandom; -use zip::{ZipArchive, ZipWriter}; +use zip::{write::SimpleFileOptions, ZipArchive, ZipWriter}; fn generate_random_archive(size: usize) -> Vec { let data = Vec::new(); let mut writer = ZipWriter::new(Cursor::new(data)); - let options = - zip::write::FileOptions::default().compression_method(zip::CompressionMethod::Stored); + let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); writer.start_file("random.dat", options).unwrap(); let mut bytes = vec![0u8; size]; diff --git a/benches/read_metadata.rs b/benches/read_metadata.rs index 95334b1c..b419836f 100644 --- a/benches/read_metadata.rs +++ b/benches/read_metadata.rs @@ -3,7 +3,8 @@ use bencher::{benchmark_group, benchmark_main}; use std::io::{Cursor, Write}; use bencher::Bencher; -use zip::{ZipArchive, ZipWriter}; +use zip::write::SimpleFileOptions; +use zip::{CompressionMethod, ZipArchive, ZipWriter}; const FILE_COUNT: usize = 15_000; const FILE_SIZE: usize = 1024; @@ -11,8 +12,7 @@ const FILE_SIZE: usize = 1024; fn generate_random_archive(count_files: usize, file_size: usize) -> Vec { let data = Vec::new(); let mut writer = ZipWriter::new(Cursor::new(data)); - let options = - zip::write::FileOptions::default().compression_method(zip::CompressionMethod::Stored); + let options = SimpleFileOptions::default().compression_method(CompressionMethod::Stored); let bytes = vec![0u8; file_size]; diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..5c1ceed5 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,91 @@ +# git-cliff ~ default configuration file +# https://git-cliff.org/docs/configuration +# +# Lines starting with "#" are comments. +# Configuration options are organized into tables and keys. +# See documentation for more information on available options. + +[changelog] +# changelog header +header = """ +# Changelog\n +All notable changes to this project will be documented in this file.\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %} + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }}\ + {% endfor %} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing s +trim = true +# postprocessors +postprocessors = [ + # { pattern = '', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL +] + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = true +# process each line of a commit as an individual commit +split_commits = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + # Replace issue numbers + #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, + # Check spelling of the commit with https://github.com/crate-ci/typos + # If the spelling is incorrect, it will be automatically fixed. + #{ pattern = '.*', replace_command = 'typos --write-changes -' }, +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^feat", group = "🚀 Features" }, + { message = "^fix", group = "🐛 Bug Fixes" }, + { message = "^doc", skip = true }, + { message = "^perf", group = "⚡ Performance" }, + { message = "^refactor", group = "🚜 Refactor" }, + { message = "^style", skip = true }, + { message = "^test", skip = true }, + { message = "^build", skip = true }, + { message = "^ci", skip = true }, + { message = "^chore\\(release\\)", skip = true }, + { message = "^chore\\(deps.*\\)", skip = true }, + { message = "^chore\\(pr\\)", skip = true }, + { message = "^chore\\(pull\\)", skip = true }, + { message = "^chore", group = "⚙️ Miscellaneous Tasks" }, + { body = ".*security", group = "🛡️ Security" }, + { message = "^revert", group = "◀️ Revert" }, +] +# protect breaking changes from being skipped due to matching a skipping commit_parser +protect_breaking_commits = true +# filter out the commits that are not matched by commit parsers +filter_commits = false +# regex for matching git tags +# tag_pattern = "v[0-9].*" +# regex for skipping tags +# skip_tags = "" +# regex for ignoring tags +# ignore_tags = "" +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "oldest" +# limit the number of commits included in the changelog. +# limit_commits = 42 diff --git a/examples/append.rs b/examples/append.rs new file mode 100644 index 00000000..88a5147e --- /dev/null +++ b/examples/append.rs @@ -0,0 +1,63 @@ +use std::{ + fs::{File, OpenOptions}, + path::{Path, PathBuf}, + str::FromStr, +}; +use zip::write::SimpleFileOptions; + +fn gather_files<'a, T: Into<&'a Path>>(path: T, files: &mut Vec) { + let path: &Path = path.into(); + + for entry in path.read_dir().unwrap() { + match entry { + Ok(e) => { + if e.path().is_dir() { + gather_files(e.path().as_ref(), files); + } else if e.path().is_file() { + files.push(e.path()); + } + } + Err(_) => todo!(), + } + } +} + +fn real_main() -> i32 { + let args: Vec<_> = std::env::args().collect(); + if args.len() < 3 { + println!("Usage: {} ", args[0]); + return 1; + } + + let existing_archive_path = &*args[1]; + let append_dir_path = &*args[2]; + let archive = PathBuf::from_str(existing_archive_path).unwrap(); + let to_append = PathBuf::from_str(append_dir_path).unwrap(); + + let existing_zip = OpenOptions::new() + .read(true) + .write(true) + .open(archive) + .unwrap(); + let mut append_zip = zip::ZipWriter::new_append(existing_zip).unwrap(); + + let mut files: Vec = vec![]; + gather_files(to_append.as_ref(), &mut files); + + for file in files { + append_zip + .start_file(file.to_string_lossy(), SimpleFileOptions::default()) + .unwrap(); + + let mut f = File::open(file).unwrap(); + let _ = std::io::copy(&mut f, &mut append_zip); + } + + append_zip.finish().unwrap(); + + 0 +} + +fn main() { + std::process::exit(real_main()); +} diff --git a/examples/extract.rs b/examples/extract.rs index 30807162..7359b53e 100644 --- a/examples/extract.rs +++ b/examples/extract.rs @@ -30,7 +30,7 @@ fn real_main() -> i32 { } } - if (*file.name()).ends_with('/') { + if file.is_dir() { println!("File {} extracted to \"{}\"", i, outpath.display()); fs::create_dir_all(&outpath).unwrap(); } else { diff --git a/examples/file_info.rs b/examples/file_info.rs index 6a2adc58..84878c58 100644 --- a/examples/file_info.rs +++ b/examples/file_info.rs @@ -34,7 +34,7 @@ fn real_main() -> i32 { } } - if (*file.name()).ends_with('/') { + if file.is_dir() { println!( "Entry {} is a directory with name \"{}\"", i, diff --git a/examples/write-large-file.rs b/examples/write-large-file.rs new file mode 100644 index 00000000..d9742e28 --- /dev/null +++ b/examples/write-large-file.rs @@ -0,0 +1,43 @@ +//! Write a huge file with lots of zeros, that should compress perfectly. + +fn main() -> Result<(), Box> { + if !cfg!(feature = "_deflate-any") { + return Err("Please enable one of the deflate features".into()); + } + let args: Vec<_> = std::env::args().collect(); + if args.len() < 2 { + return Err(format!("Usage: {} ", args[0]).into()); + } + + #[cfg(feature = "_deflate-any")] + { + let filename = &*args[1]; + doit(filename)?; + } + Ok(()) +} + +#[cfg(feature = "_deflate-any")] +fn doit(filename: &str) -> zip::result::ZipResult<()> { + use std::io::Write; + + use zip::write::SimpleFileOptions; + + let file = std::fs::File::create(filename)?; + let mut zip = zip::ZipWriter::new(file); + + let options = SimpleFileOptions::default() + .compression_method(zip::CompressionMethod::Deflated) + // files over u32::MAX require this flag set. + .large_file(true) + .unix_permissions(0o755); + zip.start_file("huge-file-of-zeroes", options)?; + let content: Vec<_> = std::iter::repeat(0_u8).take(65 * 1024).collect(); + let mut bytes_written = 0_u64; + while bytes_written < u32::MAX as u64 { + zip.write_all(&content)?; + bytes_written += content.len() as u64; + } + zip.finish()?; + Ok(()) +} diff --git a/examples/write_dir.rs b/examples/write_dir.rs index 3b043528..d9cd7342 100644 --- a/examples/write_dir.rs +++ b/examples/write_dir.rs @@ -1,30 +1,45 @@ +#![allow(unused_variables)] +#![allow(dead_code)] +use anyhow::Context; +use clap::{Parser, ValueEnum}; use std::io::prelude::*; -use std::io::{Seek, Write}; -use std::iter::Iterator; -use zip::result::ZipError; -use zip::write::FileOptions; +use zip::{result::ZipError, write::SimpleFileOptions}; use std::fs::File; -use std::path::Path; +use std::path::{Path, PathBuf}; use walkdir::{DirEntry, WalkDir}; +#[derive(Parser)] +#[command(about, long_about = None)] +struct Args { + // Source directory + source: PathBuf, + // Destination zipfile + destination: PathBuf, + // Compression method + #[arg(value_enum)] + compression_method: CompressionMethod, +} + +#[derive(Clone, ValueEnum)] +enum CompressionMethod { + Stored, + Deflated, + DeflatedMiniz, + DeflatedZlib, + Bzip2, + Zstd, +} + fn main() { std::process::exit(real_main()); } const METHOD_STORED: Option = Some(zip::CompressionMethod::Stored); -#[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" -))] +#[cfg(feature = "_deflate-any")] const METHOD_DEFLATED: Option = Some(zip::CompressionMethod::Deflated); -#[cfg(not(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" -)))] +#[cfg(not(feature = "_deflate-any"))] const METHOD_DEFLATED: Option = None; #[cfg(feature = "bzip2")] @@ -38,25 +53,60 @@ const METHOD_ZSTD: Option = Some(zip::CompressionMethod: const METHOD_ZSTD: Option = None; fn real_main() -> i32 { - let args: Vec<_> = std::env::args().collect(); - if args.len() < 3 { - println!( - "Usage: {} ", - args[0] - ); - return 1; - } - - let src_dir = &*args[1]; - let dst_file = &*args[2]; - for &method in [METHOD_STORED, METHOD_DEFLATED, METHOD_BZIP2, METHOD_ZSTD].iter() { - if method.is_none() { - continue; + let args = Args::parse(); + let src_dir = &args.source; + let dst_file = &args.destination; + let method = match args.compression_method { + CompressionMethod::Stored => zip::CompressionMethod::Stored, + CompressionMethod::Deflated => { + #[cfg(not(feature = "deflate"))] + { + println!("The `deflate` feature is not enabled"); + return 1; + } + #[cfg(feature = "deflate")] + zip::CompressionMethod::Deflated } - match doit(src_dir, dst_file, method.unwrap()) { - Ok(_) => println!("done: {src_dir} written to {dst_file}"), - Err(e) => println!("Error: {e:?}"), + CompressionMethod::DeflatedMiniz => { + #[cfg(not(feature = "deflate-miniz"))] + { + println!("The `deflate-miniz` feature is not enabled"); + return 1; + } + #[cfg(feature = "deflate-miniz")] + zip::CompressionMethod::Deflated } + CompressionMethod::DeflatedZlib => { + #[cfg(not(feature = "deflate-zlib"))] + { + println!("The `deflate-zlib` feature is not enabled"); + return 1; + } + #[cfg(feature = "deflate-zlib")] + zip::CompressionMethod::Deflated + } + CompressionMethod::Bzip2 => { + #[cfg(not(feature = "bzip2"))] + { + println!("The `bzip2` feature is not enabled"); + return 1; + } + #[cfg(feature = "bzip2")] + zip::CompressionMethod::Bzip2 + } + CompressionMethod::Zstd => { + #[cfg(not(feature = "zstd"))] + { + println!("The `zstd` feature is not enabled"); + return 1; + } + #[cfg(feature = "zstd")] + zip::CompressionMethod::Zstd + } + }; + match doit(src_dir, dst_file, method) { + Ok(_) => println!("done: {:?} written to {:?}", src_dir, dst_file), + Err(e) => eprintln!("Error: {e:?}"), } 0 @@ -64,29 +114,33 @@ fn real_main() -> i32 { fn zip_dir( it: &mut dyn Iterator, - prefix: &str, + prefix: &Path, writer: T, method: zip::CompressionMethod, -) -> zip::result::ZipResult<()> +) -> anyhow::Result<()> where T: Write + Seek, { let mut zip = zip::ZipWriter::new(writer); - let options = FileOptions::default() + let options = SimpleFileOptions::default() .compression_method(method) .unix_permissions(0o755); + let prefix = Path::new(prefix); let mut buffer = Vec::new(); for entry in it { let path = entry.path(); - let name = path.strip_prefix(Path::new(prefix)).unwrap(); + let name = path.strip_prefix(prefix).unwrap(); + let path_as_string = name + .to_str() + .map(str::to_owned) + .with_context(|| format!("{name:?} Is a Non UTF-8 Path"))?; // Write file or directory explicitly // Some unzip tools unzip files with directory paths correctly, some do not! if path.is_file() { println!("adding file {path:?} as {name:?} ..."); - #[allow(deprecated)] - zip.start_file_from_path(name, options)?; + zip.start_file(path_as_string, options)?; let mut f = File::open(path)?; f.read_to_end(&mut buffer)?; @@ -95,22 +149,17 @@ where } else if !name.as_os_str().is_empty() { // Only if not root! Avoids path spec / warning // and mapname conversion failed error on unzip - println!("adding dir {path:?} as {name:?} ..."); - #[allow(deprecated)] - zip.add_directory_from_path(name, options)?; + println!("adding dir {path_as_string:?} as {name:?} ..."); + zip.add_directory(path_as_string, options)?; } } zip.finish()?; - Result::Ok(()) + Ok(()) } -fn doit( - src_dir: &str, - dst_file: &str, - method: zip::CompressionMethod, -) -> zip::result::ZipResult<()> { +fn doit(src_dir: &Path, dst_file: &Path, method: zip::CompressionMethod) -> anyhow::Result<()> { if !Path::new(src_dir).is_dir() { - return Err(ZipError::FileNotFound); + return Err(ZipError::FileNotFound.into()); } let path = Path::new(dst_file); diff --git a/examples/write_sample.rs b/examples/write_sample.rs index 2e45cb1e..b864afcd 100644 --- a/examples/write_sample.rs +++ b/examples/write_sample.rs @@ -1,5 +1,7 @@ use std::io::prelude::*; -use zip::write::FileOptions; +use zip::write::SimpleFileOptions; +#[cfg(feature = "aes-crypto")] +use zip::{AesMode, CompressionMethod}; fn main() { std::process::exit(real_main()); @@ -27,17 +29,35 @@ fn doit(filename: &str) -> zip::result::ZipResult<()> { let mut zip = zip::ZipWriter::new(file); - zip.add_directory("test/", Default::default())?; + zip.add_directory("test/", SimpleFileOptions::default())?; - let options = FileOptions::default() + let options = SimpleFileOptions::default() .compression_method(zip::CompressionMethod::Stored) .unix_permissions(0o755); zip.start_file("test/☃.txt", options)?; zip.write_all(b"Hello, World!\n")?; - zip.start_file("test/lorem_ipsum.txt", Default::default())?; + zip.start_file("test/lorem_ipsum.txt", options)?; zip.write_all(LOREM_IPSUM)?; + #[cfg(feature = "aes-crypto")] + { + zip.start_file( + "test/lorem_ipsum.aes.txt", + options + .compression_method(CompressionMethod::Zstd) + .with_aes_encryption(AesMode::Aes256, "password"), + )?; + zip.write_all(LOREM_IPSUM)?; + + // This should use AE-1 due to the short file length. + zip.start_file( + "test/short.aes.txt", + options.with_aes_encryption(AesMode::Aes256, "password"), + )?; + zip.write_all(b"short text\n")?; + } + zip.finish()?; Ok(()) } diff --git a/fuzz/.gitignore b/fuzz/.gitignore index a0925114..35ae8a00 100644 --- a/fuzz/.gitignore +++ b/fuzz/.gitignore @@ -1,3 +1,2 @@ target -corpus artifacts diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index bfdb764c..dc113f96 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -10,9 +10,16 @@ cargo-fuzz = true [dependencies] libfuzzer-sys = "0.4" +arbitrary = { version = "1.3.0", features = ["derive"] } +replace_with = "0.1.7" [dependencies.zip] path = ".." +default-features = false + +[features] +zip_defaults = ["zip/default"] +default = ["zip_defaults"] # Prevent this from interfering with workspaces [workspace] @@ -23,3 +30,9 @@ name = "fuzz_read" path = "fuzz_targets/fuzz_read.rs" test = false doc = false + +[[bin]] +name = "fuzz_write" +path = "fuzz_targets/fuzz_write.rs" +test = false +doc = false diff --git a/fuzz/corpus/fuzz_read/0085adc5ffd2897ecdf0941cd02ea7b58c667b8b b/fuzz/corpus/fuzz_read/0085adc5ffd2897ecdf0941cd02ea7b58c667b8b new file mode 100644 index 00000000..25e422ea Binary files /dev/null and b/fuzz/corpus/fuzz_read/0085adc5ffd2897ecdf0941cd02ea7b58c667b8b differ diff --git a/fuzz/corpus/fuzz_read/009557a47cc90a54f646a2d5bc0fbea362979ee7 b/fuzz/corpus/fuzz_read/009557a47cc90a54f646a2d5bc0fbea362979ee7 new file mode 100644 index 00000000..f31f89b8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/009557a47cc90a54f646a2d5bc0fbea362979ee7 differ diff --git a/fuzz/corpus/fuzz_read/00f6cb3de1e7c80dd6642603a1fc6c4f08769f4f b/fuzz/corpus/fuzz_read/00f6cb3de1e7c80dd6642603a1fc6c4f08769f4f new file mode 100644 index 00000000..0c9a4585 Binary files /dev/null and b/fuzz/corpus/fuzz_read/00f6cb3de1e7c80dd6642603a1fc6c4f08769f4f differ diff --git a/fuzz/corpus/fuzz_read/0199fe39523f6562f114656ccf51fecd79a02147 b/fuzz/corpus/fuzz_read/0199fe39523f6562f114656ccf51fecd79a02147 new file mode 100644 index 00000000..25f0b21d Binary files /dev/null and b/fuzz/corpus/fuzz_read/0199fe39523f6562f114656ccf51fecd79a02147 differ diff --git a/fuzz/corpus/fuzz_read/01e829113cf8d6c35b3446758655c9238b8d363a b/fuzz/corpus/fuzz_read/01e829113cf8d6c35b3446758655c9238b8d363a new file mode 100644 index 00000000..16da4ec7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/01e829113cf8d6c35b3446758655c9238b8d363a differ diff --git a/fuzz/corpus/fuzz_read/021fade46ec68d61b9fefb5b0e62971ab2051396 b/fuzz/corpus/fuzz_read/021fade46ec68d61b9fefb5b0e62971ab2051396 new file mode 100644 index 00000000..4da20946 Binary files /dev/null and b/fuzz/corpus/fuzz_read/021fade46ec68d61b9fefb5b0e62971ab2051396 differ diff --git a/fuzz/corpus/fuzz_read/021fcf1bcc75cc7e2291b246e870dff08471d80d b/fuzz/corpus/fuzz_read/021fcf1bcc75cc7e2291b246e870dff08471d80d new file mode 100644 index 00000000..b8bcec2f Binary files /dev/null and b/fuzz/corpus/fuzz_read/021fcf1bcc75cc7e2291b246e870dff08471d80d differ diff --git a/fuzz/corpus/fuzz_read/0248d53796e8d01ab3d2a12bfa9bc08045c6bbce b/fuzz/corpus/fuzz_read/0248d53796e8d01ab3d2a12bfa9bc08045c6bbce new file mode 100644 index 00000000..be1647d3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0248d53796e8d01ab3d2a12bfa9bc08045c6bbce differ diff --git a/fuzz/corpus/fuzz_read/02eae92f4068710a49fb2db063ba01f6de8f7a66 b/fuzz/corpus/fuzz_read/02eae92f4068710a49fb2db063ba01f6de8f7a66 new file mode 100644 index 00000000..bf5552f0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/02eae92f4068710a49fb2db063ba01f6de8f7a66 differ diff --git a/fuzz/corpus/fuzz_read/02f87bed6f304a114ac8d27c1c383f0cd48a0e31 b/fuzz/corpus/fuzz_read/02f87bed6f304a114ac8d27c1c383f0cd48a0e31 new file mode 100644 index 00000000..18e88ade Binary files /dev/null and b/fuzz/corpus/fuzz_read/02f87bed6f304a114ac8d27c1c383f0cd48a0e31 differ diff --git a/fuzz/corpus/fuzz_read/035bdddf034ff981a3172e3a7139876a4007491b b/fuzz/corpus/fuzz_read/035bdddf034ff981a3172e3a7139876a4007491b new file mode 100644 index 00000000..b974d02b Binary files /dev/null and b/fuzz/corpus/fuzz_read/035bdddf034ff981a3172e3a7139876a4007491b differ diff --git a/fuzz/corpus/fuzz_read/036555366a1199ccd31d9858267cdd69777b3c10 b/fuzz/corpus/fuzz_read/036555366a1199ccd31d9858267cdd69777b3c10 new file mode 100644 index 00000000..802ead98 Binary files /dev/null and b/fuzz/corpus/fuzz_read/036555366a1199ccd31d9858267cdd69777b3c10 differ diff --git a/fuzz/corpus/fuzz_read/03821a96addcc8927afd28ce0e8ffca4464b800f b/fuzz/corpus/fuzz_read/03821a96addcc8927afd28ce0e8ffca4464b800f new file mode 100644 index 00000000..e3762903 Binary files /dev/null and b/fuzz/corpus/fuzz_read/03821a96addcc8927afd28ce0e8ffca4464b800f differ diff --git a/fuzz/corpus/fuzz_read/03e5a4772a2e21d662c75a43b6e0d6cc796f02d1 b/fuzz/corpus/fuzz_read/03e5a4772a2e21d662c75a43b6e0d6cc796f02d1 new file mode 100644 index 00000000..7c81ef57 Binary files /dev/null and b/fuzz/corpus/fuzz_read/03e5a4772a2e21d662c75a43b6e0d6cc796f02d1 differ diff --git a/fuzz/corpus/fuzz_read/03f6800edcca5ca07224fa3cfa9749338f54d628 b/fuzz/corpus/fuzz_read/03f6800edcca5ca07224fa3cfa9749338f54d628 new file mode 100644 index 00000000..8fce6812 Binary files /dev/null and b/fuzz/corpus/fuzz_read/03f6800edcca5ca07224fa3cfa9749338f54d628 differ diff --git a/fuzz/corpus/fuzz_read/0433cce8febc001cf18f32ad10f592022d743148 b/fuzz/corpus/fuzz_read/0433cce8febc001cf18f32ad10f592022d743148 new file mode 100644 index 00000000..1c69f2fc Binary files /dev/null and b/fuzz/corpus/fuzz_read/0433cce8febc001cf18f32ad10f592022d743148 differ diff --git a/fuzz/corpus/fuzz_read/044219e9e707d8a8fd882478fc50338aeddd9dfb b/fuzz/corpus/fuzz_read/044219e9e707d8a8fd882478fc50338aeddd9dfb new file mode 100644 index 00000000..676fe4b2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/044219e9e707d8a8fd882478fc50338aeddd9dfb differ diff --git a/fuzz/corpus/fuzz_read/044ce0ef54cd42e605fb199ce89b409b24dcca3b b/fuzz/corpus/fuzz_read/044ce0ef54cd42e605fb199ce89b409b24dcca3b new file mode 100644 index 00000000..e04edd5d Binary files /dev/null and b/fuzz/corpus/fuzz_read/044ce0ef54cd42e605fb199ce89b409b24dcca3b differ diff --git a/fuzz/corpus/fuzz_read/046498b51fc751bd482cd0065bcaaefd7e05331e b/fuzz/corpus/fuzz_read/046498b51fc751bd482cd0065bcaaefd7e05331e new file mode 100644 index 00000000..ecdefad4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/046498b51fc751bd482cd0065bcaaefd7e05331e differ diff --git a/fuzz/corpus/fuzz_read/047598019d26761df63785f5c900b8d0f69e3f98 b/fuzz/corpus/fuzz_read/047598019d26761df63785f5c900b8d0f69e3f98 new file mode 100644 index 00000000..20732819 Binary files /dev/null and b/fuzz/corpus/fuzz_read/047598019d26761df63785f5c900b8d0f69e3f98 differ diff --git a/fuzz/corpus/fuzz_read/04e9e495c7cd7debe9dcf43a2787423ead4b5178 b/fuzz/corpus/fuzz_read/04e9e495c7cd7debe9dcf43a2787423ead4b5178 new file mode 100644 index 00000000..40741915 Binary files /dev/null and b/fuzz/corpus/fuzz_read/04e9e495c7cd7debe9dcf43a2787423ead4b5178 differ diff --git a/fuzz/corpus/fuzz_read/05cbfb3a765043677af1c3069109c976c65d3c5b b/fuzz/corpus/fuzz_read/05cbfb3a765043677af1c3069109c976c65d3c5b new file mode 100644 index 00000000..e5cf95a1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/05cbfb3a765043677af1c3069109c976c65d3c5b differ diff --git a/fuzz/corpus/fuzz_read/05d7d14823d27067a4c4113cd99c40e4843806d4 b/fuzz/corpus/fuzz_read/05d7d14823d27067a4c4113cd99c40e4843806d4 new file mode 100644 index 00000000..29e2caa3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/05d7d14823d27067a4c4113cd99c40e4843806d4 differ diff --git a/fuzz/corpus/fuzz_read/0631765a3fc89719720a0aec98e8b89bf723ac5e b/fuzz/corpus/fuzz_read/0631765a3fc89719720a0aec98e8b89bf723ac5e new file mode 100644 index 00000000..572bf5c7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0631765a3fc89719720a0aec98e8b89bf723ac5e differ diff --git a/fuzz/corpus/fuzz_read/064806139cbf94e7adb305c9929dfb25fc67ef00 b/fuzz/corpus/fuzz_read/064806139cbf94e7adb305c9929dfb25fc67ef00 new file mode 100644 index 00000000..6a063052 Binary files /dev/null and b/fuzz/corpus/fuzz_read/064806139cbf94e7adb305c9929dfb25fc67ef00 differ diff --git a/fuzz/corpus/fuzz_read/0683fbaabfdee19cac147df309151c2ac0b86c5f b/fuzz/corpus/fuzz_read/0683fbaabfdee19cac147df309151c2ac0b86c5f new file mode 100644 index 00000000..519f8a76 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0683fbaabfdee19cac147df309151c2ac0b86c5f differ diff --git a/fuzz/corpus/fuzz_read/06b7c85e278be459348b5f6df8c1cb1df0784e49 b/fuzz/corpus/fuzz_read/06b7c85e278be459348b5f6df8c1cb1df0784e49 new file mode 100644 index 00000000..7e2efbc0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/06b7c85e278be459348b5f6df8c1cb1df0784e49 differ diff --git a/fuzz/corpus/fuzz_read/06d1dbbeeeb1521ac2dafd90e91b3e54c4aa71de b/fuzz/corpus/fuzz_read/06d1dbbeeeb1521ac2dafd90e91b3e54c4aa71de new file mode 100644 index 00000000..6a75dcbc Binary files /dev/null and b/fuzz/corpus/fuzz_read/06d1dbbeeeb1521ac2dafd90e91b3e54c4aa71de differ diff --git a/fuzz/corpus/fuzz_read/06f49ae983f74345dab96953ffb6a7eff3aa5687 b/fuzz/corpus/fuzz_read/06f49ae983f74345dab96953ffb6a7eff3aa5687 new file mode 100644 index 00000000..d7cb209d Binary files /dev/null and b/fuzz/corpus/fuzz_read/06f49ae983f74345dab96953ffb6a7eff3aa5687 differ diff --git a/fuzz/corpus/fuzz_read/075b55ec8105bfc042d7cf996352547db3d6b375 b/fuzz/corpus/fuzz_read/075b55ec8105bfc042d7cf996352547db3d6b375 new file mode 100644 index 00000000..ad9cc406 Binary files /dev/null and b/fuzz/corpus/fuzz_read/075b55ec8105bfc042d7cf996352547db3d6b375 differ diff --git a/fuzz/corpus/fuzz_read/08012138fffc7bedb567292b5d6975c287afab6d b/fuzz/corpus/fuzz_read/08012138fffc7bedb567292b5d6975c287afab6d new file mode 100644 index 00000000..ad26188a Binary files /dev/null and b/fuzz/corpus/fuzz_read/08012138fffc7bedb567292b5d6975c287afab6d differ diff --git a/fuzz/corpus/fuzz_read/08472cc4b3e4843df80e8354b74d9883a60eae89 b/fuzz/corpus/fuzz_read/08472cc4b3e4843df80e8354b74d9883a60eae89 new file mode 100644 index 00000000..7d2fdf65 Binary files /dev/null and b/fuzz/corpus/fuzz_read/08472cc4b3e4843df80e8354b74d9883a60eae89 differ diff --git a/fuzz/corpus/fuzz_read/0853083d49e1377b679998291ded23c010b10f79 b/fuzz/corpus/fuzz_read/0853083d49e1377b679998291ded23c010b10f79 new file mode 100644 index 00000000..ae97c0ca Binary files /dev/null and b/fuzz/corpus/fuzz_read/0853083d49e1377b679998291ded23c010b10f79 differ diff --git a/fuzz/corpus/fuzz_read/09549bee4c50e9f2bd8724264b034ee057c2f266 b/fuzz/corpus/fuzz_read/09549bee4c50e9f2bd8724264b034ee057c2f266 new file mode 100644 index 00000000..ae87c6c2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/09549bee4c50e9f2bd8724264b034ee057c2f266 differ diff --git a/fuzz/corpus/fuzz_read/0972523dff0bf0eacd7850d310ecc7a7fdb95384 b/fuzz/corpus/fuzz_read/0972523dff0bf0eacd7850d310ecc7a7fdb95384 new file mode 100644 index 00000000..0417b3a8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0972523dff0bf0eacd7850d310ecc7a7fdb95384 differ diff --git a/fuzz/corpus/fuzz_read/0978ccc5a237e1fce8f5f87f7f8f9a788149b6bb b/fuzz/corpus/fuzz_read/0978ccc5a237e1fce8f5f87f7f8f9a788149b6bb new file mode 100644 index 00000000..c60a3424 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0978ccc5a237e1fce8f5f87f7f8f9a788149b6bb differ diff --git a/fuzz/corpus/fuzz_read/09846e91ce5425c4fe8ffd0a831857979d9db679 b/fuzz/corpus/fuzz_read/09846e91ce5425c4fe8ffd0a831857979d9db679 new file mode 100644 index 00000000..059843fd Binary files /dev/null and b/fuzz/corpus/fuzz_read/09846e91ce5425c4fe8ffd0a831857979d9db679 differ diff --git a/fuzz/corpus/fuzz_read/09d0068fc86501fa974486fe6cd36967ad4b9d3e b/fuzz/corpus/fuzz_read/09d0068fc86501fa974486fe6cd36967ad4b9d3e new file mode 100644 index 00000000..c3dc76b3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/09d0068fc86501fa974486fe6cd36967ad4b9d3e differ diff --git a/fuzz/corpus/fuzz_read/09fd72dd11b982d2118931392d8c1f4caf2df027 b/fuzz/corpus/fuzz_read/09fd72dd11b982d2118931392d8c1f4caf2df027 new file mode 100644 index 00000000..3ecc361f Binary files /dev/null and b/fuzz/corpus/fuzz_read/09fd72dd11b982d2118931392d8c1f4caf2df027 differ diff --git a/fuzz/corpus/fuzz_read/0a173ae384aa3e1fb63b02b57e9f7ac0845939dd b/fuzz/corpus/fuzz_read/0a173ae384aa3e1fb63b02b57e9f7ac0845939dd new file mode 100644 index 00000000..06a878a7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0a173ae384aa3e1fb63b02b57e9f7ac0845939dd differ diff --git a/fuzz/corpus/fuzz_read/0a25c93b571f1a29461fddefecf0777ed77b4aa1 b/fuzz/corpus/fuzz_read/0a25c93b571f1a29461fddefecf0777ed77b4aa1 new file mode 100644 index 00000000..a9c3f30c Binary files /dev/null and b/fuzz/corpus/fuzz_read/0a25c93b571f1a29461fddefecf0777ed77b4aa1 differ diff --git a/fuzz/corpus/fuzz_read/0a3c02649efbb37707eb65dbb83f2d406743f7b4 b/fuzz/corpus/fuzz_read/0a3c02649efbb37707eb65dbb83f2d406743f7b4 new file mode 100644 index 00000000..4c16eb8d Binary files /dev/null and b/fuzz/corpus/fuzz_read/0a3c02649efbb37707eb65dbb83f2d406743f7b4 differ diff --git a/fuzz/corpus/fuzz_read/0aa6eca2fc868cb344a8d53853f42f7ede579943 b/fuzz/corpus/fuzz_read/0aa6eca2fc868cb344a8d53853f42f7ede579943 new file mode 100644 index 00000000..645d7af1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0aa6eca2fc868cb344a8d53853f42f7ede579943 differ diff --git a/fuzz/corpus/fuzz_read/0b22d34dc3549dc03033f331fba72536214a64a8 b/fuzz/corpus/fuzz_read/0b22d34dc3549dc03033f331fba72536214a64a8 new file mode 100644 index 00000000..9c83391b Binary files /dev/null and b/fuzz/corpus/fuzz_read/0b22d34dc3549dc03033f331fba72536214a64a8 differ diff --git a/fuzz/corpus/fuzz_read/0b567e6d4e5d7309363fc010163fa5c4e1601f8b b/fuzz/corpus/fuzz_read/0b567e6d4e5d7309363fc010163fa5c4e1601f8b new file mode 100644 index 00000000..25d268d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0b567e6d4e5d7309363fc010163fa5c4e1601f8b differ diff --git a/fuzz/corpus/fuzz_read/0b56bdf9c3edf634eea90b915fb7130249d38690 b/fuzz/corpus/fuzz_read/0b56bdf9c3edf634eea90b915fb7130249d38690 new file mode 100644 index 00000000..9532b725 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0b56bdf9c3edf634eea90b915fb7130249d38690 differ diff --git a/fuzz/corpus/fuzz_read/0b5e97c2a679ded65e78983437288769ebffe980 b/fuzz/corpus/fuzz_read/0b5e97c2a679ded65e78983437288769ebffe980 new file mode 100644 index 00000000..a3b928d7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0b5e97c2a679ded65e78983437288769ebffe980 differ diff --git a/fuzz/corpus/fuzz_read/0be58b6f96ffb8038b18908db3453ab200726b3f b/fuzz/corpus/fuzz_read/0be58b6f96ffb8038b18908db3453ab200726b3f new file mode 100644 index 00000000..ee3de0ea Binary files /dev/null and b/fuzz/corpus/fuzz_read/0be58b6f96ffb8038b18908db3453ab200726b3f differ diff --git a/fuzz/corpus/fuzz_read/0c1745136698832abe5280679b54093013e946b1 b/fuzz/corpus/fuzz_read/0c1745136698832abe5280679b54093013e946b1 new file mode 100644 index 00000000..dfda6983 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0c1745136698832abe5280679b54093013e946b1 differ diff --git a/fuzz/corpus/fuzz_read/0c6d0e7a5dc104a4b3fba767515cf6dcca1f2f54 b/fuzz/corpus/fuzz_read/0c6d0e7a5dc104a4b3fba767515cf6dcca1f2f54 new file mode 100644 index 00000000..d1e876a7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0c6d0e7a5dc104a4b3fba767515cf6dcca1f2f54 differ diff --git a/fuzz/corpus/fuzz_read/0cc677435d79d05b4400a1a1a961d30d7a12c9e3 b/fuzz/corpus/fuzz_read/0cc677435d79d05b4400a1a1a961d30d7a12c9e3 new file mode 100644 index 00000000..2a936669 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0cc677435d79d05b4400a1a1a961d30d7a12c9e3 differ diff --git a/fuzz/corpus/fuzz_read/0d1144b245671ffc3aac283947bb3b135e74bb1e b/fuzz/corpus/fuzz_read/0d1144b245671ffc3aac283947bb3b135e74bb1e new file mode 100644 index 00000000..452e9010 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0d1144b245671ffc3aac283947bb3b135e74bb1e differ diff --git a/fuzz/corpus/fuzz_read/0d277083394331b09af009959e659bbb80a1552e b/fuzz/corpus/fuzz_read/0d277083394331b09af009959e659bbb80a1552e new file mode 100644 index 00000000..fc0e60ba Binary files /dev/null and b/fuzz/corpus/fuzz_read/0d277083394331b09af009959e659bbb80a1552e differ diff --git a/fuzz/corpus/fuzz_read/0d2a2122da9090ccfb44deddb16b8826e40e17df b/fuzz/corpus/fuzz_read/0d2a2122da9090ccfb44deddb16b8826e40e17df new file mode 100644 index 00000000..702c5864 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0d2a2122da9090ccfb44deddb16b8826e40e17df differ diff --git a/fuzz/corpus/fuzz_read/0d58bd0f63bc8deea66be9d0b8efc84ea3feba0b b/fuzz/corpus/fuzz_read/0d58bd0f63bc8deea66be9d0b8efc84ea3feba0b new file mode 100644 index 00000000..fc43bc13 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0d58bd0f63bc8deea66be9d0b8efc84ea3feba0b differ diff --git a/fuzz/corpus/fuzz_read/0d682f4cefeb60f0edc832eca02af9874bd7ada9 b/fuzz/corpus/fuzz_read/0d682f4cefeb60f0edc832eca02af9874bd7ada9 new file mode 100644 index 00000000..add4dad3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0d682f4cefeb60f0edc832eca02af9874bd7ada9 differ diff --git a/fuzz/corpus/fuzz_read/0da84e8b65408bd75d9a83137d89ccbd2ff817f3 b/fuzz/corpus/fuzz_read/0da84e8b65408bd75d9a83137d89ccbd2ff817f3 new file mode 100644 index 00000000..3d567fb5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0da84e8b65408bd75d9a83137d89ccbd2ff817f3 differ diff --git a/fuzz/corpus/fuzz_read/0db6baffcd3b4f71cf2a637a137e283033d81f6a b/fuzz/corpus/fuzz_read/0db6baffcd3b4f71cf2a637a137e283033d81f6a new file mode 100644 index 00000000..a74dc9e1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0db6baffcd3b4f71cf2a637a137e283033d81f6a differ diff --git a/fuzz/corpus/fuzz_read/0dc2f5f855f7cf5397b555aac8257d1140d96093 b/fuzz/corpus/fuzz_read/0dc2f5f855f7cf5397b555aac8257d1140d96093 new file mode 100644 index 00000000..80ca3cdb Binary files /dev/null and b/fuzz/corpus/fuzz_read/0dc2f5f855f7cf5397b555aac8257d1140d96093 differ diff --git a/fuzz/corpus/fuzz_read/0de495a9f807d70841b15bc2bc4a19ad3f606aaa b/fuzz/corpus/fuzz_read/0de495a9f807d70841b15bc2bc4a19ad3f606aaa new file mode 100644 index 00000000..b61d6e7f Binary files /dev/null and b/fuzz/corpus/fuzz_read/0de495a9f807d70841b15bc2bc4a19ad3f606aaa differ diff --git a/fuzz/corpus/fuzz_read/0e989644e220a3cb6d457c78e1097063878b75a9 b/fuzz/corpus/fuzz_read/0e989644e220a3cb6d457c78e1097063878b75a9 new file mode 100644 index 00000000..2211ef6c Binary files /dev/null and b/fuzz/corpus/fuzz_read/0e989644e220a3cb6d457c78e1097063878b75a9 differ diff --git a/fuzz/corpus/fuzz_read/0ef85242ce142fc7f182fd12a7c9c9d0147dbc82 b/fuzz/corpus/fuzz_read/0ef85242ce142fc7f182fd12a7c9c9d0147dbc82 new file mode 100644 index 00000000..2c8d0f96 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0ef85242ce142fc7f182fd12a7c9c9d0147dbc82 differ diff --git a/fuzz/corpus/fuzz_read/0f508d29a37f0e07b73ec88d84b45b475f186e90 b/fuzz/corpus/fuzz_read/0f508d29a37f0e07b73ec88d84b45b475f186e90 new file mode 100644 index 00000000..35068e27 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0f508d29a37f0e07b73ec88d84b45b475f186e90 differ diff --git a/fuzz/corpus/fuzz_read/0ff1ffcc2f73d5fe3ab543e0eeedab6b2157f7d1 b/fuzz/corpus/fuzz_read/0ff1ffcc2f73d5fe3ab543e0eeedab6b2157f7d1 new file mode 100644 index 00000000..00c58a08 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0ff1ffcc2f73d5fe3ab543e0eeedab6b2157f7d1 differ diff --git a/fuzz/corpus/fuzz_read/0ff388b04b1cebf5429fc2b2b5161f96343680c0 b/fuzz/corpus/fuzz_read/0ff388b04b1cebf5429fc2b2b5161f96343680c0 new file mode 100644 index 00000000..2a955ec0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0ff388b04b1cebf5429fc2b2b5161f96343680c0 differ diff --git a/fuzz/corpus/fuzz_read/0ff663ec322f9ed36b8c6463abdf1af50eeb17ed b/fuzz/corpus/fuzz_read/0ff663ec322f9ed36b8c6463abdf1af50eeb17ed new file mode 100644 index 00000000..4bfeda14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/0ff663ec322f9ed36b8c6463abdf1af50eeb17ed differ diff --git a/fuzz/corpus/fuzz_read/11697aab68c77c945bd2a96dcc3f4677617b7183 b/fuzz/corpus/fuzz_read/11697aab68c77c945bd2a96dcc3f4677617b7183 new file mode 100644 index 00000000..972818ca Binary files /dev/null and b/fuzz/corpus/fuzz_read/11697aab68c77c945bd2a96dcc3f4677617b7183 differ diff --git a/fuzz/corpus/fuzz_read/11b90b1352be2e9fbd9c2ed575ef9c6318169e1b b/fuzz/corpus/fuzz_read/11b90b1352be2e9fbd9c2ed575ef9c6318169e1b new file mode 100644 index 00000000..8526f553 Binary files /dev/null and b/fuzz/corpus/fuzz_read/11b90b1352be2e9fbd9c2ed575ef9c6318169e1b differ diff --git a/fuzz/corpus/fuzz_read/120ce171809fadcdde6a6a1e88d45d30e9c0d5fe b/fuzz/corpus/fuzz_read/120ce171809fadcdde6a6a1e88d45d30e9c0d5fe new file mode 100644 index 00000000..0603e274 Binary files /dev/null and b/fuzz/corpus/fuzz_read/120ce171809fadcdde6a6a1e88d45d30e9c0d5fe differ diff --git a/fuzz/corpus/fuzz_read/122230c2da8e2f990382e86029ca7db3d74bedaf b/fuzz/corpus/fuzz_read/122230c2da8e2f990382e86029ca7db3d74bedaf new file mode 100644 index 00000000..da3d4a8c Binary files /dev/null and b/fuzz/corpus/fuzz_read/122230c2da8e2f990382e86029ca7db3d74bedaf differ diff --git a/fuzz/corpus/fuzz_read/126bb06edc69cacb8f4ad7e2ad15b2f74768a26d b/fuzz/corpus/fuzz_read/126bb06edc69cacb8f4ad7e2ad15b2f74768a26d new file mode 100644 index 00000000..0dfd2ca2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/126bb06edc69cacb8f4ad7e2ad15b2f74768a26d differ diff --git a/fuzz/corpus/fuzz_read/12f40c129a09e4615b45d5caa8277152d09c308d b/fuzz/corpus/fuzz_read/12f40c129a09e4615b45d5caa8277152d09c308d new file mode 100644 index 00000000..0d831ec2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/12f40c129a09e4615b45d5caa8277152d09c308d differ diff --git a/fuzz/corpus/fuzz_read/130ac25045a553e2bc9f3fee20f7b33286a63ce4 b/fuzz/corpus/fuzz_read/130ac25045a553e2bc9f3fee20f7b33286a63ce4 new file mode 100644 index 00000000..318942b5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/130ac25045a553e2bc9f3fee20f7b33286a63ce4 differ diff --git a/fuzz/corpus/fuzz_read/13aa3f16d34394d8e00db20be962f5103a1817b8 b/fuzz/corpus/fuzz_read/13aa3f16d34394d8e00db20be962f5103a1817b8 new file mode 100644 index 00000000..06880f0d Binary files /dev/null and b/fuzz/corpus/fuzz_read/13aa3f16d34394d8e00db20be962f5103a1817b8 differ diff --git a/fuzz/corpus/fuzz_read/13cc7e70a9e08f09ce2fda41d6e0f9d642c59cc0 b/fuzz/corpus/fuzz_read/13cc7e70a9e08f09ce2fda41d6e0f9d642c59cc0 new file mode 100644 index 00000000..0b27a265 Binary files /dev/null and b/fuzz/corpus/fuzz_read/13cc7e70a9e08f09ce2fda41d6e0f9d642c59cc0 differ diff --git a/fuzz/corpus/fuzz_read/13d3abd44bc292c29dd47704c95d0aaea48dfafd b/fuzz/corpus/fuzz_read/13d3abd44bc292c29dd47704c95d0aaea48dfafd new file mode 100644 index 00000000..9938c455 Binary files /dev/null and b/fuzz/corpus/fuzz_read/13d3abd44bc292c29dd47704c95d0aaea48dfafd differ diff --git a/fuzz/corpus/fuzz_read/14d7adc4fc63df47e5de468d17c814312615f5ca b/fuzz/corpus/fuzz_read/14d7adc4fc63df47e5de468d17c814312615f5ca new file mode 100644 index 00000000..06668d5b Binary files /dev/null and b/fuzz/corpus/fuzz_read/14d7adc4fc63df47e5de468d17c814312615f5ca differ diff --git a/fuzz/corpus/fuzz_read/14fa4bcd5cd3fe1face15a8040f14c92b1b3389f b/fuzz/corpus/fuzz_read/14fa4bcd5cd3fe1face15a8040f14c92b1b3389f new file mode 100644 index 00000000..dddc51af Binary files /dev/null and b/fuzz/corpus/fuzz_read/14fa4bcd5cd3fe1face15a8040f14c92b1b3389f differ diff --git a/fuzz/corpus/fuzz_read/1515511e74918d01032f62c365705cd3308fe47a b/fuzz/corpus/fuzz_read/1515511e74918d01032f62c365705cd3308fe47a new file mode 100644 index 00000000..1ba56c2b Binary files /dev/null and b/fuzz/corpus/fuzz_read/1515511e74918d01032f62c365705cd3308fe47a differ diff --git a/fuzz/corpus/fuzz_read/158b37401ad3fa93d62e0aaef3b9c2876244af80 b/fuzz/corpus/fuzz_read/158b37401ad3fa93d62e0aaef3b9c2876244af80 new file mode 100644 index 00000000..e8c45eb3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/158b37401ad3fa93d62e0aaef3b9c2876244af80 differ diff --git a/fuzz/corpus/fuzz_read/15bdf84dbc2f667c1dad57e93a8d922b22ed2cb3 b/fuzz/corpus/fuzz_read/15bdf84dbc2f667c1dad57e93a8d922b22ed2cb3 new file mode 100644 index 00000000..b8860d91 Binary files /dev/null and b/fuzz/corpus/fuzz_read/15bdf84dbc2f667c1dad57e93a8d922b22ed2cb3 differ diff --git a/fuzz/corpus/fuzz_read/15d82fe5406612cf9ff627abc76bb82a7f23cfd8 b/fuzz/corpus/fuzz_read/15d82fe5406612cf9ff627abc76bb82a7f23cfd8 new file mode 100644 index 00000000..798a6055 Binary files /dev/null and b/fuzz/corpus/fuzz_read/15d82fe5406612cf9ff627abc76bb82a7f23cfd8 differ diff --git a/fuzz/corpus/fuzz_read/1665bfe493194245ceb35c4a00e41c7d415462dd b/fuzz/corpus/fuzz_read/1665bfe493194245ceb35c4a00e41c7d415462dd new file mode 100644 index 00000000..51d8a487 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1665bfe493194245ceb35c4a00e41c7d415462dd differ diff --git a/fuzz/corpus/fuzz_read/1665d53550a3868f614f1281d6b4a298ff0b63ee b/fuzz/corpus/fuzz_read/1665d53550a3868f614f1281d6b4a298ff0b63ee new file mode 100644 index 00000000..1ab6575f Binary files /dev/null and b/fuzz/corpus/fuzz_read/1665d53550a3868f614f1281d6b4a298ff0b63ee differ diff --git a/fuzz/corpus/fuzz_read/1677c5020756276ec5a9401ad5a8474e98a964bc b/fuzz/corpus/fuzz_read/1677c5020756276ec5a9401ad5a8474e98a964bc new file mode 100644 index 00000000..1508ce3d Binary files /dev/null and b/fuzz/corpus/fuzz_read/1677c5020756276ec5a9401ad5a8474e98a964bc differ diff --git a/fuzz/corpus/fuzz_read/16abe201158733ee6f6708a0518d8907d3a537f1 b/fuzz/corpus/fuzz_read/16abe201158733ee6f6708a0518d8907d3a537f1 new file mode 100644 index 00000000..c572709f Binary files /dev/null and b/fuzz/corpus/fuzz_read/16abe201158733ee6f6708a0518d8907d3a537f1 differ diff --git a/fuzz/corpus/fuzz_read/16c2fd556aec6961805863120c8413770ddae11e b/fuzz/corpus/fuzz_read/16c2fd556aec6961805863120c8413770ddae11e new file mode 100644 index 00000000..1033b3d4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/16c2fd556aec6961805863120c8413770ddae11e differ diff --git a/fuzz/corpus/fuzz_read/16e01ec4beaf5994bfd2d8d36d605f67b670bad9 b/fuzz/corpus/fuzz_read/16e01ec4beaf5994bfd2d8d36d605f67b670bad9 new file mode 100644 index 00000000..18643d3a Binary files /dev/null and b/fuzz/corpus/fuzz_read/16e01ec4beaf5994bfd2d8d36d605f67b670bad9 differ diff --git a/fuzz/corpus/fuzz_read/16fd6b39386bdb88d1739ec0b3eb7904c7582703 b/fuzz/corpus/fuzz_read/16fd6b39386bdb88d1739ec0b3eb7904c7582703 new file mode 100644 index 00000000..560bf548 Binary files /dev/null and b/fuzz/corpus/fuzz_read/16fd6b39386bdb88d1739ec0b3eb7904c7582703 differ diff --git a/fuzz/corpus/fuzz_read/170514175eb978d0d7993a2a12abf610d5a42e4c b/fuzz/corpus/fuzz_read/170514175eb978d0d7993a2a12abf610d5a42e4c new file mode 100644 index 00000000..2f92d474 Binary files /dev/null and b/fuzz/corpus/fuzz_read/170514175eb978d0d7993a2a12abf610d5a42e4c differ diff --git a/fuzz/corpus/fuzz_read/1710a7483aa62dcf376a3cfb970c054fc945084b b/fuzz/corpus/fuzz_read/1710a7483aa62dcf376a3cfb970c054fc945084b new file mode 100644 index 00000000..c9d57cd7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1710a7483aa62dcf376a3cfb970c054fc945084b differ diff --git a/fuzz/corpus/fuzz_read/171b4d9fd491a71d0975e03cdad3e72213486fc7 b/fuzz/corpus/fuzz_read/171b4d9fd491a71d0975e03cdad3e72213486fc7 new file mode 100644 index 00000000..62142577 Binary files /dev/null and b/fuzz/corpus/fuzz_read/171b4d9fd491a71d0975e03cdad3e72213486fc7 differ diff --git a/fuzz/corpus/fuzz_read/17e3e0901d6cfb16211598f20c493259a123cee7 b/fuzz/corpus/fuzz_read/17e3e0901d6cfb16211598f20c493259a123cee7 new file mode 100644 index 00000000..571d12d9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/17e3e0901d6cfb16211598f20c493259a123cee7 differ diff --git a/fuzz/corpus/fuzz_read/17f5c93ffbd65ec782e24340bd1aebf7b9e9170a b/fuzz/corpus/fuzz_read/17f5c93ffbd65ec782e24340bd1aebf7b9e9170a new file mode 100644 index 00000000..59b54e8a Binary files /dev/null and b/fuzz/corpus/fuzz_read/17f5c93ffbd65ec782e24340bd1aebf7b9e9170a differ diff --git a/fuzz/corpus/fuzz_read/181753db2a2d7404ae15ece6a87d9d5050dc9b98 b/fuzz/corpus/fuzz_read/181753db2a2d7404ae15ece6a87d9d5050dc9b98 new file mode 100644 index 00000000..6ff5d5fe Binary files /dev/null and b/fuzz/corpus/fuzz_read/181753db2a2d7404ae15ece6a87d9d5050dc9b98 differ diff --git a/fuzz/corpus/fuzz_read/182d6931a632d6376d08fbf1e2cf3bb97d90f2f9 b/fuzz/corpus/fuzz_read/182d6931a632d6376d08fbf1e2cf3bb97d90f2f9 new file mode 100644 index 00000000..9ac53141 Binary files /dev/null and b/fuzz/corpus/fuzz_read/182d6931a632d6376d08fbf1e2cf3bb97d90f2f9 differ diff --git a/fuzz/corpus/fuzz_read/186d5feae2e7f4e02a1ed4c7422b44577dae21cf b/fuzz/corpus/fuzz_read/186d5feae2e7f4e02a1ed4c7422b44577dae21cf new file mode 100644 index 00000000..dd9a300c Binary files /dev/null and b/fuzz/corpus/fuzz_read/186d5feae2e7f4e02a1ed4c7422b44577dae21cf differ diff --git a/fuzz/corpus/fuzz_read/188a8c07e857c8ab098b2e3c9cd1135f29e5e118 b/fuzz/corpus/fuzz_read/188a8c07e857c8ab098b2e3c9cd1135f29e5e118 new file mode 100644 index 00000000..0442d7a0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/188a8c07e857c8ab098b2e3c9cd1135f29e5e118 differ diff --git a/fuzz/corpus/fuzz_read/18d2ec354a32c3611ee0693f4545b17739cb00e5 b/fuzz/corpus/fuzz_read/18d2ec354a32c3611ee0693f4545b17739cb00e5 new file mode 100644 index 00000000..0c770789 Binary files /dev/null and b/fuzz/corpus/fuzz_read/18d2ec354a32c3611ee0693f4545b17739cb00e5 differ diff --git a/fuzz/corpus/fuzz_read/18eddfcf03c3dcabfff6f3f89460ae932ae59f53 b/fuzz/corpus/fuzz_read/18eddfcf03c3dcabfff6f3f89460ae932ae59f53 new file mode 100644 index 00000000..530e3e7c Binary files /dev/null and b/fuzz/corpus/fuzz_read/18eddfcf03c3dcabfff6f3f89460ae932ae59f53 differ diff --git a/fuzz/corpus/fuzz_read/19061235dcfa9073dc08df07886b441ed51bcafa b/fuzz/corpus/fuzz_read/19061235dcfa9073dc08df07886b441ed51bcafa new file mode 100644 index 00000000..b168dbe6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/19061235dcfa9073dc08df07886b441ed51bcafa differ diff --git a/fuzz/corpus/fuzz_read/193249924a134b3e3b66a015100c8606cb774722 b/fuzz/corpus/fuzz_read/193249924a134b3e3b66a015100c8606cb774722 new file mode 100644 index 00000000..296386c6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/193249924a134b3e3b66a015100c8606cb774722 differ diff --git a/fuzz/corpus/fuzz_read/19393040b41f76e124a14dac108bc88e83c611af b/fuzz/corpus/fuzz_read/19393040b41f76e124a14dac108bc88e83c611af new file mode 100644 index 00000000..36460e0f Binary files /dev/null and b/fuzz/corpus/fuzz_read/19393040b41f76e124a14dac108bc88e83c611af differ diff --git a/fuzz/corpus/fuzz_read/1985f4c07fdf4549072256ddb7d8cfc0cd7e9c25 b/fuzz/corpus/fuzz_read/1985f4c07fdf4549072256ddb7d8cfc0cd7e9c25 new file mode 100644 index 00000000..11d6d803 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1985f4c07fdf4549072256ddb7d8cfc0cd7e9c25 differ diff --git a/fuzz/corpus/fuzz_read/19fc7f922b5e3fc70c2dca5b97b3f210a81bfc91 b/fuzz/corpus/fuzz_read/19fc7f922b5e3fc70c2dca5b97b3f210a81bfc91 new file mode 100644 index 00000000..8a41788d Binary files /dev/null and b/fuzz/corpus/fuzz_read/19fc7f922b5e3fc70c2dca5b97b3f210a81bfc91 differ diff --git a/fuzz/corpus/fuzz_read/1a61e30aa97e14c9920315624c6c7da6a0a44f2d b/fuzz/corpus/fuzz_read/1a61e30aa97e14c9920315624c6c7da6a0a44f2d new file mode 100644 index 00000000..1d548e29 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1a61e30aa97e14c9920315624c6c7da6a0a44f2d differ diff --git a/fuzz/corpus/fuzz_read/1a6f7e012bb8639a02271c54a316b795b2398c6a b/fuzz/corpus/fuzz_read/1a6f7e012bb8639a02271c54a316b795b2398c6a new file mode 100644 index 00000000..d95e5c7e Binary files /dev/null and b/fuzz/corpus/fuzz_read/1a6f7e012bb8639a02271c54a316b795b2398c6a differ diff --git a/fuzz/corpus/fuzz_read/1a71e69c8242eda0e325a1855761f7b18f01a559 b/fuzz/corpus/fuzz_read/1a71e69c8242eda0e325a1855761f7b18f01a559 new file mode 100644 index 00000000..5f4434e1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1a71e69c8242eda0e325a1855761f7b18f01a559 differ diff --git a/fuzz/corpus/fuzz_read/1aceaa9999168909be2244ac93611547fcd0edca b/fuzz/corpus/fuzz_read/1aceaa9999168909be2244ac93611547fcd0edca new file mode 100644 index 00000000..b828bc5a Binary files /dev/null and b/fuzz/corpus/fuzz_read/1aceaa9999168909be2244ac93611547fcd0edca differ diff --git a/fuzz/corpus/fuzz_read/1ad19d9eb2edaee71afc210e839d8dac697654b1 b/fuzz/corpus/fuzz_read/1ad19d9eb2edaee71afc210e839d8dac697654b1 new file mode 100644 index 00000000..2d651cbe Binary files /dev/null and b/fuzz/corpus/fuzz_read/1ad19d9eb2edaee71afc210e839d8dac697654b1 differ diff --git a/fuzz/corpus/fuzz_read/1b2e2e683e425aa4e1c36677be02842b745055ef b/fuzz/corpus/fuzz_read/1b2e2e683e425aa4e1c36677be02842b745055ef new file mode 100644 index 00000000..7d250569 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1b2e2e683e425aa4e1c36677be02842b745055ef differ diff --git a/fuzz/corpus/fuzz_read/1b7913bb716f8a9ae8f38417c787b83153262561 b/fuzz/corpus/fuzz_read/1b7913bb716f8a9ae8f38417c787b83153262561 new file mode 100644 index 00000000..ff4fd7f2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1b7913bb716f8a9ae8f38417c787b83153262561 differ diff --git a/fuzz/corpus/fuzz_read/1bcf7d9bf3c1fdc576b05a2dea77e37fc23adae5 b/fuzz/corpus/fuzz_read/1bcf7d9bf3c1fdc576b05a2dea77e37fc23adae5 new file mode 100644 index 00000000..afeb76b0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1bcf7d9bf3c1fdc576b05a2dea77e37fc23adae5 differ diff --git a/fuzz/corpus/fuzz_read/1be1a162661b63428e6c3433a745175bdbea6c50 b/fuzz/corpus/fuzz_read/1be1a162661b63428e6c3433a745175bdbea6c50 new file mode 100644 index 00000000..3b088ec8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1be1a162661b63428e6c3433a745175bdbea6c50 differ diff --git a/fuzz/corpus/fuzz_read/1bf553d7be0326c58dd8102defd27e0fa0d61be0 b/fuzz/corpus/fuzz_read/1bf553d7be0326c58dd8102defd27e0fa0d61be0 new file mode 100644 index 00000000..fc4e8301 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1bf553d7be0326c58dd8102defd27e0fa0d61be0 differ diff --git a/fuzz/corpus/fuzz_read/1bf6b06f917a1bcdfe535f2061f57044e45bb48b b/fuzz/corpus/fuzz_read/1bf6b06f917a1bcdfe535f2061f57044e45bb48b new file mode 100644 index 00000000..d10518e4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1bf6b06f917a1bcdfe535f2061f57044e45bb48b differ diff --git a/fuzz/corpus/fuzz_read/1c02513a19b98c5fa54a03de32783f90d8bab21e b/fuzz/corpus/fuzz_read/1c02513a19b98c5fa54a03de32783f90d8bab21e new file mode 100644 index 00000000..43a64485 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1c02513a19b98c5fa54a03de32783f90d8bab21e differ diff --git a/fuzz/corpus/fuzz_read/1c2e625dc6fcf94f27c6b267c556a0645f7787ab b/fuzz/corpus/fuzz_read/1c2e625dc6fcf94f27c6b267c556a0645f7787ab new file mode 100644 index 00000000..72d86bc0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1c2e625dc6fcf94f27c6b267c556a0645f7787ab differ diff --git a/fuzz/corpus/fuzz_read/1cc28dc9fe7e9239ab6c21affe0e9de9bd2ffeab b/fuzz/corpus/fuzz_read/1cc28dc9fe7e9239ab6c21affe0e9de9bd2ffeab new file mode 100644 index 00000000..f6098a13 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1cc28dc9fe7e9239ab6c21affe0e9de9bd2ffeab differ diff --git a/fuzz/corpus/fuzz_read/1d36861d353e8a4c29880b1ac0e7729063d09454 b/fuzz/corpus/fuzz_read/1d36861d353e8a4c29880b1ac0e7729063d09454 new file mode 100644 index 00000000..13cc5d45 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1d36861d353e8a4c29880b1ac0e7729063d09454 differ diff --git a/fuzz/corpus/fuzz_read/1d3bec4c0a8a0784c65e5d0cc21b58210acd6720 b/fuzz/corpus/fuzz_read/1d3bec4c0a8a0784c65e5d0cc21b58210acd6720 new file mode 100644 index 00000000..5710c5c2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1d3bec4c0a8a0784c65e5d0cc21b58210acd6720 differ diff --git a/fuzz/corpus/fuzz_read/1d4ffd784afa82defab5325777a24a98bd71966b b/fuzz/corpus/fuzz_read/1d4ffd784afa82defab5325777a24a98bd71966b new file mode 100644 index 00000000..703c6d9e Binary files /dev/null and b/fuzz/corpus/fuzz_read/1d4ffd784afa82defab5325777a24a98bd71966b differ diff --git a/fuzz/corpus/fuzz_read/1d6c6b0c6f29ce0924d56db64de45adf35d0aeba b/fuzz/corpus/fuzz_read/1d6c6b0c6f29ce0924d56db64de45adf35d0aeba new file mode 100644 index 00000000..86caa650 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1d6c6b0c6f29ce0924d56db64de45adf35d0aeba differ diff --git a/fuzz/corpus/fuzz_read/1db51b156ec1d31ca07166c696d64389e49e43fb b/fuzz/corpus/fuzz_read/1db51b156ec1d31ca07166c696d64389e49e43fb new file mode 100644 index 00000000..9eec025c Binary files /dev/null and b/fuzz/corpus/fuzz_read/1db51b156ec1d31ca07166c696d64389e49e43fb differ diff --git a/fuzz/corpus/fuzz_read/1e237415259a1062034dba5da4c86bb8f95859bf b/fuzz/corpus/fuzz_read/1e237415259a1062034dba5da4c86bb8f95859bf new file mode 100644 index 00000000..b5a53fcb Binary files /dev/null and b/fuzz/corpus/fuzz_read/1e237415259a1062034dba5da4c86bb8f95859bf differ diff --git a/fuzz/corpus/fuzz_read/1ea21b2c63847fe015213c4fd05defd924b3bb0f b/fuzz/corpus/fuzz_read/1ea21b2c63847fe015213c4fd05defd924b3bb0f new file mode 100644 index 00000000..ecea9328 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1ea21b2c63847fe015213c4fd05defd924b3bb0f differ diff --git a/fuzz/corpus/fuzz_read/1ecf6ecd9c32407f43507b2832f73648e9fe18f0 b/fuzz/corpus/fuzz_read/1ecf6ecd9c32407f43507b2832f73648e9fe18f0 new file mode 100644 index 00000000..8a9b08e7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1ecf6ecd9c32407f43507b2832f73648e9fe18f0 differ diff --git a/fuzz/corpus/fuzz_read/1ed073ff3b34d3dd27ce5ff459dc1506eb1083da b/fuzz/corpus/fuzz_read/1ed073ff3b34d3dd27ce5ff459dc1506eb1083da new file mode 100644 index 00000000..14f599d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1ed073ff3b34d3dd27ce5ff459dc1506eb1083da differ diff --git a/fuzz/corpus/fuzz_read/1ed5297da00126760b814e4877f5a66c86a4303d b/fuzz/corpus/fuzz_read/1ed5297da00126760b814e4877f5a66c86a4303d new file mode 100644 index 00000000..6ff949e0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1ed5297da00126760b814e4877f5a66c86a4303d differ diff --git a/fuzz/corpus/fuzz_read/1f384ad37b0d928a35d8005c9782fd95cb99a4a0 b/fuzz/corpus/fuzz_read/1f384ad37b0d928a35d8005c9782fd95cb99a4a0 new file mode 100644 index 00000000..a4b6e5f4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1f384ad37b0d928a35d8005c9782fd95cb99a4a0 differ diff --git a/fuzz/corpus/fuzz_read/1f3f63863d9d71b00de9df0047cc70e7370b678e b/fuzz/corpus/fuzz_read/1f3f63863d9d71b00de9df0047cc70e7370b678e new file mode 100644 index 00000000..e525e0fb Binary files /dev/null and b/fuzz/corpus/fuzz_read/1f3f63863d9d71b00de9df0047cc70e7370b678e differ diff --git a/fuzz/corpus/fuzz_read/1f5072afbeb9be5bb9b18028cf43e98b6dc59c8b b/fuzz/corpus/fuzz_read/1f5072afbeb9be5bb9b18028cf43e98b6dc59c8b new file mode 100644 index 00000000..a8809bb5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1f5072afbeb9be5bb9b18028cf43e98b6dc59c8b differ diff --git a/fuzz/corpus/fuzz_read/1f564ca5abe259ee1fe763406cd0fa0b889f060b b/fuzz/corpus/fuzz_read/1f564ca5abe259ee1fe763406cd0fa0b889f060b new file mode 100644 index 00000000..5e953c6f Binary files /dev/null and b/fuzz/corpus/fuzz_read/1f564ca5abe259ee1fe763406cd0fa0b889f060b differ diff --git a/fuzz/corpus/fuzz_read/1f9ce195596787511d49feb097e593a5521db365 b/fuzz/corpus/fuzz_read/1f9ce195596787511d49feb097e593a5521db365 new file mode 100644 index 00000000..9362c080 Binary files /dev/null and b/fuzz/corpus/fuzz_read/1f9ce195596787511d49feb097e593a5521db365 differ diff --git a/fuzz/corpus/fuzz_read/2004c0e901b8a5fe2578631a70bc78ddf34e8522 b/fuzz/corpus/fuzz_read/2004c0e901b8a5fe2578631a70bc78ddf34e8522 new file mode 100644 index 00000000..8aa2d440 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2004c0e901b8a5fe2578631a70bc78ddf34e8522 differ diff --git a/fuzz/corpus/fuzz_read/200f234aa38527a86290e3fdd5fc994d38e8e061 b/fuzz/corpus/fuzz_read/200f234aa38527a86290e3fdd5fc994d38e8e061 new file mode 100644 index 00000000..9003abc2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/200f234aa38527a86290e3fdd5fc994d38e8e061 differ diff --git a/fuzz/corpus/fuzz_read/201161c6917ce1fde410765ff899056257d8a219 b/fuzz/corpus/fuzz_read/201161c6917ce1fde410765ff899056257d8a219 new file mode 100644 index 00000000..f10f389b Binary files /dev/null and b/fuzz/corpus/fuzz_read/201161c6917ce1fde410765ff899056257d8a219 differ diff --git a/fuzz/corpus/fuzz_read/2041565353bd62b04c03bff0a8d3c799dc624f44 b/fuzz/corpus/fuzz_read/2041565353bd62b04c03bff0a8d3c799dc624f44 new file mode 100644 index 00000000..2ac8d898 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2041565353bd62b04c03bff0a8d3c799dc624f44 differ diff --git a/fuzz/corpus/fuzz_read/2046bbf8979738c3f2c0c2e9d2089ca013b6cce9 b/fuzz/corpus/fuzz_read/2046bbf8979738c3f2c0c2e9d2089ca013b6cce9 new file mode 100644 index 00000000..9a76db45 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2046bbf8979738c3f2c0c2e9d2089ca013b6cce9 differ diff --git a/fuzz/corpus/fuzz_read/2083ae0a13324a813fa4976e9a6c77c0a781065a b/fuzz/corpus/fuzz_read/2083ae0a13324a813fa4976e9a6c77c0a781065a new file mode 100644 index 00000000..f49222d5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2083ae0a13324a813fa4976e9a6c77c0a781065a differ diff --git a/fuzz/corpus/fuzz_read/2084632388cd8fee4ba34a72a936348e31c1f94a b/fuzz/corpus/fuzz_read/2084632388cd8fee4ba34a72a936348e31c1f94a new file mode 100644 index 00000000..1c0edc2f Binary files /dev/null and b/fuzz/corpus/fuzz_read/2084632388cd8fee4ba34a72a936348e31c1f94a differ diff --git a/fuzz/corpus/fuzz_read/20e171d4b9a96e51a1700a84560d68ae84ad1086 b/fuzz/corpus/fuzz_read/20e171d4b9a96e51a1700a84560d68ae84ad1086 new file mode 100644 index 00000000..4cdeab4c Binary files /dev/null and b/fuzz/corpus/fuzz_read/20e171d4b9a96e51a1700a84560d68ae84ad1086 differ diff --git a/fuzz/corpus/fuzz_read/20f25af80799ea1d013a6cdf25001200c5a78087 b/fuzz/corpus/fuzz_read/20f25af80799ea1d013a6cdf25001200c5a78087 new file mode 100644 index 00000000..d94a3056 Binary files /dev/null and b/fuzz/corpus/fuzz_read/20f25af80799ea1d013a6cdf25001200c5a78087 differ diff --git a/fuzz/corpus/fuzz_read/216afea0dd585a33667cb1b7c14014e66774a4c5 b/fuzz/corpus/fuzz_read/216afea0dd585a33667cb1b7c14014e66774a4c5 new file mode 100644 index 00000000..676ebcba Binary files /dev/null and b/fuzz/corpus/fuzz_read/216afea0dd585a33667cb1b7c14014e66774a4c5 differ diff --git a/fuzz/corpus/fuzz_read/2179981e7095696b489e59f73ee9f4b49d25b62d b/fuzz/corpus/fuzz_read/2179981e7095696b489e59f73ee9f4b49d25b62d new file mode 100644 index 00000000..9c5f8694 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2179981e7095696b489e59f73ee9f4b49d25b62d differ diff --git a/fuzz/corpus/fuzz_read/21c75f9379bd6bac317db47b59753d198e3a197b b/fuzz/corpus/fuzz_read/21c75f9379bd6bac317db47b59753d198e3a197b new file mode 100644 index 00000000..e45905a9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/21c75f9379bd6bac317db47b59753d198e3a197b differ diff --git a/fuzz/corpus/fuzz_read/223f357e0beaf316ab1a625409513891efb04842 b/fuzz/corpus/fuzz_read/223f357e0beaf316ab1a625409513891efb04842 new file mode 100644 index 00000000..fbad4148 Binary files /dev/null and b/fuzz/corpus/fuzz_read/223f357e0beaf316ab1a625409513891efb04842 differ diff --git a/fuzz/corpus/fuzz_read/22c2ad6a5a1e0d95264dfa180ee05d3bcb2dfc70 b/fuzz/corpus/fuzz_read/22c2ad6a5a1e0d95264dfa180ee05d3bcb2dfc70 new file mode 100644 index 00000000..ef42d4c9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/22c2ad6a5a1e0d95264dfa180ee05d3bcb2dfc70 differ diff --git a/fuzz/corpus/fuzz_read/2396e62780e3dd047e9a4a393c2862b7ed15137d b/fuzz/corpus/fuzz_read/2396e62780e3dd047e9a4a393c2862b7ed15137d new file mode 100644 index 00000000..eeecd1ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/2396e62780e3dd047e9a4a393c2862b7ed15137d differ diff --git a/fuzz/corpus/fuzz_read/239997ce57459121c21fbad61a6454b98e69b06a b/fuzz/corpus/fuzz_read/239997ce57459121c21fbad61a6454b98e69b06a new file mode 100644 index 00000000..8d2c622b Binary files /dev/null and b/fuzz/corpus/fuzz_read/239997ce57459121c21fbad61a6454b98e69b06a differ diff --git a/fuzz/corpus/fuzz_read/23bb428f02099b7c06d2229420bbbd42e29897ef b/fuzz/corpus/fuzz_read/23bb428f02099b7c06d2229420bbbd42e29897ef new file mode 100644 index 00000000..336fc726 Binary files /dev/null and b/fuzz/corpus/fuzz_read/23bb428f02099b7c06d2229420bbbd42e29897ef differ diff --git a/fuzz/corpus/fuzz_read/2482e355719b5a409d3c2c9a746a47db07fd9b5a b/fuzz/corpus/fuzz_read/2482e355719b5a409d3c2c9a746a47db07fd9b5a new file mode 100644 index 00000000..7e6a4f60 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2482e355719b5a409d3c2c9a746a47db07fd9b5a differ diff --git a/fuzz/corpus/fuzz_read/25a6a47a5908a84c1584d767cdcfce99f6b0cf3d b/fuzz/corpus/fuzz_read/25a6a47a5908a84c1584d767cdcfce99f6b0cf3d new file mode 100644 index 00000000..5295a631 Binary files /dev/null and b/fuzz/corpus/fuzz_read/25a6a47a5908a84c1584d767cdcfce99f6b0cf3d differ diff --git a/fuzz/corpus/fuzz_read/25b365a85e3f57a99a1ed4867edacff0ce7a5593 b/fuzz/corpus/fuzz_read/25b365a85e3f57a99a1ed4867edacff0ce7a5593 new file mode 100644 index 00000000..375ce8b5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/25b365a85e3f57a99a1ed4867edacff0ce7a5593 differ diff --git a/fuzz/corpus/fuzz_read/25d9e0fa36a4be6de95f52ef86978b24b0f6a711 b/fuzz/corpus/fuzz_read/25d9e0fa36a4be6de95f52ef86978b24b0f6a711 new file mode 100644 index 00000000..beff241c Binary files /dev/null and b/fuzz/corpus/fuzz_read/25d9e0fa36a4be6de95f52ef86978b24b0f6a711 differ diff --git a/fuzz/corpus/fuzz_read/25e57b114e18f24393d633f192ed6235d581d5a9 b/fuzz/corpus/fuzz_read/25e57b114e18f24393d633f192ed6235d581d5a9 new file mode 100644 index 00000000..b2226201 Binary files /dev/null and b/fuzz/corpus/fuzz_read/25e57b114e18f24393d633f192ed6235d581d5a9 differ diff --git a/fuzz/corpus/fuzz_read/260784e675d0c3b8d362fb4ad550ef92040bfa7a b/fuzz/corpus/fuzz_read/260784e675d0c3b8d362fb4ad550ef92040bfa7a new file mode 100644 index 00000000..810e5cca Binary files /dev/null and b/fuzz/corpus/fuzz_read/260784e675d0c3b8d362fb4ad550ef92040bfa7a differ diff --git a/fuzz/corpus/fuzz_read/26256f13709d47dee8834a16b46c853c5e75c6ae b/fuzz/corpus/fuzz_read/26256f13709d47dee8834a16b46c853c5e75c6ae new file mode 100644 index 00000000..4a45a59b Binary files /dev/null and b/fuzz/corpus/fuzz_read/26256f13709d47dee8834a16b46c853c5e75c6ae differ diff --git a/fuzz/corpus/fuzz_read/265a321c5c7b512bff0ea9c924b90fff919d946b b/fuzz/corpus/fuzz_read/265a321c5c7b512bff0ea9c924b90fff919d946b new file mode 100644 index 00000000..c88e4d34 Binary files /dev/null and b/fuzz/corpus/fuzz_read/265a321c5c7b512bff0ea9c924b90fff919d946b differ diff --git a/fuzz/corpus/fuzz_read/2665b8bc992e229195206ede403d1de15c26330d b/fuzz/corpus/fuzz_read/2665b8bc992e229195206ede403d1de15c26330d new file mode 100644 index 00000000..ff4c10c6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2665b8bc992e229195206ede403d1de15c26330d differ diff --git a/fuzz/corpus/fuzz_read/268ee8a9dbb2194d67ee37f224efea82424f8656 b/fuzz/corpus/fuzz_read/268ee8a9dbb2194d67ee37f224efea82424f8656 new file mode 100644 index 00000000..054260e5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/268ee8a9dbb2194d67ee37f224efea82424f8656 differ diff --git a/fuzz/corpus/fuzz_read/26c6aab37d79b2764b720292e6654265fabda7fb b/fuzz/corpus/fuzz_read/26c6aab37d79b2764b720292e6654265fabda7fb new file mode 100644 index 00000000..4f53ad55 Binary files /dev/null and b/fuzz/corpus/fuzz_read/26c6aab37d79b2764b720292e6654265fabda7fb differ diff --git a/fuzz/corpus/fuzz_read/26ce865d37a8ce3ad1dcd97df2a187e7a7e0db10 b/fuzz/corpus/fuzz_read/26ce865d37a8ce3ad1dcd97df2a187e7a7e0db10 new file mode 100644 index 00000000..49ecfa35 Binary files /dev/null and b/fuzz/corpus/fuzz_read/26ce865d37a8ce3ad1dcd97df2a187e7a7e0db10 differ diff --git a/fuzz/corpus/fuzz_read/26e320b70eeefee79d33d7008c716fab629ffe81 b/fuzz/corpus/fuzz_read/26e320b70eeefee79d33d7008c716fab629ffe81 new file mode 100644 index 00000000..bc2321e9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/26e320b70eeefee79d33d7008c716fab629ffe81 differ diff --git a/fuzz/corpus/fuzz_read/272fbfa296e2a518ae389741c984368f95e5c416 b/fuzz/corpus/fuzz_read/272fbfa296e2a518ae389741c984368f95e5c416 new file mode 100644 index 00000000..4074f182 Binary files /dev/null and b/fuzz/corpus/fuzz_read/272fbfa296e2a518ae389741c984368f95e5c416 differ diff --git a/fuzz/corpus/fuzz_read/27387ebc4ed9b93a09f6a21a55faa221d0110432 b/fuzz/corpus/fuzz_read/27387ebc4ed9b93a09f6a21a55faa221d0110432 new file mode 100644 index 00000000..7a58c942 Binary files /dev/null and b/fuzz/corpus/fuzz_read/27387ebc4ed9b93a09f6a21a55faa221d0110432 differ diff --git a/fuzz/corpus/fuzz_read/2747639e0c799d7dc59b3a41849d3bee5cb1cd1e b/fuzz/corpus/fuzz_read/2747639e0c799d7dc59b3a41849d3bee5cb1cd1e new file mode 100644 index 00000000..9744e739 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2747639e0c799d7dc59b3a41849d3bee5cb1cd1e differ diff --git a/fuzz/corpus/fuzz_read/27545f7004193ee74e87d1bce3c425afc4decfaa b/fuzz/corpus/fuzz_read/27545f7004193ee74e87d1bce3c425afc4decfaa new file mode 100644 index 00000000..3c8dda4c Binary files /dev/null and b/fuzz/corpus/fuzz_read/27545f7004193ee74e87d1bce3c425afc4decfaa differ diff --git a/fuzz/corpus/fuzz_read/280a066527bc0bfe57eba50d555826d8af1f3388 b/fuzz/corpus/fuzz_read/280a066527bc0bfe57eba50d555826d8af1f3388 new file mode 100644 index 00000000..97135aa8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/280a066527bc0bfe57eba50d555826d8af1f3388 differ diff --git a/fuzz/corpus/fuzz_read/283274ee893f0354cc0a7c7739621ce99f4c9956 b/fuzz/corpus/fuzz_read/283274ee893f0354cc0a7c7739621ce99f4c9956 new file mode 100644 index 00000000..23e239cb Binary files /dev/null and b/fuzz/corpus/fuzz_read/283274ee893f0354cc0a7c7739621ce99f4c9956 differ diff --git a/fuzz/corpus/fuzz_read/28420a726b60e16af243e50f343627659d0bf5f1 b/fuzz/corpus/fuzz_read/28420a726b60e16af243e50f343627659d0bf5f1 new file mode 100644 index 00000000..4f9704b9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/28420a726b60e16af243e50f343627659d0bf5f1 differ diff --git a/fuzz/corpus/fuzz_read/2912babc6675e7a607fc66ed9f49b3e0482eb24b b/fuzz/corpus/fuzz_read/2912babc6675e7a607fc66ed9f49b3e0482eb24b new file mode 100644 index 00000000..05f28222 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2912babc6675e7a607fc66ed9f49b3e0482eb24b differ diff --git a/fuzz/corpus/fuzz_read/29203b6c35c4d5cba70b7c6f4c80a8841b0ca0c7 b/fuzz/corpus/fuzz_read/29203b6c35c4d5cba70b7c6f4c80a8841b0ca0c7 new file mode 100644 index 00000000..1676a413 Binary files /dev/null and b/fuzz/corpus/fuzz_read/29203b6c35c4d5cba70b7c6f4c80a8841b0ca0c7 differ diff --git a/fuzz/corpus/fuzz_read/293fdc3da9cc2e05fe44e025114e44907211669c b/fuzz/corpus/fuzz_read/293fdc3da9cc2e05fe44e025114e44907211669c new file mode 100644 index 00000000..e9ff72ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/293fdc3da9cc2e05fe44e025114e44907211669c differ diff --git a/fuzz/corpus/fuzz_read/294ad4ffc350e956b61dade53b79e771d8626602 b/fuzz/corpus/fuzz_read/294ad4ffc350e956b61dade53b79e771d8626602 new file mode 100644 index 00000000..bf4ab514 Binary files /dev/null and b/fuzz/corpus/fuzz_read/294ad4ffc350e956b61dade53b79e771d8626602 differ diff --git a/fuzz/corpus/fuzz_read/297fb0598620437e14f35cfafe7127ab3e1c8e41 b/fuzz/corpus/fuzz_read/297fb0598620437e14f35cfafe7127ab3e1c8e41 new file mode 100644 index 00000000..4406efa0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/297fb0598620437e14f35cfafe7127ab3e1c8e41 differ diff --git a/fuzz/corpus/fuzz_read/298365bb7e60d51c7ffb286d236dd65365b22f78 b/fuzz/corpus/fuzz_read/298365bb7e60d51c7ffb286d236dd65365b22f78 new file mode 100644 index 00000000..1ecec01a Binary files /dev/null and b/fuzz/corpus/fuzz_read/298365bb7e60d51c7ffb286d236dd65365b22f78 differ diff --git a/fuzz/corpus/fuzz_read/299d3aac415ec86c89a30a597e2af6fbd28f945b b/fuzz/corpus/fuzz_read/299d3aac415ec86c89a30a597e2af6fbd28f945b new file mode 100644 index 00000000..483c726a Binary files /dev/null and b/fuzz/corpus/fuzz_read/299d3aac415ec86c89a30a597e2af6fbd28f945b differ diff --git a/fuzz/corpus/fuzz_read/29e74be58599af5557ea76cc83626312b3fca891 b/fuzz/corpus/fuzz_read/29e74be58599af5557ea76cc83626312b3fca891 new file mode 100644 index 00000000..edcde099 Binary files /dev/null and b/fuzz/corpus/fuzz_read/29e74be58599af5557ea76cc83626312b3fca891 differ diff --git a/fuzz/corpus/fuzz_read/29ed40a6620dba5c013a2979154fd9deaa8da8c4 b/fuzz/corpus/fuzz_read/29ed40a6620dba5c013a2979154fd9deaa8da8c4 new file mode 100644 index 00000000..7330f0cd Binary files /dev/null and b/fuzz/corpus/fuzz_read/29ed40a6620dba5c013a2979154fd9deaa8da8c4 differ diff --git a/fuzz/corpus/fuzz_read/2a1de939da83e1d474e359565ef8e90b29992211 b/fuzz/corpus/fuzz_read/2a1de939da83e1d474e359565ef8e90b29992211 new file mode 100644 index 00000000..4fa328c3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2a1de939da83e1d474e359565ef8e90b29992211 differ diff --git a/fuzz/corpus/fuzz_read/2a5012314de68c46fbf1b3d6e5236d841a052324 b/fuzz/corpus/fuzz_read/2a5012314de68c46fbf1b3d6e5236d841a052324 new file mode 100644 index 00000000..f6385cf5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2a5012314de68c46fbf1b3d6e5236d841a052324 differ diff --git a/fuzz/corpus/fuzz_read/2a66a19f1eb45cd927b20855b1d97aa256b2e7dd b/fuzz/corpus/fuzz_read/2a66a19f1eb45cd927b20855b1d97aa256b2e7dd new file mode 100644 index 00000000..c50ce5f6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2a66a19f1eb45cd927b20855b1d97aa256b2e7dd differ diff --git a/fuzz/corpus/fuzz_read/2ad185a1f274f5119fe0e777c319359df69101e2 b/fuzz/corpus/fuzz_read/2ad185a1f274f5119fe0e777c319359df69101e2 new file mode 100644 index 00000000..c9a4d952 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2ad185a1f274f5119fe0e777c319359df69101e2 differ diff --git a/fuzz/corpus/fuzz_read/2b680e0fe0110476ffb27a0f9f6b54cb05cfdc12 b/fuzz/corpus/fuzz_read/2b680e0fe0110476ffb27a0f9f6b54cb05cfdc12 new file mode 100644 index 00000000..703cebf6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2b680e0fe0110476ffb27a0f9f6b54cb05cfdc12 differ diff --git a/fuzz/corpus/fuzz_read/2b8c04b5a83dd06b5fca8c052fa77c967d833a27 b/fuzz/corpus/fuzz_read/2b8c04b5a83dd06b5fca8c052fa77c967d833a27 new file mode 100644 index 00000000..663d9441 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2b8c04b5a83dd06b5fca8c052fa77c967d833a27 differ diff --git a/fuzz/corpus/fuzz_read/2bec754175700d7cccfc665bb06001d00f4d96d6 b/fuzz/corpus/fuzz_read/2bec754175700d7cccfc665bb06001d00f4d96d6 new file mode 100644 index 00000000..cd4b370c Binary files /dev/null and b/fuzz/corpus/fuzz_read/2bec754175700d7cccfc665bb06001d00f4d96d6 differ diff --git a/fuzz/corpus/fuzz_read/2c8e2d04386675772eec828036104f874fc8260a b/fuzz/corpus/fuzz_read/2c8e2d04386675772eec828036104f874fc8260a new file mode 100644 index 00000000..c55adf18 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2c8e2d04386675772eec828036104f874fc8260a differ diff --git a/fuzz/corpus/fuzz_read/2cfd5d54821bbe0497c0d3b21162562c97a156c1 b/fuzz/corpus/fuzz_read/2cfd5d54821bbe0497c0d3b21162562c97a156c1 new file mode 100644 index 00000000..02dd3a56 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2cfd5d54821bbe0497c0d3b21162562c97a156c1 differ diff --git a/fuzz/corpus/fuzz_read/2d3d3ab494d4baf9017bd0d8aeae4bb441b24615 b/fuzz/corpus/fuzz_read/2d3d3ab494d4baf9017bd0d8aeae4bb441b24615 new file mode 100644 index 00000000..21c95c82 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2d3d3ab494d4baf9017bd0d8aeae4bb441b24615 differ diff --git a/fuzz/corpus/fuzz_read/2d579dd01ce24e16d30d1b5c1e039616f7c7a74e b/fuzz/corpus/fuzz_read/2d579dd01ce24e16d30d1b5c1e039616f7c7a74e new file mode 100644 index 00000000..3d740a96 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2d579dd01ce24e16d30d1b5c1e039616f7c7a74e differ diff --git a/fuzz/corpus/fuzz_read/2d69057684fe769a9ac6b09ab05ae30bc3f904b2 b/fuzz/corpus/fuzz_read/2d69057684fe769a9ac6b09ab05ae30bc3f904b2 new file mode 100644 index 00000000..7718fe9a Binary files /dev/null and b/fuzz/corpus/fuzz_read/2d69057684fe769a9ac6b09ab05ae30bc3f904b2 differ diff --git a/fuzz/corpus/fuzz_read/2d8d147b08acbaac6d86216dcdca10def0a410f1 b/fuzz/corpus/fuzz_read/2d8d147b08acbaac6d86216dcdca10def0a410f1 new file mode 100644 index 00000000..4cd1c85f Binary files /dev/null and b/fuzz/corpus/fuzz_read/2d8d147b08acbaac6d86216dcdca10def0a410f1 differ diff --git a/fuzz/corpus/fuzz_read/2db1ac64cfb8952860ad48a854993501348cdfcd b/fuzz/corpus/fuzz_read/2db1ac64cfb8952860ad48a854993501348cdfcd new file mode 100644 index 00000000..186ea6d9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2db1ac64cfb8952860ad48a854993501348cdfcd differ diff --git a/fuzz/corpus/fuzz_read/2df4abd85a918cee91a45df13b5626d258470a31 b/fuzz/corpus/fuzz_read/2df4abd85a918cee91a45df13b5626d258470a31 new file mode 100644 index 00000000..0a12be03 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2df4abd85a918cee91a45df13b5626d258470a31 differ diff --git a/fuzz/corpus/fuzz_read/2df6bcc0bb8e5663afdba9af5d655f129e5f7046 b/fuzz/corpus/fuzz_read/2df6bcc0bb8e5663afdba9af5d655f129e5f7046 new file mode 100644 index 00000000..589f669b Binary files /dev/null and b/fuzz/corpus/fuzz_read/2df6bcc0bb8e5663afdba9af5d655f129e5f7046 differ diff --git a/fuzz/corpus/fuzz_read/2e141e74a2a390c1b0ec9c8316b6446a997c8870 b/fuzz/corpus/fuzz_read/2e141e74a2a390c1b0ec9c8316b6446a997c8870 new file mode 100644 index 00000000..b3bcdfec Binary files /dev/null and b/fuzz/corpus/fuzz_read/2e141e74a2a390c1b0ec9c8316b6446a997c8870 differ diff --git a/fuzz/corpus/fuzz_read/2e72a607c0b06edb05937b105e9db09babf713e8 b/fuzz/corpus/fuzz_read/2e72a607c0b06edb05937b105e9db09babf713e8 new file mode 100644 index 00000000..84a8a31f Binary files /dev/null and b/fuzz/corpus/fuzz_read/2e72a607c0b06edb05937b105e9db09babf713e8 differ diff --git a/fuzz/corpus/fuzz_read/2e8c9a86a3178802f42437035ac641f04c6374e0 b/fuzz/corpus/fuzz_read/2e8c9a86a3178802f42437035ac641f04c6374e0 new file mode 100644 index 00000000..975d37f5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2e8c9a86a3178802f42437035ac641f04c6374e0 differ diff --git a/fuzz/corpus/fuzz_read/2ead2252254053b2a9a6ce3d18b6b44f1ae5ed58 b/fuzz/corpus/fuzz_read/2ead2252254053b2a9a6ce3d18b6b44f1ae5ed58 new file mode 100644 index 00000000..100d59e0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2ead2252254053b2a9a6ce3d18b6b44f1ae5ed58 differ diff --git a/fuzz/corpus/fuzz_read/2eb6e24cb39e6282db6348caa2676626a0618f7b b/fuzz/corpus/fuzz_read/2eb6e24cb39e6282db6348caa2676626a0618f7b new file mode 100644 index 00000000..4df12a74 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2eb6e24cb39e6282db6348caa2676626a0618f7b differ diff --git a/fuzz/corpus/fuzz_read/2f01261b4f3702f0db2705e46eeea12d72741f49 b/fuzz/corpus/fuzz_read/2f01261b4f3702f0db2705e46eeea12d72741f49 new file mode 100644 index 00000000..54d204df Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f01261b4f3702f0db2705e46eeea12d72741f49 differ diff --git a/fuzz/corpus/fuzz_read/2f28053ca60e14aea625d3d7217b1aa974069d66 b/fuzz/corpus/fuzz_read/2f28053ca60e14aea625d3d7217b1aa974069d66 new file mode 100644 index 00000000..1142db0f Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f28053ca60e14aea625d3d7217b1aa974069d66 differ diff --git a/fuzz/corpus/fuzz_read/2f3a96e14c4ca4423903f78dc85d84bf5f29d189 b/fuzz/corpus/fuzz_read/2f3a96e14c4ca4423903f78dc85d84bf5f29d189 new file mode 100644 index 00000000..7cad6bb8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f3a96e14c4ca4423903f78dc85d84bf5f29d189 differ diff --git a/fuzz/corpus/fuzz_read/2f4bbcfd3e13ce9eea448fb7a483f3aab1972066 b/fuzz/corpus/fuzz_read/2f4bbcfd3e13ce9eea448fb7a483f3aab1972066 new file mode 100644 index 00000000..86177302 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f4bbcfd3e13ce9eea448fb7a483f3aab1972066 differ diff --git a/fuzz/corpus/fuzz_read/2f631abd7cf3ac056779c62bea1877c8c4535ded b/fuzz/corpus/fuzz_read/2f631abd7cf3ac056779c62bea1877c8c4535ded new file mode 100644 index 00000000..64f483b0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f631abd7cf3ac056779c62bea1877c8c4535ded differ diff --git a/fuzz/corpus/fuzz_read/2f84703bcfb895acc69e2ad7fcc1336509b1af5f b/fuzz/corpus/fuzz_read/2f84703bcfb895acc69e2ad7fcc1336509b1af5f new file mode 100644 index 00000000..08652b42 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2f84703bcfb895acc69e2ad7fcc1336509b1af5f differ diff --git a/fuzz/corpus/fuzz_read/2fa28739594b5ec33582e1a03f19ed55b38f72bc b/fuzz/corpus/fuzz_read/2fa28739594b5ec33582e1a03f19ed55b38f72bc new file mode 100644 index 00000000..2be3bf10 Binary files /dev/null and b/fuzz/corpus/fuzz_read/2fa28739594b5ec33582e1a03f19ed55b38f72bc differ diff --git a/fuzz/corpus/fuzz_read/300fbd9f01ec6368124a7359955e20db4bb78c26 b/fuzz/corpus/fuzz_read/300fbd9f01ec6368124a7359955e20db4bb78c26 new file mode 100644 index 00000000..de49003c Binary files /dev/null and b/fuzz/corpus/fuzz_read/300fbd9f01ec6368124a7359955e20db4bb78c26 differ diff --git a/fuzz/corpus/fuzz_read/303c50c748dc773028ab27bf833a7ca2433cee64 b/fuzz/corpus/fuzz_read/303c50c748dc773028ab27bf833a7ca2433cee64 new file mode 100644 index 00000000..bb481e35 Binary files /dev/null and b/fuzz/corpus/fuzz_read/303c50c748dc773028ab27bf833a7ca2433cee64 differ diff --git a/fuzz/corpus/fuzz_read/3044b3cec6af060d2d44c51520c67b228c2edc3c b/fuzz/corpus/fuzz_read/3044b3cec6af060d2d44c51520c67b228c2edc3c new file mode 100644 index 00000000..28597bc7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3044b3cec6af060d2d44c51520c67b228c2edc3c differ diff --git a/fuzz/corpus/fuzz_read/30882912b38f8dfa440b8455f797a4d09593b1de b/fuzz/corpus/fuzz_read/30882912b38f8dfa440b8455f797a4d09593b1de new file mode 100644 index 00000000..af6b7254 Binary files /dev/null and b/fuzz/corpus/fuzz_read/30882912b38f8dfa440b8455f797a4d09593b1de differ diff --git a/fuzz/corpus/fuzz_read/30dba3d8be88f5de5e3e15a8d7383018c46a9476 b/fuzz/corpus/fuzz_read/30dba3d8be88f5de5e3e15a8d7383018c46a9476 new file mode 100644 index 00000000..7121934f Binary files /dev/null and b/fuzz/corpus/fuzz_read/30dba3d8be88f5de5e3e15a8d7383018c46a9476 differ diff --git a/fuzz/corpus/fuzz_read/3170366e047eb10f4c2d304cfb3fc437e00044ac b/fuzz/corpus/fuzz_read/3170366e047eb10f4c2d304cfb3fc437e00044ac new file mode 100644 index 00000000..031076aa Binary files /dev/null and b/fuzz/corpus/fuzz_read/3170366e047eb10f4c2d304cfb3fc437e00044ac differ diff --git a/fuzz/corpus/fuzz_read/31a1cb6f8748e18a43653cd63d896b4990f136dc b/fuzz/corpus/fuzz_read/31a1cb6f8748e18a43653cd63d896b4990f136dc new file mode 100644 index 00000000..188100f2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/31a1cb6f8748e18a43653cd63d896b4990f136dc differ diff --git a/fuzz/corpus/fuzz_read/31fcdd0071cf57e1212fc31d15071eae2e1c3265 b/fuzz/corpus/fuzz_read/31fcdd0071cf57e1212fc31d15071eae2e1c3265 new file mode 100644 index 00000000..7f538e7f Binary files /dev/null and b/fuzz/corpus/fuzz_read/31fcdd0071cf57e1212fc31d15071eae2e1c3265 differ diff --git a/fuzz/corpus/fuzz_read/3247a3eb83038282ba1e8cfb389ff0c7ca514fe6 b/fuzz/corpus/fuzz_read/3247a3eb83038282ba1e8cfb389ff0c7ca514fe6 new file mode 100644 index 00000000..78841e59 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3247a3eb83038282ba1e8cfb389ff0c7ca514fe6 differ diff --git a/fuzz/corpus/fuzz_read/324a9f8b6aa6bb7ad17fa2e02c6ce383a0ff1e85 b/fuzz/corpus/fuzz_read/324a9f8b6aa6bb7ad17fa2e02c6ce383a0ff1e85 new file mode 100644 index 00000000..9bb5741b Binary files /dev/null and b/fuzz/corpus/fuzz_read/324a9f8b6aa6bb7ad17fa2e02c6ce383a0ff1e85 differ diff --git a/fuzz/corpus/fuzz_read/324e84965efa96ecb2472b30529774415df0ace8 b/fuzz/corpus/fuzz_read/324e84965efa96ecb2472b30529774415df0ace8 new file mode 100644 index 00000000..cd153c7a Binary files /dev/null and b/fuzz/corpus/fuzz_read/324e84965efa96ecb2472b30529774415df0ace8 differ diff --git a/fuzz/corpus/fuzz_read/326dfd41f580174fcb9a2c8b0dec9f0b5b3de319 b/fuzz/corpus/fuzz_read/326dfd41f580174fcb9a2c8b0dec9f0b5b3de319 new file mode 100644 index 00000000..b5f5fadf Binary files /dev/null and b/fuzz/corpus/fuzz_read/326dfd41f580174fcb9a2c8b0dec9f0b5b3de319 differ diff --git a/fuzz/corpus/fuzz_read/32a5c5db5de71c8aaeaf5efc9ee2d6fdf882d900 b/fuzz/corpus/fuzz_read/32a5c5db5de71c8aaeaf5efc9ee2d6fdf882d900 new file mode 100644 index 00000000..1a79f219 Binary files /dev/null and b/fuzz/corpus/fuzz_read/32a5c5db5de71c8aaeaf5efc9ee2d6fdf882d900 differ diff --git a/fuzz/corpus/fuzz_read/32f8c057a1a26a80c3fdc1ad2ce00d63e41b52ce b/fuzz/corpus/fuzz_read/32f8c057a1a26a80c3fdc1ad2ce00d63e41b52ce new file mode 100644 index 00000000..7387209c Binary files /dev/null and b/fuzz/corpus/fuzz_read/32f8c057a1a26a80c3fdc1ad2ce00d63e41b52ce differ diff --git a/fuzz/corpus/fuzz_read/335f6b8fdbb674f6b0adef9d7607c7eb4745250d b/fuzz/corpus/fuzz_read/335f6b8fdbb674f6b0adef9d7607c7eb4745250d new file mode 100644 index 00000000..064f7f20 Binary files /dev/null and b/fuzz/corpus/fuzz_read/335f6b8fdbb674f6b0adef9d7607c7eb4745250d differ diff --git a/fuzz/corpus/fuzz_read/33dd9979ee9abff7bde42893603afb49c1569cbb b/fuzz/corpus/fuzz_read/33dd9979ee9abff7bde42893603afb49c1569cbb new file mode 100644 index 00000000..7fb8104a Binary files /dev/null and b/fuzz/corpus/fuzz_read/33dd9979ee9abff7bde42893603afb49c1569cbb differ diff --git a/fuzz/corpus/fuzz_read/340ae491558bc9de1de79e65839b6a7b15bd2cfd b/fuzz/corpus/fuzz_read/340ae491558bc9de1de79e65839b6a7b15bd2cfd new file mode 100644 index 00000000..0bf6085c Binary files /dev/null and b/fuzz/corpus/fuzz_read/340ae491558bc9de1de79e65839b6a7b15bd2cfd differ diff --git a/fuzz/corpus/fuzz_read/344d47f0702bf45f70738585e4537b824d87a5a4 b/fuzz/corpus/fuzz_read/344d47f0702bf45f70738585e4537b824d87a5a4 new file mode 100644 index 00000000..49db0433 Binary files /dev/null and b/fuzz/corpus/fuzz_read/344d47f0702bf45f70738585e4537b824d87a5a4 differ diff --git a/fuzz/corpus/fuzz_read/34904b25b9a4593249f83397b479ed790d3595f9 b/fuzz/corpus/fuzz_read/34904b25b9a4593249f83397b479ed790d3595f9 new file mode 100644 index 00000000..b23e6805 Binary files /dev/null and b/fuzz/corpus/fuzz_read/34904b25b9a4593249f83397b479ed790d3595f9 differ diff --git a/fuzz/corpus/fuzz_read/34fecebec39eaf607582b93154ed0df038b2c55a b/fuzz/corpus/fuzz_read/34fecebec39eaf607582b93154ed0df038b2c55a new file mode 100644 index 00000000..84c81988 Binary files /dev/null and b/fuzz/corpus/fuzz_read/34fecebec39eaf607582b93154ed0df038b2c55a differ diff --git a/fuzz/corpus/fuzz_read/3501b45db9965b6db68f7f3ed667d3be8bc758d7 b/fuzz/corpus/fuzz_read/3501b45db9965b6db68f7f3ed667d3be8bc758d7 new file mode 100644 index 00000000..0bafe5b1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3501b45db9965b6db68f7f3ed667d3be8bc758d7 differ diff --git a/fuzz/corpus/fuzz_read/351bf2dd2e12cef7012ca66051005e5a65daabea b/fuzz/corpus/fuzz_read/351bf2dd2e12cef7012ca66051005e5a65daabea new file mode 100644 index 00000000..5776863f Binary files /dev/null and b/fuzz/corpus/fuzz_read/351bf2dd2e12cef7012ca66051005e5a65daabea differ diff --git a/fuzz/corpus/fuzz_read/351c9ffdebe4650debc5cf35ca09ca67b13c2c8e b/fuzz/corpus/fuzz_read/351c9ffdebe4650debc5cf35ca09ca67b13c2c8e new file mode 100644 index 00000000..49dda43f Binary files /dev/null and b/fuzz/corpus/fuzz_read/351c9ffdebe4650debc5cf35ca09ca67b13c2c8e differ diff --git a/fuzz/corpus/fuzz_read/358f82e3332f829bb970b3b719d13248c4bb59ae b/fuzz/corpus/fuzz_read/358f82e3332f829bb970b3b719d13248c4bb59ae new file mode 100644 index 00000000..088dcf6c Binary files /dev/null and b/fuzz/corpus/fuzz_read/358f82e3332f829bb970b3b719d13248c4bb59ae differ diff --git a/fuzz/corpus/fuzz_read/35ae1f55f509c6a5f4c69970e4eb18f0a52db4bc b/fuzz/corpus/fuzz_read/35ae1f55f509c6a5f4c69970e4eb18f0a52db4bc new file mode 100644 index 00000000..802409f7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/35ae1f55f509c6a5f4c69970e4eb18f0a52db4bc differ diff --git a/fuzz/corpus/fuzz_read/366b0c9bdc06dbb419619d26c27b9f7d49e77c07 b/fuzz/corpus/fuzz_read/366b0c9bdc06dbb419619d26c27b9f7d49e77c07 new file mode 100644 index 00000000..3caa6efd Binary files /dev/null and b/fuzz/corpus/fuzz_read/366b0c9bdc06dbb419619d26c27b9f7d49e77c07 differ diff --git a/fuzz/corpus/fuzz_read/370651fc79b3e4782de1002358f618238b875d08 b/fuzz/corpus/fuzz_read/370651fc79b3e4782de1002358f618238b875d08 new file mode 100644 index 00000000..df00162f Binary files /dev/null and b/fuzz/corpus/fuzz_read/370651fc79b3e4782de1002358f618238b875d08 differ diff --git a/fuzz/corpus/fuzz_read/37159a26fb4af9f0433ec0e516e3bf6767a1d0f4 b/fuzz/corpus/fuzz_read/37159a26fb4af9f0433ec0e516e3bf6767a1d0f4 new file mode 100644 index 00000000..84a66be6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/37159a26fb4af9f0433ec0e516e3bf6767a1d0f4 differ diff --git a/fuzz/corpus/fuzz_read/377858ec72e714f49927faf407cf79758368a8eb b/fuzz/corpus/fuzz_read/377858ec72e714f49927faf407cf79758368a8eb new file mode 100644 index 00000000..bcf39788 Binary files /dev/null and b/fuzz/corpus/fuzz_read/377858ec72e714f49927faf407cf79758368a8eb differ diff --git a/fuzz/corpus/fuzz_read/37b2f47479d3533485cded9768d475183e6549fb b/fuzz/corpus/fuzz_read/37b2f47479d3533485cded9768d475183e6549fb new file mode 100644 index 00000000..8a58eef3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/37b2f47479d3533485cded9768d475183e6549fb differ diff --git a/fuzz/corpus/fuzz_read/38102ebacedfa10aace5afb758c2e7a0d3257e40 b/fuzz/corpus/fuzz_read/38102ebacedfa10aace5afb758c2e7a0d3257e40 new file mode 100644 index 00000000..fbe30c70 Binary files /dev/null and b/fuzz/corpus/fuzz_read/38102ebacedfa10aace5afb758c2e7a0d3257e40 differ diff --git a/fuzz/corpus/fuzz_read/383834e65d1b43e0f75187efae9b5c4b985726fd b/fuzz/corpus/fuzz_read/383834e65d1b43e0f75187efae9b5c4b985726fd new file mode 100644 index 00000000..59d441cf Binary files /dev/null and b/fuzz/corpus/fuzz_read/383834e65d1b43e0f75187efae9b5c4b985726fd differ diff --git a/fuzz/corpus/fuzz_read/3890c5dd23cd72d5e6bd36d332c8b8bb002afeb9 b/fuzz/corpus/fuzz_read/3890c5dd23cd72d5e6bd36d332c8b8bb002afeb9 new file mode 100644 index 00000000..519693a6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3890c5dd23cd72d5e6bd36d332c8b8bb002afeb9 differ diff --git a/fuzz/corpus/fuzz_read/392e337f13c29909d869916ce523ca89a8e404b0 b/fuzz/corpus/fuzz_read/392e337f13c29909d869916ce523ca89a8e404b0 new file mode 100644 index 00000000..364146f1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/392e337f13c29909d869916ce523ca89a8e404b0 differ diff --git a/fuzz/corpus/fuzz_read/39828cbb1aeede516e3a571a568ccfcbee31fe53 b/fuzz/corpus/fuzz_read/39828cbb1aeede516e3a571a568ccfcbee31fe53 new file mode 100644 index 00000000..b0c7c55b Binary files /dev/null and b/fuzz/corpus/fuzz_read/39828cbb1aeede516e3a571a568ccfcbee31fe53 differ diff --git a/fuzz/corpus/fuzz_read/39e46c78859500e3304634e7e70acdcadef1da97 b/fuzz/corpus/fuzz_read/39e46c78859500e3304634e7e70acdcadef1da97 new file mode 100644 index 00000000..a3a2a65d Binary files /dev/null and b/fuzz/corpus/fuzz_read/39e46c78859500e3304634e7e70acdcadef1da97 differ diff --git a/fuzz/corpus/fuzz_read/39f1739e14226219d3275787df7abad0a16de124 b/fuzz/corpus/fuzz_read/39f1739e14226219d3275787df7abad0a16de124 new file mode 100644 index 00000000..f34ffdb0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/39f1739e14226219d3275787df7abad0a16de124 differ diff --git a/fuzz/corpus/fuzz_read/3a07bb7bfa9afcc08cb60e4d1405bd82f1355eb9 b/fuzz/corpus/fuzz_read/3a07bb7bfa9afcc08cb60e4d1405bd82f1355eb9 new file mode 100644 index 00000000..5513ada8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3a07bb7bfa9afcc08cb60e4d1405bd82f1355eb9 differ diff --git a/fuzz/corpus/fuzz_read/3a1b1208addfdf02cf8ac47993d4f10429992cf1 b/fuzz/corpus/fuzz_read/3a1b1208addfdf02cf8ac47993d4f10429992cf1 new file mode 100644 index 00000000..a18a4c15 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3a1b1208addfdf02cf8ac47993d4f10429992cf1 differ diff --git a/fuzz/corpus/fuzz_read/3a4a457fcfebd959d857c9eb72d98a2ef2e6c25c b/fuzz/corpus/fuzz_read/3a4a457fcfebd959d857c9eb72d98a2ef2e6c25c new file mode 100644 index 00000000..2fd44ccc Binary files /dev/null and b/fuzz/corpus/fuzz_read/3a4a457fcfebd959d857c9eb72d98a2ef2e6c25c differ diff --git a/fuzz/corpus/fuzz_read/3a6dde9f50c39db03d4836e7214c4c3101177452 b/fuzz/corpus/fuzz_read/3a6dde9f50c39db03d4836e7214c4c3101177452 new file mode 100644 index 00000000..e9deaaa1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3a6dde9f50c39db03d4836e7214c4c3101177452 differ diff --git a/fuzz/corpus/fuzz_read/3ae395a20b66c94c8e441895591d308dab9b1cfa b/fuzz/corpus/fuzz_read/3ae395a20b66c94c8e441895591d308dab9b1cfa new file mode 100644 index 00000000..732d5bcd Binary files /dev/null and b/fuzz/corpus/fuzz_read/3ae395a20b66c94c8e441895591d308dab9b1cfa differ diff --git a/fuzz/corpus/fuzz_read/3b177c40c476f1b1ffdedc4d2f1af7ede5484d90 b/fuzz/corpus/fuzz_read/3b177c40c476f1b1ffdedc4d2f1af7ede5484d90 new file mode 100644 index 00000000..2e1caf72 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b177c40c476f1b1ffdedc4d2f1af7ede5484d90 differ diff --git a/fuzz/corpus/fuzz_read/3b2827fc3871b672b3c6b7b2960e9450c6560263 b/fuzz/corpus/fuzz_read/3b2827fc3871b672b3c6b7b2960e9450c6560263 new file mode 100644 index 00000000..dd389153 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b2827fc3871b672b3c6b7b2960e9450c6560263 differ diff --git a/fuzz/corpus/fuzz_read/3b71cd5c74606f4c92eb9a3b2e068fd8116b33e8 b/fuzz/corpus/fuzz_read/3b71cd5c74606f4c92eb9a3b2e068fd8116b33e8 new file mode 100644 index 00000000..ee01b3c6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b71cd5c74606f4c92eb9a3b2e068fd8116b33e8 differ diff --git a/fuzz/corpus/fuzz_read/3b75c058968204bad8bf3e0574e2283f2c0cc94e b/fuzz/corpus/fuzz_read/3b75c058968204bad8bf3e0574e2283f2c0cc94e new file mode 100644 index 00000000..cb994b89 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b75c058968204bad8bf3e0574e2283f2c0cc94e differ diff --git a/fuzz/corpus/fuzz_read/3b9234c74509592981c8434b02f4060eddc1e82e b/fuzz/corpus/fuzz_read/3b9234c74509592981c8434b02f4060eddc1e82e new file mode 100644 index 00000000..cd0b2e25 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b9234c74509592981c8434b02f4060eddc1e82e differ diff --git a/fuzz/corpus/fuzz_read/3b9431cb1e4f5ba6f4ff0ad46c7d45c4496322ef b/fuzz/corpus/fuzz_read/3b9431cb1e4f5ba6f4ff0ad46c7d45c4496322ef new file mode 100644 index 00000000..17cad86a Binary files /dev/null and b/fuzz/corpus/fuzz_read/3b9431cb1e4f5ba6f4ff0ad46c7d45c4496322ef differ diff --git a/fuzz/corpus/fuzz_read/3c04ec4604152609ee053a601ee72b829c6e058d b/fuzz/corpus/fuzz_read/3c04ec4604152609ee053a601ee72b829c6e058d new file mode 100644 index 00000000..b5b6e3b7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3c04ec4604152609ee053a601ee72b829c6e058d differ diff --git a/fuzz/corpus/fuzz_read/3ca89c02ce4873af321387e19e00175eaf6056e3 b/fuzz/corpus/fuzz_read/3ca89c02ce4873af321387e19e00175eaf6056e3 new file mode 100644 index 00000000..4c0dde2d Binary files /dev/null and b/fuzz/corpus/fuzz_read/3ca89c02ce4873af321387e19e00175eaf6056e3 differ diff --git a/fuzz/corpus/fuzz_read/3cc5ab45603a085835bcbf2eb55afcb4ad23f095 b/fuzz/corpus/fuzz_read/3cc5ab45603a085835bcbf2eb55afcb4ad23f095 new file mode 100644 index 00000000..a0df001c Binary files /dev/null and b/fuzz/corpus/fuzz_read/3cc5ab45603a085835bcbf2eb55afcb4ad23f095 differ diff --git a/fuzz/corpus/fuzz_read/3cc76c5cffb3fa3dac86d639883d9c1f3ef6bf9e b/fuzz/corpus/fuzz_read/3cc76c5cffb3fa3dac86d639883d9c1f3ef6bf9e new file mode 100644 index 00000000..bd289c05 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3cc76c5cffb3fa3dac86d639883d9c1f3ef6bf9e differ diff --git a/fuzz/corpus/fuzz_read/3d11f3a43c666f4de5d89578e4bbcfcdf4b4ff44 b/fuzz/corpus/fuzz_read/3d11f3a43c666f4de5d89578e4bbcfcdf4b4ff44 new file mode 100644 index 00000000..a6517e9e Binary files /dev/null and b/fuzz/corpus/fuzz_read/3d11f3a43c666f4de5d89578e4bbcfcdf4b4ff44 differ diff --git a/fuzz/corpus/fuzz_read/3d6340705c1fa7dc8a2b9a88b68cf2adf2306690 b/fuzz/corpus/fuzz_read/3d6340705c1fa7dc8a2b9a88b68cf2adf2306690 new file mode 100644 index 00000000..8e7fc320 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3d6340705c1fa7dc8a2b9a88b68cf2adf2306690 differ diff --git a/fuzz/corpus/fuzz_read/3d6956aa60e10dfec90095da15bb08d4e1633098 b/fuzz/corpus/fuzz_read/3d6956aa60e10dfec90095da15bb08d4e1633098 new file mode 100644 index 00000000..9fbbb25f Binary files /dev/null and b/fuzz/corpus/fuzz_read/3d6956aa60e10dfec90095da15bb08d4e1633098 differ diff --git a/fuzz/corpus/fuzz_read/3df335fe2bf12c10559fe9e73f0c4a044c1393fd b/fuzz/corpus/fuzz_read/3df335fe2bf12c10559fe9e73f0c4a044c1393fd new file mode 100644 index 00000000..ca26e7c1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3df335fe2bf12c10559fe9e73f0c4a044c1393fd differ diff --git a/fuzz/corpus/fuzz_read/3e0fa4c81803663eee32429f4927a5a39ad054a0 b/fuzz/corpus/fuzz_read/3e0fa4c81803663eee32429f4927a5a39ad054a0 new file mode 100644 index 00000000..a54dda4a Binary files /dev/null and b/fuzz/corpus/fuzz_read/3e0fa4c81803663eee32429f4927a5a39ad054a0 differ diff --git a/fuzz/corpus/fuzz_read/3e20d43205cab3ce8c251eb95e3cfefbfeea9569 b/fuzz/corpus/fuzz_read/3e20d43205cab3ce8c251eb95e3cfefbfeea9569 new file mode 100644 index 00000000..2e3cb6a8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3e20d43205cab3ce8c251eb95e3cfefbfeea9569 differ diff --git a/fuzz/corpus/fuzz_read/3e4f040d7b8b85bbaee72072acdbcdd2414a96b1 b/fuzz/corpus/fuzz_read/3e4f040d7b8b85bbaee72072acdbcdd2414a96b1 new file mode 100644 index 00000000..0ebf9fb3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3e4f040d7b8b85bbaee72072acdbcdd2414a96b1 differ diff --git a/fuzz/corpus/fuzz_read/3e74c747881a7d55fb566908e02ba2023bfd7176 b/fuzz/corpus/fuzz_read/3e74c747881a7d55fb566908e02ba2023bfd7176 new file mode 100644 index 00000000..350ea146 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3e74c747881a7d55fb566908e02ba2023bfd7176 differ diff --git a/fuzz/corpus/fuzz_read/3eaa6b199981ed78962da13bcdcfe4216b026dda b/fuzz/corpus/fuzz_read/3eaa6b199981ed78962da13bcdcfe4216b026dda new file mode 100644 index 00000000..0f631651 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3eaa6b199981ed78962da13bcdcfe4216b026dda differ diff --git a/fuzz/corpus/fuzz_read/3ee7735abd017105657655774a297c0a2104c33a b/fuzz/corpus/fuzz_read/3ee7735abd017105657655774a297c0a2104c33a new file mode 100644 index 00000000..b1f60c25 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3ee7735abd017105657655774a297c0a2104c33a differ diff --git a/fuzz/corpus/fuzz_read/3f26e1e17a91ba019a42711f950ac148497ab19c b/fuzz/corpus/fuzz_read/3f26e1e17a91ba019a42711f950ac148497ab19c new file mode 100644 index 00000000..617245a9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3f26e1e17a91ba019a42711f950ac148497ab19c differ diff --git a/fuzz/corpus/fuzz_read/3f811a83e27463bfa2dc8701f31a314651214abd b/fuzz/corpus/fuzz_read/3f811a83e27463bfa2dc8701f31a314651214abd new file mode 100644 index 00000000..447e5ca2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/3f811a83e27463bfa2dc8701f31a314651214abd differ diff --git a/fuzz/corpus/fuzz_read/403c70f940d372ab1ba7e73c44c2daff8df7fe4b b/fuzz/corpus/fuzz_read/403c70f940d372ab1ba7e73c44c2daff8df7fe4b new file mode 100644 index 00000000..0d7da1ec Binary files /dev/null and b/fuzz/corpus/fuzz_read/403c70f940d372ab1ba7e73c44c2daff8df7fe4b differ diff --git a/fuzz/corpus/fuzz_read/4087ce1a40e9c70ddb98ae9f1bb00cdd935668b6 b/fuzz/corpus/fuzz_read/4087ce1a40e9c70ddb98ae9f1bb00cdd935668b6 new file mode 100644 index 00000000..95ae5d3b Binary files /dev/null and b/fuzz/corpus/fuzz_read/4087ce1a40e9c70ddb98ae9f1bb00cdd935668b6 differ diff --git a/fuzz/corpus/fuzz_read/40b430dc2d709a2c25648d04e5d08115bd070949 b/fuzz/corpus/fuzz_read/40b430dc2d709a2c25648d04e5d08115bd070949 new file mode 100644 index 00000000..d7356bd1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/40b430dc2d709a2c25648d04e5d08115bd070949 differ diff --git a/fuzz/corpus/fuzz_read/40b6f15f77e00a8be697eee622fa964cda98be05 b/fuzz/corpus/fuzz_read/40b6f15f77e00a8be697eee622fa964cda98be05 new file mode 100644 index 00000000..b3615527 Binary files /dev/null and b/fuzz/corpus/fuzz_read/40b6f15f77e00a8be697eee622fa964cda98be05 differ diff --git a/fuzz/corpus/fuzz_read/40bb1019efe8f7b584a2c4071c791de1e705c0b8 b/fuzz/corpus/fuzz_read/40bb1019efe8f7b584a2c4071c791de1e705c0b8 new file mode 100644 index 00000000..597c91ce Binary files /dev/null and b/fuzz/corpus/fuzz_read/40bb1019efe8f7b584a2c4071c791de1e705c0b8 differ diff --git a/fuzz/corpus/fuzz_read/40d2b42e34a922740d326f0ce4e8350a40c6d819 b/fuzz/corpus/fuzz_read/40d2b42e34a922740d326f0ce4e8350a40c6d819 new file mode 100644 index 00000000..3172ed64 Binary files /dev/null and b/fuzz/corpus/fuzz_read/40d2b42e34a922740d326f0ce4e8350a40c6d819 differ diff --git a/fuzz/corpus/fuzz_read/40d43ca7d50f878dd43f5bc2a1c17b9112c62fa3 b/fuzz/corpus/fuzz_read/40d43ca7d50f878dd43f5bc2a1c17b9112c62fa3 new file mode 100644 index 00000000..6c9d69b4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/40d43ca7d50f878dd43f5bc2a1c17b9112c62fa3 differ diff --git a/fuzz/corpus/fuzz_read/40e48d4cbd493224601c58c2c847dc4e283580de b/fuzz/corpus/fuzz_read/40e48d4cbd493224601c58c2c847dc4e283580de new file mode 100644 index 00000000..9edb1653 Binary files /dev/null and b/fuzz/corpus/fuzz_read/40e48d4cbd493224601c58c2c847dc4e283580de differ diff --git a/fuzz/corpus/fuzz_read/411b0a84c53d17a14b8785bd7b083b753002ed77 b/fuzz/corpus/fuzz_read/411b0a84c53d17a14b8785bd7b083b753002ed77 new file mode 100644 index 00000000..46c39449 Binary files /dev/null and b/fuzz/corpus/fuzz_read/411b0a84c53d17a14b8785bd7b083b753002ed77 differ diff --git a/fuzz/corpus/fuzz_read/42b3ed90fe88483860f4ef87a725c8abf24061f1 b/fuzz/corpus/fuzz_read/42b3ed90fe88483860f4ef87a725c8abf24061f1 new file mode 100644 index 00000000..dc521b4d Binary files /dev/null and b/fuzz/corpus/fuzz_read/42b3ed90fe88483860f4ef87a725c8abf24061f1 differ diff --git a/fuzz/corpus/fuzz_read/42f64b48e28c312590daf6dcf3654024c8130ff2 b/fuzz/corpus/fuzz_read/42f64b48e28c312590daf6dcf3654024c8130ff2 new file mode 100644 index 00000000..f98eddd8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/42f64b48e28c312590daf6dcf3654024c8130ff2 differ diff --git a/fuzz/corpus/fuzz_read/4327783a6a0aae404097a63818102568f593c6de b/fuzz/corpus/fuzz_read/4327783a6a0aae404097a63818102568f593c6de new file mode 100644 index 00000000..38612d11 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4327783a6a0aae404097a63818102568f593c6de differ diff --git a/fuzz/corpus/fuzz_read/434feeea98d188713703ac6701f32dcd1996de88 b/fuzz/corpus/fuzz_read/434feeea98d188713703ac6701f32dcd1996de88 new file mode 100644 index 00000000..a246b4d7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/434feeea98d188713703ac6701f32dcd1996de88 differ diff --git a/fuzz/corpus/fuzz_read/435a8d8fd8d940c6d71b1717e7659e2f5afb88c2 b/fuzz/corpus/fuzz_read/435a8d8fd8d940c6d71b1717e7659e2f5afb88c2 new file mode 100644 index 00000000..da6d0c73 Binary files /dev/null and b/fuzz/corpus/fuzz_read/435a8d8fd8d940c6d71b1717e7659e2f5afb88c2 differ diff --git a/fuzz/corpus/fuzz_read/437f343dae5cd6a013b8425d01a97c2ccea58db2 b/fuzz/corpus/fuzz_read/437f343dae5cd6a013b8425d01a97c2ccea58db2 new file mode 100644 index 00000000..7988a2bd Binary files /dev/null and b/fuzz/corpus/fuzz_read/437f343dae5cd6a013b8425d01a97c2ccea58db2 differ diff --git a/fuzz/corpus/fuzz_read/4386978f9575cfaa09a755eb1d1765002a07ee84 b/fuzz/corpus/fuzz_read/4386978f9575cfaa09a755eb1d1765002a07ee84 new file mode 100644 index 00000000..13ce91f6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4386978f9575cfaa09a755eb1d1765002a07ee84 differ diff --git a/fuzz/corpus/fuzz_read/43cbb6e901a127d83e4434c2912d927d7dd18d0a b/fuzz/corpus/fuzz_read/43cbb6e901a127d83e4434c2912d927d7dd18d0a new file mode 100644 index 00000000..83999573 Binary files /dev/null and b/fuzz/corpus/fuzz_read/43cbb6e901a127d83e4434c2912d927d7dd18d0a differ diff --git a/fuzz/corpus/fuzz_read/43d6b205d8774c86b3587c901f9f4414d957095c b/fuzz/corpus/fuzz_read/43d6b205d8774c86b3587c901f9f4414d957095c new file mode 100644 index 00000000..9b01505e Binary files /dev/null and b/fuzz/corpus/fuzz_read/43d6b205d8774c86b3587c901f9f4414d957095c differ diff --git a/fuzz/corpus/fuzz_read/43e0ff06f2375c6ff668d8a9209520dc56956fc1 b/fuzz/corpus/fuzz_read/43e0ff06f2375c6ff668d8a9209520dc56956fc1 new file mode 100644 index 00000000..56f4b7c9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/43e0ff06f2375c6ff668d8a9209520dc56956fc1 differ diff --git a/fuzz/corpus/fuzz_read/43f34cbef084c995952dbc76f9fe189d7e24d117 b/fuzz/corpus/fuzz_read/43f34cbef084c995952dbc76f9fe189d7e24d117 new file mode 100644 index 00000000..29a8a89e Binary files /dev/null and b/fuzz/corpus/fuzz_read/43f34cbef084c995952dbc76f9fe189d7e24d117 differ diff --git a/fuzz/corpus/fuzz_read/44175b9e4ea9de89ea510d456d93db459867d555 b/fuzz/corpus/fuzz_read/44175b9e4ea9de89ea510d456d93db459867d555 new file mode 100644 index 00000000..907e6687 Binary files /dev/null and b/fuzz/corpus/fuzz_read/44175b9e4ea9de89ea510d456d93db459867d555 differ diff --git a/fuzz/corpus/fuzz_read/446d319a50e879d6b6fa45daa868c3633c6bdb6e b/fuzz/corpus/fuzz_read/446d319a50e879d6b6fa45daa868c3633c6bdb6e new file mode 100644 index 00000000..cf3cfa79 Binary files /dev/null and b/fuzz/corpus/fuzz_read/446d319a50e879d6b6fa45daa868c3633c6bdb6e differ diff --git a/fuzz/corpus/fuzz_read/447788062d25525b56566b95d3c178c69451efdd b/fuzz/corpus/fuzz_read/447788062d25525b56566b95d3c178c69451efdd new file mode 100644 index 00000000..22e088db Binary files /dev/null and b/fuzz/corpus/fuzz_read/447788062d25525b56566b95d3c178c69451efdd differ diff --git a/fuzz/corpus/fuzz_read/44834333dddf6f0812174cd192c771b9582da325 b/fuzz/corpus/fuzz_read/44834333dddf6f0812174cd192c771b9582da325 new file mode 100644 index 00000000..1b8d8ec6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/44834333dddf6f0812174cd192c771b9582da325 differ diff --git a/fuzz/corpus/fuzz_read/4513008cbdc50edf8bb927a7244d9b3f3e9fe435 b/fuzz/corpus/fuzz_read/4513008cbdc50edf8bb927a7244d9b3f3e9fe435 new file mode 100644 index 00000000..c5124973 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4513008cbdc50edf8bb927a7244d9b3f3e9fe435 differ diff --git a/fuzz/corpus/fuzz_read/456623a394be2b5d8af845cb1a78a516c554bfe7 b/fuzz/corpus/fuzz_read/456623a394be2b5d8af845cb1a78a516c554bfe7 new file mode 100644 index 00000000..952b9b31 Binary files /dev/null and b/fuzz/corpus/fuzz_read/456623a394be2b5d8af845cb1a78a516c554bfe7 differ diff --git a/fuzz/corpus/fuzz_read/45a5228069ceee805ecb613e671edf20c9f0aeaa b/fuzz/corpus/fuzz_read/45a5228069ceee805ecb613e671edf20c9f0aeaa new file mode 100644 index 00000000..67c675c4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/45a5228069ceee805ecb613e671edf20c9f0aeaa differ diff --git a/fuzz/corpus/fuzz_read/46758110fb64b3627c304e332a85025588ea0f73 b/fuzz/corpus/fuzz_read/46758110fb64b3627c304e332a85025588ea0f73 new file mode 100644 index 00000000..4c765c38 Binary files /dev/null and b/fuzz/corpus/fuzz_read/46758110fb64b3627c304e332a85025588ea0f73 differ diff --git a/fuzz/corpus/fuzz_read/4678f58b09a0f2d7fb52a296fd4293de8956956c b/fuzz/corpus/fuzz_read/4678f58b09a0f2d7fb52a296fd4293de8956956c new file mode 100644 index 00000000..3bb6fc43 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4678f58b09a0f2d7fb52a296fd4293de8956956c differ diff --git a/fuzz/corpus/fuzz_read/474d8cc8e607906bfb52fd43999bad03cfc616b7 b/fuzz/corpus/fuzz_read/474d8cc8e607906bfb52fd43999bad03cfc616b7 new file mode 100644 index 00000000..e3104dd1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/474d8cc8e607906bfb52fd43999bad03cfc616b7 differ diff --git a/fuzz/corpus/fuzz_read/47783f3a01ca82718d8a6c66221399cdeaf1c30f b/fuzz/corpus/fuzz_read/47783f3a01ca82718d8a6c66221399cdeaf1c30f new file mode 100644 index 00000000..3cc4f57a Binary files /dev/null and b/fuzz/corpus/fuzz_read/47783f3a01ca82718d8a6c66221399cdeaf1c30f differ diff --git a/fuzz/corpus/fuzz_read/485eaee2a5cb14a802eb167a5e81bff3d4ddaab9 b/fuzz/corpus/fuzz_read/485eaee2a5cb14a802eb167a5e81bff3d4ddaab9 new file mode 100644 index 00000000..fe1ec9d4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/485eaee2a5cb14a802eb167a5e81bff3d4ddaab9 differ diff --git a/fuzz/corpus/fuzz_read/4868704b31eb8a86e3058a616cac28cf11bdad48 b/fuzz/corpus/fuzz_read/4868704b31eb8a86e3058a616cac28cf11bdad48 new file mode 100644 index 00000000..52bf889a Binary files /dev/null and b/fuzz/corpus/fuzz_read/4868704b31eb8a86e3058a616cac28cf11bdad48 differ diff --git a/fuzz/corpus/fuzz_read/490c01c5ebda6cd865e83e002fab0c3594d556c9 b/fuzz/corpus/fuzz_read/490c01c5ebda6cd865e83e002fab0c3594d556c9 new file mode 100644 index 00000000..8fc113be Binary files /dev/null and b/fuzz/corpus/fuzz_read/490c01c5ebda6cd865e83e002fab0c3594d556c9 differ diff --git a/fuzz/corpus/fuzz_read/4923a041344aa7a887b911e4f0d3df0db58d67dd b/fuzz/corpus/fuzz_read/4923a041344aa7a887b911e4f0d3df0db58d67dd new file mode 100644 index 00000000..2ef71543 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4923a041344aa7a887b911e4f0d3df0db58d67dd differ diff --git a/fuzz/corpus/fuzz_read/4aecbc31d198f17f6c1c8581e4b9263485007da7 b/fuzz/corpus/fuzz_read/4aecbc31d198f17f6c1c8581e4b9263485007da7 new file mode 100644 index 00000000..c141df60 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4aecbc31d198f17f6c1c8581e4b9263485007da7 differ diff --git a/fuzz/corpus/fuzz_read/4b2931392d5ab57ad71ed4ab3a04307211a2597a b/fuzz/corpus/fuzz_read/4b2931392d5ab57ad71ed4ab3a04307211a2597a new file mode 100644 index 00000000..687f65fd Binary files /dev/null and b/fuzz/corpus/fuzz_read/4b2931392d5ab57ad71ed4ab3a04307211a2597a differ diff --git a/fuzz/corpus/fuzz_read/4b3d1901590c8818a9e5f75a41c36005584d7228 b/fuzz/corpus/fuzz_read/4b3d1901590c8818a9e5f75a41c36005584d7228 new file mode 100644 index 00000000..25f5fe13 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4b3d1901590c8818a9e5f75a41c36005584d7228 differ diff --git a/fuzz/corpus/fuzz_read/4bcdb752b6b6e594e6741afe4154aa8bb3910b5f b/fuzz/corpus/fuzz_read/4bcdb752b6b6e594e6741afe4154aa8bb3910b5f new file mode 100644 index 00000000..bd321ba1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4bcdb752b6b6e594e6741afe4154aa8bb3910b5f differ diff --git a/fuzz/corpus/fuzz_read/4bfc1cc220d01d444aafc0b837f02a7f0c6993e0 b/fuzz/corpus/fuzz_read/4bfc1cc220d01d444aafc0b837f02a7f0c6993e0 new file mode 100644 index 00000000..6d0e0d7d Binary files /dev/null and b/fuzz/corpus/fuzz_read/4bfc1cc220d01d444aafc0b837f02a7f0c6993e0 differ diff --git a/fuzz/corpus/fuzz_read/4c141862909facbd36cac718a963ebcf7014d83e b/fuzz/corpus/fuzz_read/4c141862909facbd36cac718a963ebcf7014d83e new file mode 100644 index 00000000..090ef7a5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4c141862909facbd36cac718a963ebcf7014d83e differ diff --git a/fuzz/corpus/fuzz_read/4c1b97280f87e5870792815ad9c96b01387ca3fb b/fuzz/corpus/fuzz_read/4c1b97280f87e5870792815ad9c96b01387ca3fb new file mode 100644 index 00000000..ead531d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4c1b97280f87e5870792815ad9c96b01387ca3fb differ diff --git a/fuzz/corpus/fuzz_read/4c375e4bf779dd8233866df24ecb6fb423af4c31 b/fuzz/corpus/fuzz_read/4c375e4bf779dd8233866df24ecb6fb423af4c31 new file mode 100644 index 00000000..34473f96 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4c375e4bf779dd8233866df24ecb6fb423af4c31 differ diff --git a/fuzz/corpus/fuzz_read/4c94529e6c63aa3ccbef993b002ecf5f8d348643 b/fuzz/corpus/fuzz_read/4c94529e6c63aa3ccbef993b002ecf5f8d348643 new file mode 100644 index 00000000..e80d1f3b Binary files /dev/null and b/fuzz/corpus/fuzz_read/4c94529e6c63aa3ccbef993b002ecf5f8d348643 differ diff --git a/fuzz/corpus/fuzz_read/4cd98aa831ac06e30e7c182b31352efaca47a04b b/fuzz/corpus/fuzz_read/4cd98aa831ac06e30e7c182b31352efaca47a04b new file mode 100644 index 00000000..7b9e7672 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4cd98aa831ac06e30e7c182b31352efaca47a04b differ diff --git a/fuzz/corpus/fuzz_read/4cdfec8a5a1868d7e29928ada90c9c1913dd75ad b/fuzz/corpus/fuzz_read/4cdfec8a5a1868d7e29928ada90c9c1913dd75ad new file mode 100644 index 00000000..27991176 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4cdfec8a5a1868d7e29928ada90c9c1913dd75ad differ diff --git a/fuzz/corpus/fuzz_read/4d5cdc04070e9d1e84457e5795d34374484e742b b/fuzz/corpus/fuzz_read/4d5cdc04070e9d1e84457e5795d34374484e742b new file mode 100644 index 00000000..06a4c555 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4d5cdc04070e9d1e84457e5795d34374484e742b differ diff --git a/fuzz/corpus/fuzz_read/4d64a29274148e8be8875aa8c47534465e5efc57 b/fuzz/corpus/fuzz_read/4d64a29274148e8be8875aa8c47534465e5efc57 new file mode 100644 index 00000000..ee15a235 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4d64a29274148e8be8875aa8c47534465e5efc57 differ diff --git a/fuzz/corpus/fuzz_read/4db6b948c3abcc480e54ba7f7bc615790bb1576a b/fuzz/corpus/fuzz_read/4db6b948c3abcc480e54ba7f7bc615790bb1576a new file mode 100644 index 00000000..2751ee93 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4db6b948c3abcc480e54ba7f7bc615790bb1576a differ diff --git a/fuzz/corpus/fuzz_read/4dbc1daa0a1df99e6c1ab04c1136880bfeee4534 b/fuzz/corpus/fuzz_read/4dbc1daa0a1df99e6c1ab04c1136880bfeee4534 new file mode 100644 index 00000000..4e6eabd9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4dbc1daa0a1df99e6c1ab04c1136880bfeee4534 differ diff --git a/fuzz/corpus/fuzz_read/4de7f90296ab13aabf517c160c78a451ea58eadd b/fuzz/corpus/fuzz_read/4de7f90296ab13aabf517c160c78a451ea58eadd new file mode 100644 index 00000000..4d151960 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4de7f90296ab13aabf517c160c78a451ea58eadd differ diff --git a/fuzz/corpus/fuzz_read/4dee9294a8cbb27974a39a6740d6260b368e3770 b/fuzz/corpus/fuzz_read/4dee9294a8cbb27974a39a6740d6260b368e3770 new file mode 100644 index 00000000..d1b95204 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4dee9294a8cbb27974a39a6740d6260b368e3770 differ diff --git a/fuzz/corpus/fuzz_read/4df29d2f667968e65589314d8206ac24e39b5e79 b/fuzz/corpus/fuzz_read/4df29d2f667968e65589314d8206ac24e39b5e79 new file mode 100644 index 00000000..a8454566 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4df29d2f667968e65589314d8206ac24e39b5e79 differ diff --git a/fuzz/corpus/fuzz_read/4e0c8e956272c7462de2e2fac0897b810ebb51fd b/fuzz/corpus/fuzz_read/4e0c8e956272c7462de2e2fac0897b810ebb51fd new file mode 100644 index 00000000..19954371 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4e0c8e956272c7462de2e2fac0897b810ebb51fd differ diff --git a/fuzz/corpus/fuzz_read/4e0cece4af02f0a771ebebc821b183e39d36f07e b/fuzz/corpus/fuzz_read/4e0cece4af02f0a771ebebc821b183e39d36f07e new file mode 100644 index 00000000..cdd7944d Binary files /dev/null and b/fuzz/corpus/fuzz_read/4e0cece4af02f0a771ebebc821b183e39d36f07e differ diff --git a/fuzz/corpus/fuzz_read/4e80dc23dc6cecf4dbf650c0793e3f94b99fcd4f b/fuzz/corpus/fuzz_read/4e80dc23dc6cecf4dbf650c0793e3f94b99fcd4f new file mode 100644 index 00000000..48d2355e Binary files /dev/null and b/fuzz/corpus/fuzz_read/4e80dc23dc6cecf4dbf650c0793e3f94b99fcd4f differ diff --git a/fuzz/corpus/fuzz_read/4e9a8bbfa0582737833e958f5ff56f140b04d17d b/fuzz/corpus/fuzz_read/4e9a8bbfa0582737833e958f5ff56f140b04d17d new file mode 100644 index 00000000..7b588ef2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/4e9a8bbfa0582737833e958f5ff56f140b04d17d differ diff --git a/fuzz/corpus/fuzz_read/4f6da123861c6c17e2c8b397b16b768f1a13c187 b/fuzz/corpus/fuzz_read/4f6da123861c6c17e2c8b397b16b768f1a13c187 new file mode 100644 index 00000000..63cb3d0e Binary files /dev/null and b/fuzz/corpus/fuzz_read/4f6da123861c6c17e2c8b397b16b768f1a13c187 differ diff --git a/fuzz/corpus/fuzz_read/4f7581020bc39d9d7ec3c983f28068247cd79994 b/fuzz/corpus/fuzz_read/4f7581020bc39d9d7ec3c983f28068247cd79994 new file mode 100644 index 00000000..f66a6e7e Binary files /dev/null and b/fuzz/corpus/fuzz_read/4f7581020bc39d9d7ec3c983f28068247cd79994 differ diff --git a/fuzz/corpus/fuzz_read/4fa61fc3a5b2d2a782829544244b72c668392736 b/fuzz/corpus/fuzz_read/4fa61fc3a5b2d2a782829544244b72c668392736 new file mode 100644 index 00000000..6915b93e Binary files /dev/null and b/fuzz/corpus/fuzz_read/4fa61fc3a5b2d2a782829544244b72c668392736 differ diff --git a/fuzz/corpus/fuzz_read/4fb12ae87531bb93a74b86ca96ac0b3a3940a801 b/fuzz/corpus/fuzz_read/4fb12ae87531bb93a74b86ca96ac0b3a3940a801 new file mode 100644 index 00000000..e16bdb0c Binary files /dev/null and b/fuzz/corpus/fuzz_read/4fb12ae87531bb93a74b86ca96ac0b3a3940a801 differ diff --git a/fuzz/corpus/fuzz_read/4fc185d24a3716149d32a4a9cd47dff072f2e4ed b/fuzz/corpus/fuzz_read/4fc185d24a3716149d32a4a9cd47dff072f2e4ed new file mode 100644 index 00000000..62b89b2c Binary files /dev/null and b/fuzz/corpus/fuzz_read/4fc185d24a3716149d32a4a9cd47dff072f2e4ed differ diff --git a/fuzz/corpus/fuzz_read/500fa5c3f9cc1f2a1cf2a5f53bee10eb676a6322 b/fuzz/corpus/fuzz_read/500fa5c3f9cc1f2a1cf2a5f53bee10eb676a6322 new file mode 100644 index 00000000..ee5a89ac Binary files /dev/null and b/fuzz/corpus/fuzz_read/500fa5c3f9cc1f2a1cf2a5f53bee10eb676a6322 differ diff --git a/fuzz/corpus/fuzz_read/5031faf3c803ed6a39fa8a2f3cb89204a01c87d8 b/fuzz/corpus/fuzz_read/5031faf3c803ed6a39fa8a2f3cb89204a01c87d8 new file mode 100644 index 00000000..432479d7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5031faf3c803ed6a39fa8a2f3cb89204a01c87d8 differ diff --git a/fuzz/corpus/fuzz_read/503998ee3084feb3a7e348d47c9f507ca6100cce b/fuzz/corpus/fuzz_read/503998ee3084feb3a7e348d47c9f507ca6100cce new file mode 100644 index 00000000..c54a6ba5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/503998ee3084feb3a7e348d47c9f507ca6100cce differ diff --git a/fuzz/corpus/fuzz_read/5096f06634b987f30e94b6067f848a9299d94c72 b/fuzz/corpus/fuzz_read/5096f06634b987f30e94b6067f848a9299d94c72 new file mode 100644 index 00000000..0ca34709 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5096f06634b987f30e94b6067f848a9299d94c72 differ diff --git a/fuzz/corpus/fuzz_read/50bff1471850aaf43e3896585e771055735dbeaa b/fuzz/corpus/fuzz_read/50bff1471850aaf43e3896585e771055735dbeaa new file mode 100644 index 00000000..4c73d600 Binary files /dev/null and b/fuzz/corpus/fuzz_read/50bff1471850aaf43e3896585e771055735dbeaa differ diff --git a/fuzz/corpus/fuzz_read/50c5a64c349cb23c15c99ab90b35501b27e606c4 b/fuzz/corpus/fuzz_read/50c5a64c349cb23c15c99ab90b35501b27e606c4 new file mode 100644 index 00000000..35b16ef0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/50c5a64c349cb23c15c99ab90b35501b27e606c4 differ diff --git a/fuzz/corpus/fuzz_read/511a99458545bfa87bcfc352b198dc8b3645d54f b/fuzz/corpus/fuzz_read/511a99458545bfa87bcfc352b198dc8b3645d54f new file mode 100644 index 00000000..00cfc2d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/511a99458545bfa87bcfc352b198dc8b3645d54f differ diff --git a/fuzz/corpus/fuzz_read/5165382f43ea30c41ef761b2ed2c2ea7df24b648 b/fuzz/corpus/fuzz_read/5165382f43ea30c41ef761b2ed2c2ea7df24b648 new file mode 100644 index 00000000..3576990a Binary files /dev/null and b/fuzz/corpus/fuzz_read/5165382f43ea30c41ef761b2ed2c2ea7df24b648 differ diff --git a/fuzz/corpus/fuzz_read/5246ab97400026e4c12b66b9f6d7647d7e5c5521 b/fuzz/corpus/fuzz_read/5246ab97400026e4c12b66b9f6d7647d7e5c5521 new file mode 100644 index 00000000..c24af70d Binary files /dev/null and b/fuzz/corpus/fuzz_read/5246ab97400026e4c12b66b9f6d7647d7e5c5521 differ diff --git a/fuzz/corpus/fuzz_read/52e374fbf4dfb45564d0a814ca197125e02ba673 b/fuzz/corpus/fuzz_read/52e374fbf4dfb45564d0a814ca197125e02ba673 new file mode 100644 index 00000000..b7242e38 Binary files /dev/null and b/fuzz/corpus/fuzz_read/52e374fbf4dfb45564d0a814ca197125e02ba673 differ diff --git a/fuzz/corpus/fuzz_read/52f6d4ade9462e652db20627d5d79052fb702b4c b/fuzz/corpus/fuzz_read/52f6d4ade9462e652db20627d5d79052fb702b4c new file mode 100644 index 00000000..ebf65064 Binary files /dev/null and b/fuzz/corpus/fuzz_read/52f6d4ade9462e652db20627d5d79052fb702b4c differ diff --git a/fuzz/corpus/fuzz_read/5310325915f51940dc2b649c1c71a96af08b1f3e b/fuzz/corpus/fuzz_read/5310325915f51940dc2b649c1c71a96af08b1f3e new file mode 100644 index 00000000..46e9118d Binary files /dev/null and b/fuzz/corpus/fuzz_read/5310325915f51940dc2b649c1c71a96af08b1f3e differ diff --git a/fuzz/corpus/fuzz_read/53bd157594d8783a55cf7f6b0835b633995db41a b/fuzz/corpus/fuzz_read/53bd157594d8783a55cf7f6b0835b633995db41a new file mode 100644 index 00000000..0397ca21 Binary files /dev/null and b/fuzz/corpus/fuzz_read/53bd157594d8783a55cf7f6b0835b633995db41a differ diff --git a/fuzz/corpus/fuzz_read/5468eadd71d1fcb1130d0382320996a58d3faeeb b/fuzz/corpus/fuzz_read/5468eadd71d1fcb1130d0382320996a58d3faeeb new file mode 100644 index 00000000..3eeb5d36 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5468eadd71d1fcb1130d0382320996a58d3faeeb differ diff --git a/fuzz/corpus/fuzz_read/54a7fe937409282b653bdf0c4e06ac65a0dbd708 b/fuzz/corpus/fuzz_read/54a7fe937409282b653bdf0c4e06ac65a0dbd708 new file mode 100644 index 00000000..9caf96ff Binary files /dev/null and b/fuzz/corpus/fuzz_read/54a7fe937409282b653bdf0c4e06ac65a0dbd708 differ diff --git a/fuzz/corpus/fuzz_read/54bee188be1ff28df3c7797299f8d65b2067a727 b/fuzz/corpus/fuzz_read/54bee188be1ff28df3c7797299f8d65b2067a727 new file mode 100644 index 00000000..75fdc04e Binary files /dev/null and b/fuzz/corpus/fuzz_read/54bee188be1ff28df3c7797299f8d65b2067a727 differ diff --git a/fuzz/corpus/fuzz_read/54cddfd5d102930f402528c65d018fd2c57dc386 b/fuzz/corpus/fuzz_read/54cddfd5d102930f402528c65d018fd2c57dc386 new file mode 100644 index 00000000..50a37a28 Binary files /dev/null and b/fuzz/corpus/fuzz_read/54cddfd5d102930f402528c65d018fd2c57dc386 differ diff --git a/fuzz/corpus/fuzz_read/54fe99f10344a52e8b15f8c9140f894d10a6fdc0 b/fuzz/corpus/fuzz_read/54fe99f10344a52e8b15f8c9140f894d10a6fdc0 new file mode 100644 index 00000000..353aee96 Binary files /dev/null and b/fuzz/corpus/fuzz_read/54fe99f10344a52e8b15f8c9140f894d10a6fdc0 differ diff --git a/fuzz/corpus/fuzz_read/555f0800b10fdd6a2437c19b19c3e3586299b353 b/fuzz/corpus/fuzz_read/555f0800b10fdd6a2437c19b19c3e3586299b353 new file mode 100644 index 00000000..a85eb23d Binary files /dev/null and b/fuzz/corpus/fuzz_read/555f0800b10fdd6a2437c19b19c3e3586299b353 differ diff --git a/fuzz/corpus/fuzz_read/5562c26b80c0858ede793abeaa7578ab751bfe93 b/fuzz/corpus/fuzz_read/5562c26b80c0858ede793abeaa7578ab751bfe93 new file mode 100644 index 00000000..84417a40 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5562c26b80c0858ede793abeaa7578ab751bfe93 differ diff --git a/fuzz/corpus/fuzz_read/5583e87cb30ed032216bccfb8e1fbef4a9fb6ea6 b/fuzz/corpus/fuzz_read/5583e87cb30ed032216bccfb8e1fbef4a9fb6ea6 new file mode 100644 index 00000000..d26cfdfb Binary files /dev/null and b/fuzz/corpus/fuzz_read/5583e87cb30ed032216bccfb8e1fbef4a9fb6ea6 differ diff --git a/fuzz/corpus/fuzz_read/55c781266a0eb8a2bc4c285071435e016c92d52d b/fuzz/corpus/fuzz_read/55c781266a0eb8a2bc4c285071435e016c92d52d new file mode 100644 index 00000000..5868771f Binary files /dev/null and b/fuzz/corpus/fuzz_read/55c781266a0eb8a2bc4c285071435e016c92d52d differ diff --git a/fuzz/corpus/fuzz_read/55e94b3a9b3d059fc4c2c1757b13b528d1b6b038 b/fuzz/corpus/fuzz_read/55e94b3a9b3d059fc4c2c1757b13b528d1b6b038 new file mode 100644 index 00000000..8cce168a Binary files /dev/null and b/fuzz/corpus/fuzz_read/55e94b3a9b3d059fc4c2c1757b13b528d1b6b038 differ diff --git a/fuzz/corpus/fuzz_read/562b8d3ea81bc80abdb342c2fa7d32b331f5b324 b/fuzz/corpus/fuzz_read/562b8d3ea81bc80abdb342c2fa7d32b331f5b324 new file mode 100644 index 00000000..f8e643dc Binary files /dev/null and b/fuzz/corpus/fuzz_read/562b8d3ea81bc80abdb342c2fa7d32b331f5b324 differ diff --git a/fuzz/corpus/fuzz_read/5640fa0f5aca6c497100b1a45b6f19e95882182a b/fuzz/corpus/fuzz_read/5640fa0f5aca6c497100b1a45b6f19e95882182a new file mode 100644 index 00000000..a4219487 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5640fa0f5aca6c497100b1a45b6f19e95882182a differ diff --git a/fuzz/corpus/fuzz_read/5670e18cd7f5bc6af2689d853327b263ac2e7ace b/fuzz/corpus/fuzz_read/5670e18cd7f5bc6af2689d853327b263ac2e7ace new file mode 100644 index 00000000..2fe5b1df Binary files /dev/null and b/fuzz/corpus/fuzz_read/5670e18cd7f5bc6af2689d853327b263ac2e7ace differ diff --git a/fuzz/corpus/fuzz_read/56a9756e18ffc1fa0a575a327bd0a71e3a358995 b/fuzz/corpus/fuzz_read/56a9756e18ffc1fa0a575a327bd0a71e3a358995 new file mode 100644 index 00000000..88b0d326 Binary files /dev/null and b/fuzz/corpus/fuzz_read/56a9756e18ffc1fa0a575a327bd0a71e3a358995 differ diff --git a/fuzz/corpus/fuzz_read/5713ff0f722c36f088ea1b4fe0a60ef9747d2a87 b/fuzz/corpus/fuzz_read/5713ff0f722c36f088ea1b4fe0a60ef9747d2a87 new file mode 100644 index 00000000..50c42082 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5713ff0f722c36f088ea1b4fe0a60ef9747d2a87 differ diff --git a/fuzz/corpus/fuzz_read/57ef495d0db860ece3a278b252d907531b4d3c6b b/fuzz/corpus/fuzz_read/57ef495d0db860ece3a278b252d907531b4d3c6b new file mode 100644 index 00000000..b30fb57c Binary files /dev/null and b/fuzz/corpus/fuzz_read/57ef495d0db860ece3a278b252d907531b4d3c6b differ diff --git a/fuzz/corpus/fuzz_read/57fb69d0a534b899633c4239fe0d01f0cd19c532 b/fuzz/corpus/fuzz_read/57fb69d0a534b899633c4239fe0d01f0cd19c532 new file mode 100644 index 00000000..a08191b9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/57fb69d0a534b899633c4239fe0d01f0cd19c532 differ diff --git a/fuzz/corpus/fuzz_read/59113c0d639c0d6ba42b41d1c1aeeeecbfa9c107 b/fuzz/corpus/fuzz_read/59113c0d639c0d6ba42b41d1c1aeeeecbfa9c107 new file mode 100644 index 00000000..ed39a851 Binary files /dev/null and b/fuzz/corpus/fuzz_read/59113c0d639c0d6ba42b41d1c1aeeeecbfa9c107 differ diff --git a/fuzz/corpus/fuzz_read/59b94e8833093662538f578ce42bbab20583daa1 b/fuzz/corpus/fuzz_read/59b94e8833093662538f578ce42bbab20583daa1 new file mode 100644 index 00000000..d68b5887 Binary files /dev/null and b/fuzz/corpus/fuzz_read/59b94e8833093662538f578ce42bbab20583daa1 differ diff --git a/fuzz/corpus/fuzz_read/5a0ec6a5fc9b7013b4ad67c99d81f2a4e6d2fc72 b/fuzz/corpus/fuzz_read/5a0ec6a5fc9b7013b4ad67c99d81f2a4e6d2fc72 new file mode 100644 index 00000000..41a51bc8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5a0ec6a5fc9b7013b4ad67c99d81f2a4e6d2fc72 differ diff --git a/fuzz/corpus/fuzz_read/5a5691a989d05b7fe1dedd5a367f6f86e2c521b6 b/fuzz/corpus/fuzz_read/5a5691a989d05b7fe1dedd5a367f6f86e2c521b6 new file mode 100644 index 00000000..3d969967 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5a5691a989d05b7fe1dedd5a367f6f86e2c521b6 differ diff --git a/fuzz/corpus/fuzz_read/5aaf7fb58fd6e65070a4b8a9f3ad8b5db0e1b573 b/fuzz/corpus/fuzz_read/5aaf7fb58fd6e65070a4b8a9f3ad8b5db0e1b573 new file mode 100644 index 00000000..4f7525ba Binary files /dev/null and b/fuzz/corpus/fuzz_read/5aaf7fb58fd6e65070a4b8a9f3ad8b5db0e1b573 differ diff --git a/fuzz/corpus/fuzz_read/5ace13dfcd27cb91fd7ba53c24537a8344db7326 b/fuzz/corpus/fuzz_read/5ace13dfcd27cb91fd7ba53c24537a8344db7326 new file mode 100644 index 00000000..c8e7fd01 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5ace13dfcd27cb91fd7ba53c24537a8344db7326 differ diff --git a/fuzz/corpus/fuzz_read/5af1e70eca81b32457de12ae850376800f4776b6 b/fuzz/corpus/fuzz_read/5af1e70eca81b32457de12ae850376800f4776b6 new file mode 100644 index 00000000..82618064 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5af1e70eca81b32457de12ae850376800f4776b6 differ diff --git a/fuzz/corpus/fuzz_read/5b407d9931439cc4ed73f6418b1da1ff1eb9ee5d b/fuzz/corpus/fuzz_read/5b407d9931439cc4ed73f6418b1da1ff1eb9ee5d new file mode 100644 index 00000000..dfc5e7f2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5b407d9931439cc4ed73f6418b1da1ff1eb9ee5d differ diff --git a/fuzz/corpus/fuzz_read/5b599a95f45636a67900d66b44555e16abd9ee2e b/fuzz/corpus/fuzz_read/5b599a95f45636a67900d66b44555e16abd9ee2e new file mode 100644 index 00000000..decd6ab8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5b599a95f45636a67900d66b44555e16abd9ee2e differ diff --git a/fuzz/corpus/fuzz_read/5b6956884d475e4118029d77371a97d692710406 b/fuzz/corpus/fuzz_read/5b6956884d475e4118029d77371a97d692710406 new file mode 100644 index 00000000..6427b161 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5b6956884d475e4118029d77371a97d692710406 differ diff --git a/fuzz/corpus/fuzz_read/5b9d4df77e828c0b8a82d29509f8071b78cbe568 b/fuzz/corpus/fuzz_read/5b9d4df77e828c0b8a82d29509f8071b78cbe568 new file mode 100644 index 00000000..b90dc26c Binary files /dev/null and b/fuzz/corpus/fuzz_read/5b9d4df77e828c0b8a82d29509f8071b78cbe568 differ diff --git a/fuzz/corpus/fuzz_read/5b9eb21c5378e9a76c598159b38162fb40a2854d b/fuzz/corpus/fuzz_read/5b9eb21c5378e9a76c598159b38162fb40a2854d new file mode 100644 index 00000000..cfb5e5df Binary files /dev/null and b/fuzz/corpus/fuzz_read/5b9eb21c5378e9a76c598159b38162fb40a2854d differ diff --git a/fuzz/corpus/fuzz_read/5ba9fa14f3f0f86f4b22ac255f0ae813e948f28c b/fuzz/corpus/fuzz_read/5ba9fa14f3f0f86f4b22ac255f0ae813e948f28c new file mode 100644 index 00000000..98ce78bd Binary files /dev/null and b/fuzz/corpus/fuzz_read/5ba9fa14f3f0f86f4b22ac255f0ae813e948f28c differ diff --git a/fuzz/corpus/fuzz_read/5c1189a3e65521b36c4c5e1f785861ca01f0fff9 b/fuzz/corpus/fuzz_read/5c1189a3e65521b36c4c5e1f785861ca01f0fff9 new file mode 100644 index 00000000..751ada1b Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c1189a3e65521b36c4c5e1f785861ca01f0fff9 differ diff --git a/fuzz/corpus/fuzz_read/5c57d6eeb8f460dde807b5813ff6f7d057bc1856 b/fuzz/corpus/fuzz_read/5c57d6eeb8f460dde807b5813ff6f7d057bc1856 new file mode 100644 index 00000000..e8fe19b0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c57d6eeb8f460dde807b5813ff6f7d057bc1856 differ diff --git a/fuzz/corpus/fuzz_read/5c660c1190b4858a48c450fa3247d268645c4a08 b/fuzz/corpus/fuzz_read/5c660c1190b4858a48c450fa3247d268645c4a08 new file mode 100644 index 00000000..c61dfd50 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c660c1190b4858a48c450fa3247d268645c4a08 differ diff --git a/fuzz/corpus/fuzz_read/5c8696ab323aee2c284caddbafa5de8f2ec98ff2 b/fuzz/corpus/fuzz_read/5c8696ab323aee2c284caddbafa5de8f2ec98ff2 new file mode 100644 index 00000000..4307630b Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c8696ab323aee2c284caddbafa5de8f2ec98ff2 differ diff --git a/fuzz/corpus/fuzz_read/5c97b60faa00117c21fc91513d61b5cf2cb49d27 b/fuzz/corpus/fuzz_read/5c97b60faa00117c21fc91513d61b5cf2cb49d27 new file mode 100644 index 00000000..7c82e713 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c97b60faa00117c21fc91513d61b5cf2cb49d27 differ diff --git a/fuzz/corpus/fuzz_read/5c98cd4177cb42879a5cb7cd77dd6a141e2a4ff7 b/fuzz/corpus/fuzz_read/5c98cd4177cb42879a5cb7cd77dd6a141e2a4ff7 new file mode 100644 index 00000000..a82a0d20 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5c98cd4177cb42879a5cb7cd77dd6a141e2a4ff7 differ diff --git a/fuzz/corpus/fuzz_read/5cb67423903964f641e69a80008336e8bcd8f670 b/fuzz/corpus/fuzz_read/5cb67423903964f641e69a80008336e8bcd8f670 new file mode 100644 index 00000000..f400b59a Binary files /dev/null and b/fuzz/corpus/fuzz_read/5cb67423903964f641e69a80008336e8bcd8f670 differ diff --git a/fuzz/corpus/fuzz_read/5d1feb7ed4f91b907a941771d0c65c3080d596ba b/fuzz/corpus/fuzz_read/5d1feb7ed4f91b907a941771d0c65c3080d596ba new file mode 100644 index 00000000..7aa02f8e Binary files /dev/null and b/fuzz/corpus/fuzz_read/5d1feb7ed4f91b907a941771d0c65c3080d596ba differ diff --git a/fuzz/corpus/fuzz_read/5d419c815ef2b763798d36fa2aad999614c2876b b/fuzz/corpus/fuzz_read/5d419c815ef2b763798d36fa2aad999614c2876b new file mode 100644 index 00000000..3f0f23ef Binary files /dev/null and b/fuzz/corpus/fuzz_read/5d419c815ef2b763798d36fa2aad999614c2876b differ diff --git a/fuzz/corpus/fuzz_read/5d5eaa4d541847ccc4e75c5ce4615852a9a6a03a b/fuzz/corpus/fuzz_read/5d5eaa4d541847ccc4e75c5ce4615852a9a6a03a new file mode 100644 index 00000000..856b3ba3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5d5eaa4d541847ccc4e75c5ce4615852a9a6a03a differ diff --git a/fuzz/corpus/fuzz_read/5d607f84af44f6f3e57094e45ccf5adfa79b12f8 b/fuzz/corpus/fuzz_read/5d607f84af44f6f3e57094e45ccf5adfa79b12f8 new file mode 100644 index 00000000..0fd213fe Binary files /dev/null and b/fuzz/corpus/fuzz_read/5d607f84af44f6f3e57094e45ccf5adfa79b12f8 differ diff --git a/fuzz/corpus/fuzz_read/5ddd40184e7cfff4be001e99c52cee2ad66d344c b/fuzz/corpus/fuzz_read/5ddd40184e7cfff4be001e99c52cee2ad66d344c new file mode 100644 index 00000000..2566d078 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5ddd40184e7cfff4be001e99c52cee2ad66d344c differ diff --git a/fuzz/corpus/fuzz_read/5ee0fb85f6c12466571287f6ae33a688e71d8953 b/fuzz/corpus/fuzz_read/5ee0fb85f6c12466571287f6ae33a688e71d8953 new file mode 100644 index 00000000..9c1030eb Binary files /dev/null and b/fuzz/corpus/fuzz_read/5ee0fb85f6c12466571287f6ae33a688e71d8953 differ diff --git a/fuzz/corpus/fuzz_read/5f0e0b64d8880fd1984b60fe72d6def18fe91a83 b/fuzz/corpus/fuzz_read/5f0e0b64d8880fd1984b60fe72d6def18fe91a83 new file mode 100644 index 00000000..7124827a Binary files /dev/null and b/fuzz/corpus/fuzz_read/5f0e0b64d8880fd1984b60fe72d6def18fe91a83 differ diff --git a/fuzz/corpus/fuzz_read/5f1da2b6309fae41db9efd074c42bd9b35b343ed b/fuzz/corpus/fuzz_read/5f1da2b6309fae41db9efd074c42bd9b35b343ed new file mode 100644 index 00000000..84719b45 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5f1da2b6309fae41db9efd074c42bd9b35b343ed differ diff --git a/fuzz/corpus/fuzz_read/5f44df42473399d7b6b8dba9749f7308868077c9 b/fuzz/corpus/fuzz_read/5f44df42473399d7b6b8dba9749f7308868077c9 new file mode 100644 index 00000000..9fef59c7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5f44df42473399d7b6b8dba9749f7308868077c9 differ diff --git a/fuzz/corpus/fuzz_read/5f991f472f30d0d2de41379b1e552075c9d6bbd4 b/fuzz/corpus/fuzz_read/5f991f472f30d0d2de41379b1e552075c9d6bbd4 new file mode 100644 index 00000000..f6a289e8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/5f991f472f30d0d2de41379b1e552075c9d6bbd4 differ diff --git a/fuzz/corpus/fuzz_read/6029b8442e40828df31c0c0e3b4d4d866f854761 b/fuzz/corpus/fuzz_read/6029b8442e40828df31c0c0e3b4d4d866f854761 new file mode 100644 index 00000000..37ad38fb Binary files /dev/null and b/fuzz/corpus/fuzz_read/6029b8442e40828df31c0c0e3b4d4d866f854761 differ diff --git a/fuzz/corpus/fuzz_read/60339f2531b29973d14ea0932e64e1eb271306e0 b/fuzz/corpus/fuzz_read/60339f2531b29973d14ea0932e64e1eb271306e0 new file mode 100644 index 00000000..b455bd7c Binary files /dev/null and b/fuzz/corpus/fuzz_read/60339f2531b29973d14ea0932e64e1eb271306e0 differ diff --git a/fuzz/corpus/fuzz_read/604561c54d2267ef3b9f5e6d7b3adcf7289e2fab b/fuzz/corpus/fuzz_read/604561c54d2267ef3b9f5e6d7b3adcf7289e2fab new file mode 100644 index 00000000..b790bc60 Binary files /dev/null and b/fuzz/corpus/fuzz_read/604561c54d2267ef3b9f5e6d7b3adcf7289e2fab differ diff --git a/fuzz/corpus/fuzz_read/604f4944a506e4a3f307760af7e79a3aedf8ad50 b/fuzz/corpus/fuzz_read/604f4944a506e4a3f307760af7e79a3aedf8ad50 new file mode 100644 index 00000000..8098acfd Binary files /dev/null and b/fuzz/corpus/fuzz_read/604f4944a506e4a3f307760af7e79a3aedf8ad50 differ diff --git a/fuzz/corpus/fuzz_read/605eb927a48053323dba6ca8cf4727b97c157ea6 b/fuzz/corpus/fuzz_read/605eb927a48053323dba6ca8cf4727b97c157ea6 new file mode 100644 index 00000000..866fdd53 Binary files /dev/null and b/fuzz/corpus/fuzz_read/605eb927a48053323dba6ca8cf4727b97c157ea6 differ diff --git a/fuzz/corpus/fuzz_read/60e426f9b019d26450cd34609532ab97138284f1 b/fuzz/corpus/fuzz_read/60e426f9b019d26450cd34609532ab97138284f1 new file mode 100644 index 00000000..c5b6acea Binary files /dev/null and b/fuzz/corpus/fuzz_read/60e426f9b019d26450cd34609532ab97138284f1 differ diff --git a/fuzz/corpus/fuzz_read/60ea8557c93c8f21a34a4768ef98806ee276f5d2 b/fuzz/corpus/fuzz_read/60ea8557c93c8f21a34a4768ef98806ee276f5d2 new file mode 100644 index 00000000..fb0823df Binary files /dev/null and b/fuzz/corpus/fuzz_read/60ea8557c93c8f21a34a4768ef98806ee276f5d2 differ diff --git a/fuzz/corpus/fuzz_read/613f3da2817a471b35f842418d9e0fa86c822f30 b/fuzz/corpus/fuzz_read/613f3da2817a471b35f842418d9e0fa86c822f30 new file mode 100644 index 00000000..6128a38b Binary files /dev/null and b/fuzz/corpus/fuzz_read/613f3da2817a471b35f842418d9e0fa86c822f30 differ diff --git a/fuzz/corpus/fuzz_read/61656b38a3f7c20631a659933f991658355e7022 b/fuzz/corpus/fuzz_read/61656b38a3f7c20631a659933f991658355e7022 new file mode 100644 index 00000000..2bf0f9f9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/61656b38a3f7c20631a659933f991658355e7022 differ diff --git a/fuzz/corpus/fuzz_read/616ee40fa845345c4369634df229565a65d02275 b/fuzz/corpus/fuzz_read/616ee40fa845345c4369634df229565a65d02275 new file mode 100644 index 00000000..b3c73356 Binary files /dev/null and b/fuzz/corpus/fuzz_read/616ee40fa845345c4369634df229565a65d02275 differ diff --git a/fuzz/corpus/fuzz_read/617b2c6b36b9507e3aec65c1decf47d3014f9635 b/fuzz/corpus/fuzz_read/617b2c6b36b9507e3aec65c1decf47d3014f9635 new file mode 100644 index 00000000..fd25e256 Binary files /dev/null and b/fuzz/corpus/fuzz_read/617b2c6b36b9507e3aec65c1decf47d3014f9635 differ diff --git a/fuzz/corpus/fuzz_read/61847c1ffae80014072d470d183ac78e386b56ea b/fuzz/corpus/fuzz_read/61847c1ffae80014072d470d183ac78e386b56ea new file mode 100644 index 00000000..8a6b624e Binary files /dev/null and b/fuzz/corpus/fuzz_read/61847c1ffae80014072d470d183ac78e386b56ea differ diff --git a/fuzz/corpus/fuzz_read/6218f95ab5732e532bdd562ebeec5e1ce0950c5f b/fuzz/corpus/fuzz_read/6218f95ab5732e532bdd562ebeec5e1ce0950c5f new file mode 100644 index 00000000..1ba43953 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6218f95ab5732e532bdd562ebeec5e1ce0950c5f differ diff --git a/fuzz/corpus/fuzz_read/6233c4efcda57859735407cfa5da25006a231504 b/fuzz/corpus/fuzz_read/6233c4efcda57859735407cfa5da25006a231504 new file mode 100644 index 00000000..d1fe2256 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6233c4efcda57859735407cfa5da25006a231504 differ diff --git a/fuzz/corpus/fuzz_read/623d54accd45b38d0d01b4656ce5fb5eeb4aaff3 b/fuzz/corpus/fuzz_read/623d54accd45b38d0d01b4656ce5fb5eeb4aaff3 new file mode 100644 index 00000000..56b50fe1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/623d54accd45b38d0d01b4656ce5fb5eeb4aaff3 differ diff --git a/fuzz/corpus/fuzz_read/62b3a4e9f62cb54b8bb7aedf8ff43bbdf8402d71 b/fuzz/corpus/fuzz_read/62b3a4e9f62cb54b8bb7aedf8ff43bbdf8402d71 new file mode 100644 index 00000000..ae2f288f Binary files /dev/null and b/fuzz/corpus/fuzz_read/62b3a4e9f62cb54b8bb7aedf8ff43bbdf8402d71 differ diff --git a/fuzz/corpus/fuzz_read/62ee54441fe2b89bb4ed692377d58272b3ca4e25 b/fuzz/corpus/fuzz_read/62ee54441fe2b89bb4ed692377d58272b3ca4e25 new file mode 100644 index 00000000..b9114d13 Binary files /dev/null and b/fuzz/corpus/fuzz_read/62ee54441fe2b89bb4ed692377d58272b3ca4e25 differ diff --git a/fuzz/corpus/fuzz_read/62fc9c8f540c909a47ee287267d8eca9bb2aaca5 b/fuzz/corpus/fuzz_read/62fc9c8f540c909a47ee287267d8eca9bb2aaca5 new file mode 100644 index 00000000..921cbb0b Binary files /dev/null and b/fuzz/corpus/fuzz_read/62fc9c8f540c909a47ee287267d8eca9bb2aaca5 differ diff --git a/fuzz/corpus/fuzz_read/63375baec121be15dc5d06d1d882aa6c9c0b745c b/fuzz/corpus/fuzz_read/63375baec121be15dc5d06d1d882aa6c9c0b745c new file mode 100644 index 00000000..2cc90073 Binary files /dev/null and b/fuzz/corpus/fuzz_read/63375baec121be15dc5d06d1d882aa6c9c0b745c differ diff --git a/fuzz/corpus/fuzz_read/63476d5cff91bc31a1ca1ed031d6c48ea332a6be b/fuzz/corpus/fuzz_read/63476d5cff91bc31a1ca1ed031d6c48ea332a6be new file mode 100644 index 00000000..d298eec9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/63476d5cff91bc31a1ca1ed031d6c48ea332a6be differ diff --git a/fuzz/corpus/fuzz_read/637f735570b4468f7e443f3544aa28c155013b28 b/fuzz/corpus/fuzz_read/637f735570b4468f7e443f3544aa28c155013b28 new file mode 100644 index 00000000..eb971dd8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/637f735570b4468f7e443f3544aa28c155013b28 differ diff --git a/fuzz/corpus/fuzz_read/63b8e4504c6d469eb040092bd3af5b88148873b4 b/fuzz/corpus/fuzz_read/63b8e4504c6d469eb040092bd3af5b88148873b4 new file mode 100644 index 00000000..f39c8c15 Binary files /dev/null and b/fuzz/corpus/fuzz_read/63b8e4504c6d469eb040092bd3af5b88148873b4 differ diff --git a/fuzz/corpus/fuzz_read/63c14222ca1d021de8d6d82b9d6197b3feb2fc70 b/fuzz/corpus/fuzz_read/63c14222ca1d021de8d6d82b9d6197b3feb2fc70 new file mode 100644 index 00000000..5832b6c8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/63c14222ca1d021de8d6d82b9d6197b3feb2fc70 differ diff --git a/fuzz/corpus/fuzz_read/63ff7d4a1785cff599fed7825b814704453fc1a5 b/fuzz/corpus/fuzz_read/63ff7d4a1785cff599fed7825b814704453fc1a5 new file mode 100644 index 00000000..cbc02ab7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/63ff7d4a1785cff599fed7825b814704453fc1a5 differ diff --git a/fuzz/corpus/fuzz_read/646a6153d3719634409aa3142b5ea006d84a8d31 b/fuzz/corpus/fuzz_read/646a6153d3719634409aa3142b5ea006d84a8d31 new file mode 100644 index 00000000..1ae8f5ae Binary files /dev/null and b/fuzz/corpus/fuzz_read/646a6153d3719634409aa3142b5ea006d84a8d31 differ diff --git a/fuzz/corpus/fuzz_read/647bc345c1bb38ef155ee6c09eb01bc0f6845691 b/fuzz/corpus/fuzz_read/647bc345c1bb38ef155ee6c09eb01bc0f6845691 new file mode 100644 index 00000000..a0107a7b Binary files /dev/null and b/fuzz/corpus/fuzz_read/647bc345c1bb38ef155ee6c09eb01bc0f6845691 differ diff --git a/fuzz/corpus/fuzz_read/65032c21d585978e6c1ebe5a03282c792b30fc87 b/fuzz/corpus/fuzz_read/65032c21d585978e6c1ebe5a03282c792b30fc87 new file mode 100644 index 00000000..a56a6ba6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/65032c21d585978e6c1ebe5a03282c792b30fc87 differ diff --git a/fuzz/corpus/fuzz_read/654f3280a9eeae363f94c662f87254ad8fc6c496 b/fuzz/corpus/fuzz_read/654f3280a9eeae363f94c662f87254ad8fc6c496 new file mode 100644 index 00000000..431be132 Binary files /dev/null and b/fuzz/corpus/fuzz_read/654f3280a9eeae363f94c662f87254ad8fc6c496 differ diff --git a/fuzz/corpus/fuzz_read/6588d98199419cb3e46cb69f567be2c3c33cbef1 b/fuzz/corpus/fuzz_read/6588d98199419cb3e46cb69f567be2c3c33cbef1 new file mode 100644 index 00000000..49e38a73 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6588d98199419cb3e46cb69f567be2c3c33cbef1 differ diff --git a/fuzz/corpus/fuzz_read/65e49bb39da2fc1debf73123b913e0c0ee5bb5a9 b/fuzz/corpus/fuzz_read/65e49bb39da2fc1debf73123b913e0c0ee5bb5a9 new file mode 100644 index 00000000..5b519fa8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/65e49bb39da2fc1debf73123b913e0c0ee5bb5a9 differ diff --git a/fuzz/corpus/fuzz_read/65fcb547b8de606fd9f434f31d77272564e5ca3a b/fuzz/corpus/fuzz_read/65fcb547b8de606fd9f434f31d77272564e5ca3a new file mode 100644 index 00000000..7b838b5a Binary files /dev/null and b/fuzz/corpus/fuzz_read/65fcb547b8de606fd9f434f31d77272564e5ca3a differ diff --git a/fuzz/corpus/fuzz_read/66096be5d78f359f97ed44f7ef046d66bd3cd3eb b/fuzz/corpus/fuzz_read/66096be5d78f359f97ed44f7ef046d66bd3cd3eb new file mode 100644 index 00000000..d4157f5c Binary files /dev/null and b/fuzz/corpus/fuzz_read/66096be5d78f359f97ed44f7ef046d66bd3cd3eb differ diff --git a/fuzz/corpus/fuzz_read/66542e3946b409de0f410b240a4487109cce4c92 b/fuzz/corpus/fuzz_read/66542e3946b409de0f410b240a4487109cce4c92 new file mode 100644 index 00000000..dc071f22 Binary files /dev/null and b/fuzz/corpus/fuzz_read/66542e3946b409de0f410b240a4487109cce4c92 differ diff --git a/fuzz/corpus/fuzz_read/66e6e527464f91c213b0459bdc1a811366e73b11 b/fuzz/corpus/fuzz_read/66e6e527464f91c213b0459bdc1a811366e73b11 new file mode 100644 index 00000000..ebbbfc7b Binary files /dev/null and b/fuzz/corpus/fuzz_read/66e6e527464f91c213b0459bdc1a811366e73b11 differ diff --git a/fuzz/corpus/fuzz_read/66fe8debf639476e12eaf48c168e87f234f43003 b/fuzz/corpus/fuzz_read/66fe8debf639476e12eaf48c168e87f234f43003 new file mode 100644 index 00000000..cf986639 Binary files /dev/null and b/fuzz/corpus/fuzz_read/66fe8debf639476e12eaf48c168e87f234f43003 differ diff --git a/fuzz/corpus/fuzz_read/67284658a75c6786fb73261ddea5a7eeb1b337bd b/fuzz/corpus/fuzz_read/67284658a75c6786fb73261ddea5a7eeb1b337bd new file mode 100644 index 00000000..5c27508f Binary files /dev/null and b/fuzz/corpus/fuzz_read/67284658a75c6786fb73261ddea5a7eeb1b337bd differ diff --git a/fuzz/corpus/fuzz_read/673c40d619c108e17efddaceea4ab02a8d02653e b/fuzz/corpus/fuzz_read/673c40d619c108e17efddaceea4ab02a8d02653e new file mode 100644 index 00000000..ec230f46 Binary files /dev/null and b/fuzz/corpus/fuzz_read/673c40d619c108e17efddaceea4ab02a8d02653e differ diff --git a/fuzz/corpus/fuzz_read/6754c12137016bae10e54c8cc8d2e800bdf166af b/fuzz/corpus/fuzz_read/6754c12137016bae10e54c8cc8d2e800bdf166af new file mode 100644 index 00000000..c98a38a9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6754c12137016bae10e54c8cc8d2e800bdf166af differ diff --git a/fuzz/corpus/fuzz_read/685a9078f6073f3e0b6bc397343e75bf5cd59c59 b/fuzz/corpus/fuzz_read/685a9078f6073f3e0b6bc397343e75bf5cd59c59 new file mode 100644 index 00000000..16032127 Binary files /dev/null and b/fuzz/corpus/fuzz_read/685a9078f6073f3e0b6bc397343e75bf5cd59c59 differ diff --git a/fuzz/corpus/fuzz_read/68638704a8eb0db510b116e6dfd199e5318add92 b/fuzz/corpus/fuzz_read/68638704a8eb0db510b116e6dfd199e5318add92 new file mode 100644 index 00000000..b431575a Binary files /dev/null and b/fuzz/corpus/fuzz_read/68638704a8eb0db510b116e6dfd199e5318add92 differ diff --git a/fuzz/corpus/fuzz_read/68824214c5ea754eb6b4fa7ede4454b48ed9b523 b/fuzz/corpus/fuzz_read/68824214c5ea754eb6b4fa7ede4454b48ed9b523 new file mode 100644 index 00000000..d92e52ba Binary files /dev/null and b/fuzz/corpus/fuzz_read/68824214c5ea754eb6b4fa7ede4454b48ed9b523 differ diff --git a/fuzz/corpus/fuzz_read/68971419e5fb88db5962ebc0ca14d086667e5c9b b/fuzz/corpus/fuzz_read/68971419e5fb88db5962ebc0ca14d086667e5c9b new file mode 100644 index 00000000..eaa29eac Binary files /dev/null and b/fuzz/corpus/fuzz_read/68971419e5fb88db5962ebc0ca14d086667e5c9b differ diff --git a/fuzz/corpus/fuzz_read/692c96a6be0dc539c087d7bffe5728412ac763b1 b/fuzz/corpus/fuzz_read/692c96a6be0dc539c087d7bffe5728412ac763b1 new file mode 100644 index 00000000..445a384b Binary files /dev/null and b/fuzz/corpus/fuzz_read/692c96a6be0dc539c087d7bffe5728412ac763b1 differ diff --git a/fuzz/corpus/fuzz_read/696aaaedc647adfb0197c1d06123b1bc6ed8fc4c b/fuzz/corpus/fuzz_read/696aaaedc647adfb0197c1d06123b1bc6ed8fc4c new file mode 100644 index 00000000..a0352c66 Binary files /dev/null and b/fuzz/corpus/fuzz_read/696aaaedc647adfb0197c1d06123b1bc6ed8fc4c differ diff --git a/fuzz/corpus/fuzz_read/69717e7a0e6286d9607bb420528d9b12622e47e8 b/fuzz/corpus/fuzz_read/69717e7a0e6286d9607bb420528d9b12622e47e8 new file mode 100644 index 00000000..16a72ca7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/69717e7a0e6286d9607bb420528d9b12622e47e8 differ diff --git a/fuzz/corpus/fuzz_read/69d84ba476edeb416eb6dd4d64c16b0b4a42fa93 b/fuzz/corpus/fuzz_read/69d84ba476edeb416eb6dd4d64c16b0b4a42fa93 new file mode 100644 index 00000000..07efce35 Binary files /dev/null and b/fuzz/corpus/fuzz_read/69d84ba476edeb416eb6dd4d64c16b0b4a42fa93 differ diff --git a/fuzz/corpus/fuzz_read/69ef6f31b53caf29f8944c9c307b18344e2398ed b/fuzz/corpus/fuzz_read/69ef6f31b53caf29f8944c9c307b18344e2398ed new file mode 100644 index 00000000..69760596 Binary files /dev/null and b/fuzz/corpus/fuzz_read/69ef6f31b53caf29f8944c9c307b18344e2398ed differ diff --git a/fuzz/corpus/fuzz_read/6a085d496f9c4554d02f3a4e3c30f19b08853545 b/fuzz/corpus/fuzz_read/6a085d496f9c4554d02f3a4e3c30f19b08853545 new file mode 100644 index 00000000..27d81786 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6a085d496f9c4554d02f3a4e3c30f19b08853545 differ diff --git a/fuzz/corpus/fuzz_read/6a2a43658d670e0c8835bd1ce1509cf9b8ef5c01 b/fuzz/corpus/fuzz_read/6a2a43658d670e0c8835bd1ce1509cf9b8ef5c01 new file mode 100644 index 00000000..56c2e192 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6a2a43658d670e0c8835bd1ce1509cf9b8ef5c01 differ diff --git a/fuzz/corpus/fuzz_read/6a60baccb00108468e88a8fd698be2e6eb81d757 b/fuzz/corpus/fuzz_read/6a60baccb00108468e88a8fd698be2e6eb81d757 new file mode 100644 index 00000000..0fbdac27 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6a60baccb00108468e88a8fd698be2e6eb81d757 differ diff --git a/fuzz/corpus/fuzz_read/6a820f51ed02fca8ed85dd88de61a94d9600d7bd b/fuzz/corpus/fuzz_read/6a820f51ed02fca8ed85dd88de61a94d9600d7bd new file mode 100644 index 00000000..40b551ab Binary files /dev/null and b/fuzz/corpus/fuzz_read/6a820f51ed02fca8ed85dd88de61a94d9600d7bd differ diff --git a/fuzz/corpus/fuzz_read/6ae7d610ca708b6a49d46ab328b725ddbf1358af b/fuzz/corpus/fuzz_read/6ae7d610ca708b6a49d46ab328b725ddbf1358af new file mode 100644 index 00000000..40dc181b Binary files /dev/null and b/fuzz/corpus/fuzz_read/6ae7d610ca708b6a49d46ab328b725ddbf1358af differ diff --git a/fuzz/corpus/fuzz_read/6b2f9a3cfb407d0a2acdeb3ebb840779cfaab200 b/fuzz/corpus/fuzz_read/6b2f9a3cfb407d0a2acdeb3ebb840779cfaab200 new file mode 100644 index 00000000..8c7d7b78 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6b2f9a3cfb407d0a2acdeb3ebb840779cfaab200 differ diff --git a/fuzz/corpus/fuzz_read/6b350c0164ec2e9035717b211e6366bde47aa2a2 b/fuzz/corpus/fuzz_read/6b350c0164ec2e9035717b211e6366bde47aa2a2 new file mode 100644 index 00000000..5b0917b9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6b350c0164ec2e9035717b211e6366bde47aa2a2 differ diff --git a/fuzz/corpus/fuzz_read/6b6f25998968bdfa2517b6ac8b1fc2c1cf1c1a61 b/fuzz/corpus/fuzz_read/6b6f25998968bdfa2517b6ac8b1fc2c1cf1c1a61 new file mode 100644 index 00000000..55d41aa8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6b6f25998968bdfa2517b6ac8b1fc2c1cf1c1a61 differ diff --git a/fuzz/corpus/fuzz_read/6b7a2a4876f538acbad4af5733014b56b5442322 b/fuzz/corpus/fuzz_read/6b7a2a4876f538acbad4af5733014b56b5442322 new file mode 100644 index 00000000..16f37ed8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6b7a2a4876f538acbad4af5733014b56b5442322 differ diff --git a/fuzz/corpus/fuzz_read/6bb48fae7fcf53cf5eb34fe421d154aca9d1fff6 b/fuzz/corpus/fuzz_read/6bb48fae7fcf53cf5eb34fe421d154aca9d1fff6 new file mode 100644 index 00000000..fa5f81a7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6bb48fae7fcf53cf5eb34fe421d154aca9d1fff6 differ diff --git a/fuzz/corpus/fuzz_read/6c00ebff20218ed6977df19161bfc4624c026caa b/fuzz/corpus/fuzz_read/6c00ebff20218ed6977df19161bfc4624c026caa new file mode 100644 index 00000000..b5266dd7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c00ebff20218ed6977df19161bfc4624c026caa differ diff --git a/fuzz/corpus/fuzz_read/6c3670e360456955928ab71ccdb8e28ee3a12d96 b/fuzz/corpus/fuzz_read/6c3670e360456955928ab71ccdb8e28ee3a12d96 new file mode 100644 index 00000000..54d1d5e3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c3670e360456955928ab71ccdb8e28ee3a12d96 differ diff --git a/fuzz/corpus/fuzz_read/6c4b9197754c4b7e126bf3618905db6db837f2fa b/fuzz/corpus/fuzz_read/6c4b9197754c4b7e126bf3618905db6db837f2fa new file mode 100644 index 00000000..c1633669 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c4b9197754c4b7e126bf3618905db6db837f2fa differ diff --git a/fuzz/corpus/fuzz_read/6c68d63fd7a31187a1a0c83992029c0d5727a4cd b/fuzz/corpus/fuzz_read/6c68d63fd7a31187a1a0c83992029c0d5727a4cd new file mode 100644 index 00000000..89857e1f Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c68d63fd7a31187a1a0c83992029c0d5727a4cd differ diff --git a/fuzz/corpus/fuzz_read/6c9d1f4a54d2fc0721796d377273cd579afff09c b/fuzz/corpus/fuzz_read/6c9d1f4a54d2fc0721796d377273cd579afff09c new file mode 100644 index 00000000..5880b59c Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c9d1f4a54d2fc0721796d377273cd579afff09c differ diff --git a/fuzz/corpus/fuzz_read/6c9dd85e0447d6943aae940669971fd53961065a b/fuzz/corpus/fuzz_read/6c9dd85e0447d6943aae940669971fd53961065a new file mode 100644 index 00000000..ca05194d Binary files /dev/null and b/fuzz/corpus/fuzz_read/6c9dd85e0447d6943aae940669971fd53961065a differ diff --git a/fuzz/corpus/fuzz_read/6ca75a9653e8c5cf0c37909ef72dda52737742df b/fuzz/corpus/fuzz_read/6ca75a9653e8c5cf0c37909ef72dda52737742df new file mode 100644 index 00000000..5566e328 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6ca75a9653e8c5cf0c37909ef72dda52737742df differ diff --git a/fuzz/corpus/fuzz_read/6cbd625f02ddea1cb8e9c0bef72cef2ffccc1813 b/fuzz/corpus/fuzz_read/6cbd625f02ddea1cb8e9c0bef72cef2ffccc1813 new file mode 100644 index 00000000..2e9d971b Binary files /dev/null and b/fuzz/corpus/fuzz_read/6cbd625f02ddea1cb8e9c0bef72cef2ffccc1813 differ diff --git a/fuzz/corpus/fuzz_read/6cc4af072bbf5a91dc018fc3dbee76bd0295f8be b/fuzz/corpus/fuzz_read/6cc4af072bbf5a91dc018fc3dbee76bd0295f8be new file mode 100644 index 00000000..ed6c8f65 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6cc4af072bbf5a91dc018fc3dbee76bd0295f8be differ diff --git a/fuzz/corpus/fuzz_read/6cf7a3b6c6133b32b78c71a1552f02920d987c78 b/fuzz/corpus/fuzz_read/6cf7a3b6c6133b32b78c71a1552f02920d987c78 new file mode 100644 index 00000000..231e0285 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6cf7a3b6c6133b32b78c71a1552f02920d987c78 differ diff --git a/fuzz/corpus/fuzz_read/6d23668a53adb789bdbe16097b6b4f4e2c838987 b/fuzz/corpus/fuzz_read/6d23668a53adb789bdbe16097b6b4f4e2c838987 new file mode 100644 index 00000000..b06d9ddf Binary files /dev/null and b/fuzz/corpus/fuzz_read/6d23668a53adb789bdbe16097b6b4f4e2c838987 differ diff --git a/fuzz/corpus/fuzz_read/6d352b40fb6d4dc68f25939082efb5288de38f1c b/fuzz/corpus/fuzz_read/6d352b40fb6d4dc68f25939082efb5288de38f1c new file mode 100644 index 00000000..7a59b8eb Binary files /dev/null and b/fuzz/corpus/fuzz_read/6d352b40fb6d4dc68f25939082efb5288de38f1c differ diff --git a/fuzz/corpus/fuzz_read/6d5caa201f8a6ea0578179d650fb30566887e126 b/fuzz/corpus/fuzz_read/6d5caa201f8a6ea0578179d650fb30566887e126 new file mode 100644 index 00000000..834566e3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6d5caa201f8a6ea0578179d650fb30566887e126 differ diff --git a/fuzz/corpus/fuzz_read/6e019e22510c9b37fbda7c0a0b2ffc99546d7412 b/fuzz/corpus/fuzz_read/6e019e22510c9b37fbda7c0a0b2ffc99546d7412 new file mode 100644 index 00000000..284c6adf Binary files /dev/null and b/fuzz/corpus/fuzz_read/6e019e22510c9b37fbda7c0a0b2ffc99546d7412 differ diff --git a/fuzz/corpus/fuzz_read/6e1b341d5da5a1ebb2b439aaa6e3ea7234ca7b31 b/fuzz/corpus/fuzz_read/6e1b341d5da5a1ebb2b439aaa6e3ea7234ca7b31 new file mode 100644 index 00000000..e770a375 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6e1b341d5da5a1ebb2b439aaa6e3ea7234ca7b31 differ diff --git a/fuzz/corpus/fuzz_read/6e344bc4c632e01f5be14e74d0a4b3e6364cd1d3 b/fuzz/corpus/fuzz_read/6e344bc4c632e01f5be14e74d0a4b3e6364cd1d3 new file mode 100644 index 00000000..9f402cf5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6e344bc4c632e01f5be14e74d0a4b3e6364cd1d3 differ diff --git a/fuzz/corpus/fuzz_read/6f191c7efd483a778c310b4f1f73dcea65b5932f b/fuzz/corpus/fuzz_read/6f191c7efd483a778c310b4f1f73dcea65b5932f new file mode 100644 index 00000000..daa8c70a Binary files /dev/null and b/fuzz/corpus/fuzz_read/6f191c7efd483a778c310b4f1f73dcea65b5932f differ diff --git a/fuzz/corpus/fuzz_read/6f2738d712a8df9a2fbefcb367d10d50626f4fcd b/fuzz/corpus/fuzz_read/6f2738d712a8df9a2fbefcb367d10d50626f4fcd new file mode 100644 index 00000000..29247628 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6f2738d712a8df9a2fbefcb367d10d50626f4fcd differ diff --git a/fuzz/corpus/fuzz_read/6f8784110714ad2d4c87e1b066382b375dd1a3e6 b/fuzz/corpus/fuzz_read/6f8784110714ad2d4c87e1b066382b375dd1a3e6 new file mode 100644 index 00000000..25486ec4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/6f8784110714ad2d4c87e1b066382b375dd1a3e6 differ diff --git a/fuzz/corpus/fuzz_read/6fd85b6ab1b25de4d3a92e6b0dd24cf797e5a861 b/fuzz/corpus/fuzz_read/6fd85b6ab1b25de4d3a92e6b0dd24cf797e5a861 new file mode 100644 index 00000000..7e9b422a Binary files /dev/null and b/fuzz/corpus/fuzz_read/6fd85b6ab1b25de4d3a92e6b0dd24cf797e5a861 differ diff --git a/fuzz/corpus/fuzz_read/70171ec51d58c12b3d88abd1dfca0d88b34045db b/fuzz/corpus/fuzz_read/70171ec51d58c12b3d88abd1dfca0d88b34045db new file mode 100644 index 00000000..afa99434 Binary files /dev/null and b/fuzz/corpus/fuzz_read/70171ec51d58c12b3d88abd1dfca0d88b34045db differ diff --git a/fuzz/corpus/fuzz_read/702a212023ef8b21fa8ed6f093cf47d16c4bc175 b/fuzz/corpus/fuzz_read/702a212023ef8b21fa8ed6f093cf47d16c4bc175 new file mode 100644 index 00000000..2f4b4392 Binary files /dev/null and b/fuzz/corpus/fuzz_read/702a212023ef8b21fa8ed6f093cf47d16c4bc175 differ diff --git a/fuzz/corpus/fuzz_read/70398e56cb62c988cd09e4a57b6fdd34fefcf3e2 b/fuzz/corpus/fuzz_read/70398e56cb62c988cd09e4a57b6fdd34fefcf3e2 new file mode 100644 index 00000000..acd15cea Binary files /dev/null and b/fuzz/corpus/fuzz_read/70398e56cb62c988cd09e4a57b6fdd34fefcf3e2 differ diff --git a/fuzz/corpus/fuzz_read/7119ae69f30c546b7c28e701111841dddc32c9f2 b/fuzz/corpus/fuzz_read/7119ae69f30c546b7c28e701111841dddc32c9f2 new file mode 100644 index 00000000..d9d66c27 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7119ae69f30c546b7c28e701111841dddc32c9f2 differ diff --git a/fuzz/corpus/fuzz_read/7192c234616c01bb0bce3cf587296676f4356630 b/fuzz/corpus/fuzz_read/7192c234616c01bb0bce3cf587296676f4356630 new file mode 100644 index 00000000..bb2dcdd9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7192c234616c01bb0bce3cf587296676f4356630 differ diff --git a/fuzz/corpus/fuzz_read/71b94768a04860b987d0506d06942dfeed7b5198 b/fuzz/corpus/fuzz_read/71b94768a04860b987d0506d06942dfeed7b5198 new file mode 100644 index 00000000..7a55ed05 Binary files /dev/null and b/fuzz/corpus/fuzz_read/71b94768a04860b987d0506d06942dfeed7b5198 differ diff --git a/fuzz/corpus/fuzz_read/71c7f0bc157895442647968994f8978d44787c01 b/fuzz/corpus/fuzz_read/71c7f0bc157895442647968994f8978d44787c01 new file mode 100644 index 00000000..dc8172a6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/71c7f0bc157895442647968994f8978d44787c01 differ diff --git a/fuzz/corpus/fuzz_read/71ffccd338a58f5700c46d103363ee163938274a b/fuzz/corpus/fuzz_read/71ffccd338a58f5700c46d103363ee163938274a new file mode 100644 index 00000000..7c0b9382 Binary files /dev/null and b/fuzz/corpus/fuzz_read/71ffccd338a58f5700c46d103363ee163938274a differ diff --git a/fuzz/corpus/fuzz_read/7238c62f32e2a60a86c5a7aa2a9cefc03dbaf2c5 b/fuzz/corpus/fuzz_read/7238c62f32e2a60a86c5a7aa2a9cefc03dbaf2c5 new file mode 100644 index 00000000..8541bbbc Binary files /dev/null and b/fuzz/corpus/fuzz_read/7238c62f32e2a60a86c5a7aa2a9cefc03dbaf2c5 differ diff --git a/fuzz/corpus/fuzz_read/724db1db611efe57cb78616a98006e8865bad0f1 b/fuzz/corpus/fuzz_read/724db1db611efe57cb78616a98006e8865bad0f1 new file mode 100644 index 00000000..5c30bbf9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/724db1db611efe57cb78616a98006e8865bad0f1 differ diff --git a/fuzz/corpus/fuzz_read/72713480fb7ba4bd7d06acce45d71b0870054317 b/fuzz/corpus/fuzz_read/72713480fb7ba4bd7d06acce45d71b0870054317 new file mode 100644 index 00000000..baf48b53 Binary files /dev/null and b/fuzz/corpus/fuzz_read/72713480fb7ba4bd7d06acce45d71b0870054317 differ diff --git a/fuzz/corpus/fuzz_read/728c5741cb3a1545c4bd2c2931114673714408c0 b/fuzz/corpus/fuzz_read/728c5741cb3a1545c4bd2c2931114673714408c0 new file mode 100644 index 00000000..5f3384ef Binary files /dev/null and b/fuzz/corpus/fuzz_read/728c5741cb3a1545c4bd2c2931114673714408c0 differ diff --git a/fuzz/corpus/fuzz_read/7313398d84dd54791db6d65ad3a92e0dcb583554 b/fuzz/corpus/fuzz_read/7313398d84dd54791db6d65ad3a92e0dcb583554 new file mode 100644 index 00000000..d2046242 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7313398d84dd54791db6d65ad3a92e0dcb583554 differ diff --git a/fuzz/corpus/fuzz_read/734d064f7f33e1d708af84ee40a805ebaf6e2ff8 b/fuzz/corpus/fuzz_read/734d064f7f33e1d708af84ee40a805ebaf6e2ff8 new file mode 100644 index 00000000..7f4058a5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/734d064f7f33e1d708af84ee40a805ebaf6e2ff8 differ diff --git a/fuzz/corpus/fuzz_read/7356f63bad67f5b6243d83d573f62e1c1d123c05 b/fuzz/corpus/fuzz_read/7356f63bad67f5b6243d83d573f62e1c1d123c05 new file mode 100644 index 00000000..2b2ed594 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7356f63bad67f5b6243d83d573f62e1c1d123c05 differ diff --git a/fuzz/corpus/fuzz_read/736f64aa8f178417d7c8cb88f40ade71b752553b b/fuzz/corpus/fuzz_read/736f64aa8f178417d7c8cb88f40ade71b752553b new file mode 100644 index 00000000..c9442064 Binary files /dev/null and b/fuzz/corpus/fuzz_read/736f64aa8f178417d7c8cb88f40ade71b752553b differ diff --git a/fuzz/corpus/fuzz_read/73efdfe01efed3862a5bafc69103bd3af81b8f45 b/fuzz/corpus/fuzz_read/73efdfe01efed3862a5bafc69103bd3af81b8f45 new file mode 100644 index 00000000..dffe97d1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/73efdfe01efed3862a5bafc69103bd3af81b8f45 differ diff --git a/fuzz/corpus/fuzz_read/74072a2985fc6f841ff6e641b8c6020e653b69fc b/fuzz/corpus/fuzz_read/74072a2985fc6f841ff6e641b8c6020e653b69fc new file mode 100644 index 00000000..8521e846 Binary files /dev/null and b/fuzz/corpus/fuzz_read/74072a2985fc6f841ff6e641b8c6020e653b69fc differ diff --git a/fuzz/corpus/fuzz_read/75af3b27bd2f283640c693a5aae0d0cbea03438a b/fuzz/corpus/fuzz_read/75af3b27bd2f283640c693a5aae0d0cbea03438a new file mode 100644 index 00000000..80a28259 Binary files /dev/null and b/fuzz/corpus/fuzz_read/75af3b27bd2f283640c693a5aae0d0cbea03438a differ diff --git a/fuzz/corpus/fuzz_read/75e4224d7f33715088dc32731ab6afff32bb306a b/fuzz/corpus/fuzz_read/75e4224d7f33715088dc32731ab6afff32bb306a new file mode 100644 index 00000000..ca33cad8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/75e4224d7f33715088dc32731ab6afff32bb306a differ diff --git a/fuzz/corpus/fuzz_read/75ec35c7ad243649b58793ac418284b14c489b3b b/fuzz/corpus/fuzz_read/75ec35c7ad243649b58793ac418284b14c489b3b new file mode 100644 index 00000000..d839181c Binary files /dev/null and b/fuzz/corpus/fuzz_read/75ec35c7ad243649b58793ac418284b14c489b3b differ diff --git a/fuzz/corpus/fuzz_read/7639b27be95f460da17c48cc277e70b23752b244 b/fuzz/corpus/fuzz_read/7639b27be95f460da17c48cc277e70b23752b244 new file mode 100644 index 00000000..0d6cc26d Binary files /dev/null and b/fuzz/corpus/fuzz_read/7639b27be95f460da17c48cc277e70b23752b244 differ diff --git a/fuzz/corpus/fuzz_read/765ef6900f0a20d68e0ac8113f31ceb2542d4d6c b/fuzz/corpus/fuzz_read/765ef6900f0a20d68e0ac8113f31ceb2542d4d6c new file mode 100644 index 00000000..42f7b544 Binary files /dev/null and b/fuzz/corpus/fuzz_read/765ef6900f0a20d68e0ac8113f31ceb2542d4d6c differ diff --git a/fuzz/corpus/fuzz_read/766137e0c519a7bd52d45617ecff6126ce81b78c b/fuzz/corpus/fuzz_read/766137e0c519a7bd52d45617ecff6126ce81b78c new file mode 100644 index 00000000..809f9add Binary files /dev/null and b/fuzz/corpus/fuzz_read/766137e0c519a7bd52d45617ecff6126ce81b78c differ diff --git a/fuzz/corpus/fuzz_read/76b4703a29ad62fca35eb60074b37d1b38263864 b/fuzz/corpus/fuzz_read/76b4703a29ad62fca35eb60074b37d1b38263864 new file mode 100644 index 00000000..4ab732b9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/76b4703a29ad62fca35eb60074b37d1b38263864 differ diff --git a/fuzz/corpus/fuzz_read/76f84ef8705a60214fb55c144f4f92772665b4aa b/fuzz/corpus/fuzz_read/76f84ef8705a60214fb55c144f4f92772665b4aa new file mode 100644 index 00000000..6985e112 Binary files /dev/null and b/fuzz/corpus/fuzz_read/76f84ef8705a60214fb55c144f4f92772665b4aa differ diff --git a/fuzz/corpus/fuzz_read/770238c92df2c12ef9975b5094ef803139ddca07 b/fuzz/corpus/fuzz_read/770238c92df2c12ef9975b5094ef803139ddca07 new file mode 100644 index 00000000..44c5d395 Binary files /dev/null and b/fuzz/corpus/fuzz_read/770238c92df2c12ef9975b5094ef803139ddca07 differ diff --git a/fuzz/corpus/fuzz_read/772d7884bd854e692f065b65d567ee33d886ea0d b/fuzz/corpus/fuzz_read/772d7884bd854e692f065b65d567ee33d886ea0d new file mode 100644 index 00000000..db6cd756 Binary files /dev/null and b/fuzz/corpus/fuzz_read/772d7884bd854e692f065b65d567ee33d886ea0d differ diff --git a/fuzz/corpus/fuzz_read/773ef271e25cb02272b79ce5df1d2a5499ebbe82 b/fuzz/corpus/fuzz_read/773ef271e25cb02272b79ce5df1d2a5499ebbe82 new file mode 100644 index 00000000..00020b62 Binary files /dev/null and b/fuzz/corpus/fuzz_read/773ef271e25cb02272b79ce5df1d2a5499ebbe82 differ diff --git a/fuzz/corpus/fuzz_read/77e823ca0c53e7c7d7c5d75ab27d6eb3ed1cd43a b/fuzz/corpus/fuzz_read/77e823ca0c53e7c7d7c5d75ab27d6eb3ed1cd43a new file mode 100644 index 00000000..5d441ee9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/77e823ca0c53e7c7d7c5d75ab27d6eb3ed1cd43a differ diff --git a/fuzz/corpus/fuzz_read/780fb2b56c202b3264f966abe600df5e73b3ff08 b/fuzz/corpus/fuzz_read/780fb2b56c202b3264f966abe600df5e73b3ff08 new file mode 100644 index 00000000..43a35b55 Binary files /dev/null and b/fuzz/corpus/fuzz_read/780fb2b56c202b3264f966abe600df5e73b3ff08 differ diff --git a/fuzz/corpus/fuzz_read/78499253f7dd8faa5fe628aa841948cb6d71a58a b/fuzz/corpus/fuzz_read/78499253f7dd8faa5fe628aa841948cb6d71a58a new file mode 100644 index 00000000..0c1ee30c Binary files /dev/null and b/fuzz/corpus/fuzz_read/78499253f7dd8faa5fe628aa841948cb6d71a58a differ diff --git a/fuzz/corpus/fuzz_read/78da3fecd94e23ad15714dd55ea81df9daee6626 b/fuzz/corpus/fuzz_read/78da3fecd94e23ad15714dd55ea81df9daee6626 new file mode 100644 index 00000000..59ad05b8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/78da3fecd94e23ad15714dd55ea81df9daee6626 differ diff --git a/fuzz/corpus/fuzz_read/78f59d5753a26e54d449d15f8b63fda895c50614 b/fuzz/corpus/fuzz_read/78f59d5753a26e54d449d15f8b63fda895c50614 new file mode 100644 index 00000000..efd56745 Binary files /dev/null and b/fuzz/corpus/fuzz_read/78f59d5753a26e54d449d15f8b63fda895c50614 differ diff --git a/fuzz/corpus/fuzz_read/7929e3edf8630ce713b4c7cb7aa92d6b4cef9a1a b/fuzz/corpus/fuzz_read/7929e3edf8630ce713b4c7cb7aa92d6b4cef9a1a new file mode 100644 index 00000000..2c2cf808 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7929e3edf8630ce713b4c7cb7aa92d6b4cef9a1a differ diff --git a/fuzz/corpus/fuzz_read/79965d3494bbe82938c3bf8580cee1726af56643 b/fuzz/corpus/fuzz_read/79965d3494bbe82938c3bf8580cee1726af56643 new file mode 100644 index 00000000..baba8b10 Binary files /dev/null and b/fuzz/corpus/fuzz_read/79965d3494bbe82938c3bf8580cee1726af56643 differ diff --git a/fuzz/corpus/fuzz_read/799ea957e894fd41fd772e07a5c50b26fc050d03 b/fuzz/corpus/fuzz_read/799ea957e894fd41fd772e07a5c50b26fc050d03 new file mode 100644 index 00000000..7b0b243c Binary files /dev/null and b/fuzz/corpus/fuzz_read/799ea957e894fd41fd772e07a5c50b26fc050d03 differ diff --git a/fuzz/corpus/fuzz_read/79a34edbcc5608234c7246843cb17baa2b370b75 b/fuzz/corpus/fuzz_read/79a34edbcc5608234c7246843cb17baa2b370b75 new file mode 100644 index 00000000..77ffec33 Binary files /dev/null and b/fuzz/corpus/fuzz_read/79a34edbcc5608234c7246843cb17baa2b370b75 differ diff --git a/fuzz/corpus/fuzz_read/79f8d7ca70cf3febf37800d6268ddab43dbdf62f b/fuzz/corpus/fuzz_read/79f8d7ca70cf3febf37800d6268ddab43dbdf62f new file mode 100644 index 00000000..a01d94c9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/79f8d7ca70cf3febf37800d6268ddab43dbdf62f differ diff --git a/fuzz/corpus/fuzz_read/7a2a80a9f6d07b9a2b02ceec0db1064583126cdc b/fuzz/corpus/fuzz_read/7a2a80a9f6d07b9a2b02ceec0db1064583126cdc new file mode 100644 index 00000000..01208cf1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7a2a80a9f6d07b9a2b02ceec0db1064583126cdc differ diff --git a/fuzz/corpus/fuzz_read/7a75885b428eb76812342ca905abb40a24b020b8 b/fuzz/corpus/fuzz_read/7a75885b428eb76812342ca905abb40a24b020b8 new file mode 100644 index 00000000..b564ebba Binary files /dev/null and b/fuzz/corpus/fuzz_read/7a75885b428eb76812342ca905abb40a24b020b8 differ diff --git a/fuzz/corpus/fuzz_read/7a93f1229553f614a1edfdc961f2b7d1ebe241ec b/fuzz/corpus/fuzz_read/7a93f1229553f614a1edfdc961f2b7d1ebe241ec new file mode 100644 index 00000000..5e890894 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7a93f1229553f614a1edfdc961f2b7d1ebe241ec differ diff --git a/fuzz/corpus/fuzz_read/7ac943579a1858bd7c5159be06314d49e0bafd44 b/fuzz/corpus/fuzz_read/7ac943579a1858bd7c5159be06314d49e0bafd44 new file mode 100644 index 00000000..91102259 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7ac943579a1858bd7c5159be06314d49e0bafd44 differ diff --git a/fuzz/corpus/fuzz_read/7af80d8b17968df5329e8cdfc33fe57c4bb9e547 b/fuzz/corpus/fuzz_read/7af80d8b17968df5329e8cdfc33fe57c4bb9e547 new file mode 100644 index 00000000..697d72e0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7af80d8b17968df5329e8cdfc33fe57c4bb9e547 differ diff --git a/fuzz/corpus/fuzz_read/7b33c53c70119fbb5c5141437eaa85e93c3246d1 b/fuzz/corpus/fuzz_read/7b33c53c70119fbb5c5141437eaa85e93c3246d1 new file mode 100644 index 00000000..66808e83 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7b33c53c70119fbb5c5141437eaa85e93c3246d1 differ diff --git a/fuzz/corpus/fuzz_read/7b45485fe9a68120ec3005a1ef88db6acc04db26 b/fuzz/corpus/fuzz_read/7b45485fe9a68120ec3005a1ef88db6acc04db26 new file mode 100644 index 00000000..702b7fc7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7b45485fe9a68120ec3005a1ef88db6acc04db26 differ diff --git a/fuzz/corpus/fuzz_read/7b87d1019b3063fae1638c251fbadeb22a943ba1 b/fuzz/corpus/fuzz_read/7b87d1019b3063fae1638c251fbadeb22a943ba1 new file mode 100644 index 00000000..d3d170bd Binary files /dev/null and b/fuzz/corpus/fuzz_read/7b87d1019b3063fae1638c251fbadeb22a943ba1 differ diff --git a/fuzz/corpus/fuzz_read/7c447a62998e93bbe2c65e6a931bfc56b9cc23d9 b/fuzz/corpus/fuzz_read/7c447a62998e93bbe2c65e6a931bfc56b9cc23d9 new file mode 100644 index 00000000..2b902fdc Binary files /dev/null and b/fuzz/corpus/fuzz_read/7c447a62998e93bbe2c65e6a931bfc56b9cc23d9 differ diff --git a/fuzz/corpus/fuzz_read/7c67f90b3b413a38ed814465a04b09447056101f b/fuzz/corpus/fuzz_read/7c67f90b3b413a38ed814465a04b09447056101f new file mode 100644 index 00000000..109c46de Binary files /dev/null and b/fuzz/corpus/fuzz_read/7c67f90b3b413a38ed814465a04b09447056101f differ diff --git a/fuzz/corpus/fuzz_read/7c8a9581f144cc08f8110091cb53cf9b7e232f61 b/fuzz/corpus/fuzz_read/7c8a9581f144cc08f8110091cb53cf9b7e232f61 new file mode 100644 index 00000000..a04e6179 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7c8a9581f144cc08f8110091cb53cf9b7e232f61 differ diff --git a/fuzz/corpus/fuzz_read/7c8f634bb477bca02818ad5bb73bc12fbc73d6ff b/fuzz/corpus/fuzz_read/7c8f634bb477bca02818ad5bb73bc12fbc73d6ff new file mode 100644 index 00000000..d70f986b Binary files /dev/null and b/fuzz/corpus/fuzz_read/7c8f634bb477bca02818ad5bb73bc12fbc73d6ff differ diff --git a/fuzz/corpus/fuzz_read/7cc1af09697f8a7865b0e12d7669d66b9f114a3e b/fuzz/corpus/fuzz_read/7cc1af09697f8a7865b0e12d7669d66b9f114a3e new file mode 100644 index 00000000..28eaa56f Binary files /dev/null and b/fuzz/corpus/fuzz_read/7cc1af09697f8a7865b0e12d7669d66b9f114a3e differ diff --git a/fuzz/corpus/fuzz_read/7cf6b09c6310ac681fa8b242084f6f77b6391976 b/fuzz/corpus/fuzz_read/7cf6b09c6310ac681fa8b242084f6f77b6391976 new file mode 100644 index 00000000..a7edc3ee Binary files /dev/null and b/fuzz/corpus/fuzz_read/7cf6b09c6310ac681fa8b242084f6f77b6391976 differ diff --git a/fuzz/corpus/fuzz_read/7d39be4e3dc03e7a5e4b4bf01c7615c3ea3ced62 b/fuzz/corpus/fuzz_read/7d39be4e3dc03e7a5e4b4bf01c7615c3ea3ced62 new file mode 100644 index 00000000..abc03f14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d39be4e3dc03e7a5e4b4bf01c7615c3ea3ced62 differ diff --git a/fuzz/corpus/fuzz_read/7d5860e10b5b34f7d1904b92906782dea6d8b8ac b/fuzz/corpus/fuzz_read/7d5860e10b5b34f7d1904b92906782dea6d8b8ac new file mode 100644 index 00000000..b66025ee Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d5860e10b5b34f7d1904b92906782dea6d8b8ac differ diff --git a/fuzz/corpus/fuzz_read/7d58d2407af030b5c42878e63465571488803bd7 b/fuzz/corpus/fuzz_read/7d58d2407af030b5c42878e63465571488803bd7 new file mode 100644 index 00000000..88d59439 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d58d2407af030b5c42878e63465571488803bd7 differ diff --git a/fuzz/corpus/fuzz_read/7d5a03323105468fc5ad709dffbadb799e58f950 b/fuzz/corpus/fuzz_read/7d5a03323105468fc5ad709dffbadb799e58f950 new file mode 100644 index 00000000..57d8f9b6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d5a03323105468fc5ad709dffbadb799e58f950 differ diff --git a/fuzz/corpus/fuzz_read/7d650ae71e4055ae7039044f22222a9baf56e929 b/fuzz/corpus/fuzz_read/7d650ae71e4055ae7039044f22222a9baf56e929 new file mode 100644 index 00000000..a3fec57a Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d650ae71e4055ae7039044f22222a9baf56e929 differ diff --git a/fuzz/corpus/fuzz_read/7d78210aa94b9e7e8b9ff390c76216eaefb7061c b/fuzz/corpus/fuzz_read/7d78210aa94b9e7e8b9ff390c76216eaefb7061c new file mode 100644 index 00000000..4c42739b Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d78210aa94b9e7e8b9ff390c76216eaefb7061c differ diff --git a/fuzz/corpus/fuzz_read/7d9d59af47f8bdd409d78aa6a6bd23a260b1c72e b/fuzz/corpus/fuzz_read/7d9d59af47f8bdd409d78aa6a6bd23a260b1c72e new file mode 100644 index 00000000..1d69793f Binary files /dev/null and b/fuzz/corpus/fuzz_read/7d9d59af47f8bdd409d78aa6a6bd23a260b1c72e differ diff --git a/fuzz/corpus/fuzz_read/7dff803cfe75d6db78254d5b2b64ee69249d7cef b/fuzz/corpus/fuzz_read/7dff803cfe75d6db78254d5b2b64ee69249d7cef new file mode 100644 index 00000000..2b3edeb6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7dff803cfe75d6db78254d5b2b64ee69249d7cef differ diff --git a/fuzz/corpus/fuzz_read/7e111e7996c05196807883533a365131736912cc b/fuzz/corpus/fuzz_read/7e111e7996c05196807883533a365131736912cc new file mode 100644 index 00000000..3405ee24 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7e111e7996c05196807883533a365131736912cc differ diff --git a/fuzz/corpus/fuzz_read/7e64eb6cb12fbafee97980dcf8345f1332bf92e8 b/fuzz/corpus/fuzz_read/7e64eb6cb12fbafee97980dcf8345f1332bf92e8 new file mode 100644 index 00000000..faa1c877 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7e64eb6cb12fbafee97980dcf8345f1332bf92e8 differ diff --git a/fuzz/corpus/fuzz_read/7e9ba0ea44d59415f7a2bc65dec7c9f5085f0be0 b/fuzz/corpus/fuzz_read/7e9ba0ea44d59415f7a2bc65dec7c9f5085f0be0 new file mode 100644 index 00000000..b220f180 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7e9ba0ea44d59415f7a2bc65dec7c9f5085f0be0 differ diff --git a/fuzz/corpus/fuzz_read/7f19933f263fa3944b254f8caea77f22294145e4 b/fuzz/corpus/fuzz_read/7f19933f263fa3944b254f8caea77f22294145e4 new file mode 100644 index 00000000..d1fddacf Binary files /dev/null and b/fuzz/corpus/fuzz_read/7f19933f263fa3944b254f8caea77f22294145e4 differ diff --git a/fuzz/corpus/fuzz_read/7f42ee9aee7d28b46c29eefb083c5a4360cd2513 b/fuzz/corpus/fuzz_read/7f42ee9aee7d28b46c29eefb083c5a4360cd2513 new file mode 100644 index 00000000..d3621b59 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7f42ee9aee7d28b46c29eefb083c5a4360cd2513 differ diff --git a/fuzz/corpus/fuzz_read/7f539bfb6128e78a3bd7797d67d83aba0c5896b4 b/fuzz/corpus/fuzz_read/7f539bfb6128e78a3bd7797d67d83aba0c5896b4 new file mode 100644 index 00000000..7476575f Binary files /dev/null and b/fuzz/corpus/fuzz_read/7f539bfb6128e78a3bd7797d67d83aba0c5896b4 differ diff --git a/fuzz/corpus/fuzz_read/7f9b91eb75ca446b26e936355e3c833578269d30 b/fuzz/corpus/fuzz_read/7f9b91eb75ca446b26e936355e3c833578269d30 new file mode 100644 index 00000000..35c1ef90 Binary files /dev/null and b/fuzz/corpus/fuzz_read/7f9b91eb75ca446b26e936355e3c833578269d30 differ diff --git a/fuzz/corpus/fuzz_read/7fbf5a20b70cb445829077ceef9e172f713d22c1 b/fuzz/corpus/fuzz_read/7fbf5a20b70cb445829077ceef9e172f713d22c1 new file mode 100644 index 00000000..8a19a3cb Binary files /dev/null and b/fuzz/corpus/fuzz_read/7fbf5a20b70cb445829077ceef9e172f713d22c1 differ diff --git a/fuzz/corpus/fuzz_read/7ff6846087d3762f2d9fc9c2d60166905b215242 b/fuzz/corpus/fuzz_read/7ff6846087d3762f2d9fc9c2d60166905b215242 new file mode 100644 index 00000000..15fb86fa Binary files /dev/null and b/fuzz/corpus/fuzz_read/7ff6846087d3762f2d9fc9c2d60166905b215242 differ diff --git a/fuzz/corpus/fuzz_read/80155ed7de3d687eeaba79ce3d2b9e5dfd3bd403 b/fuzz/corpus/fuzz_read/80155ed7de3d687eeaba79ce3d2b9e5dfd3bd403 new file mode 100644 index 00000000..34c6f703 Binary files /dev/null and b/fuzz/corpus/fuzz_read/80155ed7de3d687eeaba79ce3d2b9e5dfd3bd403 differ diff --git a/fuzz/corpus/fuzz_read/8070b166bef205c221220b97043b247eb24f2c59 b/fuzz/corpus/fuzz_read/8070b166bef205c221220b97043b247eb24f2c59 new file mode 100644 index 00000000..3dd795d1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8070b166bef205c221220b97043b247eb24f2c59 differ diff --git a/fuzz/corpus/fuzz_read/80fa825c5ded5814d5b10c48c5abdf171e7a9a63 b/fuzz/corpus/fuzz_read/80fa825c5ded5814d5b10c48c5abdf171e7a9a63 new file mode 100644 index 00000000..5049f318 Binary files /dev/null and b/fuzz/corpus/fuzz_read/80fa825c5ded5814d5b10c48c5abdf171e7a9a63 differ diff --git a/fuzz/corpus/fuzz_read/8127d73620580728103afbbd7bde6d532179c3c2 b/fuzz/corpus/fuzz_read/8127d73620580728103afbbd7bde6d532179c3c2 new file mode 100644 index 00000000..b840386f Binary files /dev/null and b/fuzz/corpus/fuzz_read/8127d73620580728103afbbd7bde6d532179c3c2 differ diff --git a/fuzz/corpus/fuzz_read/813898f90e4d956e53de316a5da43baf880648be b/fuzz/corpus/fuzz_read/813898f90e4d956e53de316a5da43baf880648be new file mode 100644 index 00000000..3267c734 Binary files /dev/null and b/fuzz/corpus/fuzz_read/813898f90e4d956e53de316a5da43baf880648be differ diff --git a/fuzz/corpus/fuzz_read/81559b4e8b2a4443778789cb813979bf5b4bb824 b/fuzz/corpus/fuzz_read/81559b4e8b2a4443778789cb813979bf5b4bb824 new file mode 100644 index 00000000..7f30203a Binary files /dev/null and b/fuzz/corpus/fuzz_read/81559b4e8b2a4443778789cb813979bf5b4bb824 differ diff --git a/fuzz/corpus/fuzz_read/8166af1cb8690d444957de1ed52e75aa9df74f43 b/fuzz/corpus/fuzz_read/8166af1cb8690d444957de1ed52e75aa9df74f43 new file mode 100644 index 00000000..0c51e4ca Binary files /dev/null and b/fuzz/corpus/fuzz_read/8166af1cb8690d444957de1ed52e75aa9df74f43 differ diff --git a/fuzz/corpus/fuzz_read/81b7c762632de666f34d1c5f28ba218fa3f4dffa b/fuzz/corpus/fuzz_read/81b7c762632de666f34d1c5f28ba218fa3f4dffa new file mode 100644 index 00000000..841b6845 Binary files /dev/null and b/fuzz/corpus/fuzz_read/81b7c762632de666f34d1c5f28ba218fa3f4dffa differ diff --git a/fuzz/corpus/fuzz_read/82227e4873ee9025f6f46e44e4744e03ce733aed b/fuzz/corpus/fuzz_read/82227e4873ee9025f6f46e44e4744e03ce733aed new file mode 100644 index 00000000..6dbbc748 Binary files /dev/null and b/fuzz/corpus/fuzz_read/82227e4873ee9025f6f46e44e4744e03ce733aed differ diff --git a/fuzz/corpus/fuzz_read/823e831d85c9a28ca57bcb53f831c36caaca2168 b/fuzz/corpus/fuzz_read/823e831d85c9a28ca57bcb53f831c36caaca2168 new file mode 100644 index 00000000..bdc9f6c0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/823e831d85c9a28ca57bcb53f831c36caaca2168 differ diff --git a/fuzz/corpus/fuzz_read/82a1cba2fac4784f0b64c744d3191cc69b5f967e b/fuzz/corpus/fuzz_read/82a1cba2fac4784f0b64c744d3191cc69b5f967e new file mode 100644 index 00000000..e003acc9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/82a1cba2fac4784f0b64c744d3191cc69b5f967e differ diff --git a/fuzz/corpus/fuzz_read/82b8a8e6e70e9770b7acf31b8393a5f7304cf340 b/fuzz/corpus/fuzz_read/82b8a8e6e70e9770b7acf31b8393a5f7304cf340 new file mode 100644 index 00000000..52e553f5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/82b8a8e6e70e9770b7acf31b8393a5f7304cf340 differ diff --git a/fuzz/corpus/fuzz_read/82bec6dd0853570a8b384c25b10c4f82f12b02c4 b/fuzz/corpus/fuzz_read/82bec6dd0853570a8b384c25b10c4f82f12b02c4 new file mode 100644 index 00000000..9dd3d41c Binary files /dev/null and b/fuzz/corpus/fuzz_read/82bec6dd0853570a8b384c25b10c4f82f12b02c4 differ diff --git a/fuzz/corpus/fuzz_read/82c83f65d5d1e6fdaa7455c0cb0909eab4fe146d b/fuzz/corpus/fuzz_read/82c83f65d5d1e6fdaa7455c0cb0909eab4fe146d new file mode 100644 index 00000000..44ea090c Binary files /dev/null and b/fuzz/corpus/fuzz_read/82c83f65d5d1e6fdaa7455c0cb0909eab4fe146d differ diff --git a/fuzz/corpus/fuzz_read/82d4c17bfb3c31659948bf97d41dbf7f0e807db1 b/fuzz/corpus/fuzz_read/82d4c17bfb3c31659948bf97d41dbf7f0e807db1 new file mode 100644 index 00000000..a428ca7e Binary files /dev/null and b/fuzz/corpus/fuzz_read/82d4c17bfb3c31659948bf97d41dbf7f0e807db1 differ diff --git a/fuzz/corpus/fuzz_read/83a0700e325e9705bc905c67ea6ab90b939b877a b/fuzz/corpus/fuzz_read/83a0700e325e9705bc905c67ea6ab90b939b877a new file mode 100644 index 00000000..2dd1696b Binary files /dev/null and b/fuzz/corpus/fuzz_read/83a0700e325e9705bc905c67ea6ab90b939b877a differ diff --git a/fuzz/corpus/fuzz_read/83ccd57005c7c29ae0a91f6dc20599c44d12bf39 b/fuzz/corpus/fuzz_read/83ccd57005c7c29ae0a91f6dc20599c44d12bf39 new file mode 100644 index 00000000..eb073ca3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/83ccd57005c7c29ae0a91f6dc20599c44d12bf39 differ diff --git a/fuzz/corpus/fuzz_read/844fc04aeddbe449364b29d5645144289649231b b/fuzz/corpus/fuzz_read/844fc04aeddbe449364b29d5645144289649231b new file mode 100644 index 00000000..3de84339 Binary files /dev/null and b/fuzz/corpus/fuzz_read/844fc04aeddbe449364b29d5645144289649231b differ diff --git a/fuzz/corpus/fuzz_read/8456de5af53b9f226861a8d9e4ea5bfb8b2c986b b/fuzz/corpus/fuzz_read/8456de5af53b9f226861a8d9e4ea5bfb8b2c986b new file mode 100644 index 00000000..c345b551 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8456de5af53b9f226861a8d9e4ea5bfb8b2c986b differ diff --git a/fuzz/corpus/fuzz_read/84c5c9a3b04ebe8ad33f37dfa546619da4dcd4d7 b/fuzz/corpus/fuzz_read/84c5c9a3b04ebe8ad33f37dfa546619da4dcd4d7 new file mode 100644 index 00000000..e3839cff Binary files /dev/null and b/fuzz/corpus/fuzz_read/84c5c9a3b04ebe8ad33f37dfa546619da4dcd4d7 differ diff --git a/fuzz/corpus/fuzz_read/84d584feea6d0618059e06d81f8e1124e960297d b/fuzz/corpus/fuzz_read/84d584feea6d0618059e06d81f8e1124e960297d new file mode 100644 index 00000000..b962da1c Binary files /dev/null and b/fuzz/corpus/fuzz_read/84d584feea6d0618059e06d81f8e1124e960297d differ diff --git a/fuzz/corpus/fuzz_read/84ea69a8b56bed237e65c8cb7b93aaa965a0824a b/fuzz/corpus/fuzz_read/84ea69a8b56bed237e65c8cb7b93aaa965a0824a new file mode 100644 index 00000000..6f9fa071 Binary files /dev/null and b/fuzz/corpus/fuzz_read/84ea69a8b56bed237e65c8cb7b93aaa965a0824a differ diff --git a/fuzz/corpus/fuzz_read/85003344288f10dfeb7a897da126af9246376158 b/fuzz/corpus/fuzz_read/85003344288f10dfeb7a897da126af9246376158 new file mode 100644 index 00000000..3ff3ee62 Binary files /dev/null and b/fuzz/corpus/fuzz_read/85003344288f10dfeb7a897da126af9246376158 differ diff --git a/fuzz/corpus/fuzz_read/8506b4b5b56359615c1f2426be6c814245f0f723 b/fuzz/corpus/fuzz_read/8506b4b5b56359615c1f2426be6c814245f0f723 new file mode 100644 index 00000000..8b813d1c Binary files /dev/null and b/fuzz/corpus/fuzz_read/8506b4b5b56359615c1f2426be6c814245f0f723 differ diff --git a/fuzz/corpus/fuzz_read/857447c7055c13b98d7359a9c6f77ddf833b108f b/fuzz/corpus/fuzz_read/857447c7055c13b98d7359a9c6f77ddf833b108f new file mode 100644 index 00000000..d413f31b Binary files /dev/null and b/fuzz/corpus/fuzz_read/857447c7055c13b98d7359a9c6f77ddf833b108f differ diff --git a/fuzz/corpus/fuzz_read/85c9a4aa686956d58b2bd46933556368e9f5e1e6 b/fuzz/corpus/fuzz_read/85c9a4aa686956d58b2bd46933556368e9f5e1e6 new file mode 100644 index 00000000..0e11406a Binary files /dev/null and b/fuzz/corpus/fuzz_read/85c9a4aa686956d58b2bd46933556368e9f5e1e6 differ diff --git a/fuzz/corpus/fuzz_read/8646578284455aaee27c0c2cfae92b04068bce0c b/fuzz/corpus/fuzz_read/8646578284455aaee27c0c2cfae92b04068bce0c new file mode 100644 index 00000000..ccd2cdb5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8646578284455aaee27c0c2cfae92b04068bce0c differ diff --git a/fuzz/corpus/fuzz_read/864b641794e7531ee3514707e64707f4e235b0a3 b/fuzz/corpus/fuzz_read/864b641794e7531ee3514707e64707f4e235b0a3 new file mode 100644 index 00000000..4a145f95 Binary files /dev/null and b/fuzz/corpus/fuzz_read/864b641794e7531ee3514707e64707f4e235b0a3 differ diff --git a/fuzz/corpus/fuzz_read/866e4944862c4f32d64d0db7a3a33c69581c0085 b/fuzz/corpus/fuzz_read/866e4944862c4f32d64d0db7a3a33c69581c0085 new file mode 100644 index 00000000..d5ad1492 Binary files /dev/null and b/fuzz/corpus/fuzz_read/866e4944862c4f32d64d0db7a3a33c69581c0085 differ diff --git a/fuzz/corpus/fuzz_read/86980fc76a0326a74710d4ad78d6f45a32d12194 b/fuzz/corpus/fuzz_read/86980fc76a0326a74710d4ad78d6f45a32d12194 new file mode 100644 index 00000000..37586a56 Binary files /dev/null and b/fuzz/corpus/fuzz_read/86980fc76a0326a74710d4ad78d6f45a32d12194 differ diff --git a/fuzz/corpus/fuzz_read/86bec0c706597c0402576971739df9553ce99afb b/fuzz/corpus/fuzz_read/86bec0c706597c0402576971739df9553ce99afb new file mode 100644 index 00000000..071fe308 Binary files /dev/null and b/fuzz/corpus/fuzz_read/86bec0c706597c0402576971739df9553ce99afb differ diff --git a/fuzz/corpus/fuzz_read/8728a4d2a4aebccaea8ab1d15d71f6555582f365 b/fuzz/corpus/fuzz_read/8728a4d2a4aebccaea8ab1d15d71f6555582f365 new file mode 100644 index 00000000..69e33371 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8728a4d2a4aebccaea8ab1d15d71f6555582f365 differ diff --git a/fuzz/corpus/fuzz_read/8777d1524899a9d6f0c704fdabc0de693b3ef437 b/fuzz/corpus/fuzz_read/8777d1524899a9d6f0c704fdabc0de693b3ef437 new file mode 100644 index 00000000..3a4ddaa3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8777d1524899a9d6f0c704fdabc0de693b3ef437 differ diff --git a/fuzz/corpus/fuzz_read/878eff307a9d0c46f39db9952fa343ecef9e18f4 b/fuzz/corpus/fuzz_read/878eff307a9d0c46f39db9952fa343ecef9e18f4 new file mode 100644 index 00000000..7bc88fed Binary files /dev/null and b/fuzz/corpus/fuzz_read/878eff307a9d0c46f39db9952fa343ecef9e18f4 differ diff --git a/fuzz/corpus/fuzz_read/880e6a5f7aeaa2a0b8ff126cb5d458d66b4f6df3 b/fuzz/corpus/fuzz_read/880e6a5f7aeaa2a0b8ff126cb5d458d66b4f6df3 new file mode 100644 index 00000000..5cf50b49 Binary files /dev/null and b/fuzz/corpus/fuzz_read/880e6a5f7aeaa2a0b8ff126cb5d458d66b4f6df3 differ diff --git a/fuzz/corpus/fuzz_read/883ee38eb2909c2c11efdfd62c594879abd7b35c b/fuzz/corpus/fuzz_read/883ee38eb2909c2c11efdfd62c594879abd7b35c new file mode 100644 index 00000000..b6ba6b03 Binary files /dev/null and b/fuzz/corpus/fuzz_read/883ee38eb2909c2c11efdfd62c594879abd7b35c differ diff --git a/fuzz/corpus/fuzz_read/88797cd9f970f72c8e5555bde56876a5913d2f9f b/fuzz/corpus/fuzz_read/88797cd9f970f72c8e5555bde56876a5913d2f9f new file mode 100644 index 00000000..c77fcfcf Binary files /dev/null and b/fuzz/corpus/fuzz_read/88797cd9f970f72c8e5555bde56876a5913d2f9f differ diff --git a/fuzz/corpus/fuzz_read/888d0c6bd00810b92dc72f5d7c4788490ffe6df8 b/fuzz/corpus/fuzz_read/888d0c6bd00810b92dc72f5d7c4788490ffe6df8 new file mode 100644 index 00000000..045bb8a2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/888d0c6bd00810b92dc72f5d7c4788490ffe6df8 differ diff --git a/fuzz/corpus/fuzz_read/889ea8800dac513de06461092088c19d0b8c088f b/fuzz/corpus/fuzz_read/889ea8800dac513de06461092088c19d0b8c088f new file mode 100644 index 00000000..6377441a Binary files /dev/null and b/fuzz/corpus/fuzz_read/889ea8800dac513de06461092088c19d0b8c088f differ diff --git a/fuzz/corpus/fuzz_read/89124720647c9f5938a1b71c47a59995dd669b27 b/fuzz/corpus/fuzz_read/89124720647c9f5938a1b71c47a59995dd669b27 new file mode 100644 index 00000000..1d8ad554 Binary files /dev/null and b/fuzz/corpus/fuzz_read/89124720647c9f5938a1b71c47a59995dd669b27 differ diff --git a/fuzz/corpus/fuzz_read/8943a825c08737e71aede34de066d349c9240c7f b/fuzz/corpus/fuzz_read/8943a825c08737e71aede34de066d349c9240c7f new file mode 100644 index 00000000..3b10f46b Binary files /dev/null and b/fuzz/corpus/fuzz_read/8943a825c08737e71aede34de066d349c9240c7f differ diff --git a/fuzz/corpus/fuzz_read/89568c21b20899e83634e0ffc26390ac01bd3064 b/fuzz/corpus/fuzz_read/89568c21b20899e83634e0ffc26390ac01bd3064 new file mode 100644 index 00000000..9173eebe Binary files /dev/null and b/fuzz/corpus/fuzz_read/89568c21b20899e83634e0ffc26390ac01bd3064 differ diff --git a/fuzz/corpus/fuzz_read/89df54174d7c1947f36c5c953cfa9db6d828fe5e b/fuzz/corpus/fuzz_read/89df54174d7c1947f36c5c953cfa9db6d828fe5e new file mode 100644 index 00000000..c7380fe8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/89df54174d7c1947f36c5c953cfa9db6d828fe5e differ diff --git a/fuzz/corpus/fuzz_read/89ed7aa460530813af2274b08593ceb99e2fa887 b/fuzz/corpus/fuzz_read/89ed7aa460530813af2274b08593ceb99e2fa887 new file mode 100644 index 00000000..b1a26ae6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/89ed7aa460530813af2274b08593ceb99e2fa887 differ diff --git a/fuzz/corpus/fuzz_read/89fdd7c72882d695c96ec926b70bf49ad04c92e6 b/fuzz/corpus/fuzz_read/89fdd7c72882d695c96ec926b70bf49ad04c92e6 new file mode 100644 index 00000000..8ab7add3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/89fdd7c72882d695c96ec926b70bf49ad04c92e6 differ diff --git a/fuzz/corpus/fuzz_read/8a056f154d086906712a0bff247878a0f1d4f649 b/fuzz/corpus/fuzz_read/8a056f154d086906712a0bff247878a0f1d4f649 new file mode 100644 index 00000000..a3920d90 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8a056f154d086906712a0bff247878a0f1d4f649 differ diff --git a/fuzz/corpus/fuzz_read/8a1077f8af06a44d07d4de845b59e57cc526f34a b/fuzz/corpus/fuzz_read/8a1077f8af06a44d07d4de845b59e57cc526f34a new file mode 100644 index 00000000..6a0eb8b6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8a1077f8af06a44d07d4de845b59e57cc526f34a differ diff --git a/fuzz/corpus/fuzz_read/8a6272312080b619e3fd61bdaae417bf6f9059d2 b/fuzz/corpus/fuzz_read/8a6272312080b619e3fd61bdaae417bf6f9059d2 new file mode 100644 index 00000000..0572a40c Binary files /dev/null and b/fuzz/corpus/fuzz_read/8a6272312080b619e3fd61bdaae417bf6f9059d2 differ diff --git a/fuzz/corpus/fuzz_read/8ab0b6d4b909e5bce82678d97d1dc4642ab67c54 b/fuzz/corpus/fuzz_read/8ab0b6d4b909e5bce82678d97d1dc4642ab67c54 new file mode 100644 index 00000000..169e51c2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8ab0b6d4b909e5bce82678d97d1dc4642ab67c54 differ diff --git a/fuzz/corpus/fuzz_read/8ab44abce37a5f159d5201cbf676b5a681b487bd b/fuzz/corpus/fuzz_read/8ab44abce37a5f159d5201cbf676b5a681b487bd new file mode 100644 index 00000000..d2ca6979 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8ab44abce37a5f159d5201cbf676b5a681b487bd differ diff --git a/fuzz/corpus/fuzz_read/8ad6e1dd059190369014c9653e937d188a08a6dd b/fuzz/corpus/fuzz_read/8ad6e1dd059190369014c9653e937d188a08a6dd new file mode 100644 index 00000000..50a6b25b Binary files /dev/null and b/fuzz/corpus/fuzz_read/8ad6e1dd059190369014c9653e937d188a08a6dd differ diff --git a/fuzz/corpus/fuzz_read/8ae592aacf65fc70a0d33696ce25503ab08468db b/fuzz/corpus/fuzz_read/8ae592aacf65fc70a0d33696ce25503ab08468db new file mode 100644 index 00000000..c6c08a34 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8ae592aacf65fc70a0d33696ce25503ab08468db differ diff --git a/fuzz/corpus/fuzz_read/8af9abf2c6b967628d82a775066688973b3509de b/fuzz/corpus/fuzz_read/8af9abf2c6b967628d82a775066688973b3509de new file mode 100644 index 00000000..63b4e21e Binary files /dev/null and b/fuzz/corpus/fuzz_read/8af9abf2c6b967628d82a775066688973b3509de differ diff --git a/fuzz/corpus/fuzz_read/8b283c3cefdf5e8f15d132a51445d3ed89c77c67 b/fuzz/corpus/fuzz_read/8b283c3cefdf5e8f15d132a51445d3ed89c77c67 new file mode 100644 index 00000000..e7627be5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8b283c3cefdf5e8f15d132a51445d3ed89c77c67 differ diff --git a/fuzz/corpus/fuzz_read/8b72673a801d8bb671335be1c9a953767cd4a9d9 b/fuzz/corpus/fuzz_read/8b72673a801d8bb671335be1c9a953767cd4a9d9 new file mode 100644 index 00000000..1e94f01a Binary files /dev/null and b/fuzz/corpus/fuzz_read/8b72673a801d8bb671335be1c9a953767cd4a9d9 differ diff --git a/fuzz/corpus/fuzz_read/8be906b373f59663cf1680c79073b4ddf6b67005 b/fuzz/corpus/fuzz_read/8be906b373f59663cf1680c79073b4ddf6b67005 new file mode 100644 index 00000000..46032f16 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8be906b373f59663cf1680c79073b4ddf6b67005 differ diff --git a/fuzz/corpus/fuzz_read/8c05f43691f5c75c9647168b5a7dccd8a1eccddc b/fuzz/corpus/fuzz_read/8c05f43691f5c75c9647168b5a7dccd8a1eccddc new file mode 100644 index 00000000..2ed5a949 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8c05f43691f5c75c9647168b5a7dccd8a1eccddc differ diff --git a/fuzz/corpus/fuzz_read/8c4ab43ffdf5aad16d2cee135d334c0f4b973505 b/fuzz/corpus/fuzz_read/8c4ab43ffdf5aad16d2cee135d334c0f4b973505 new file mode 100644 index 00000000..91b87da8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8c4ab43ffdf5aad16d2cee135d334c0f4b973505 differ diff --git a/fuzz/corpus/fuzz_read/8cf47ce772df73c2f1c56ec3ed796672ccaf84bd b/fuzz/corpus/fuzz_read/8cf47ce772df73c2f1c56ec3ed796672ccaf84bd new file mode 100644 index 00000000..44c79856 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8cf47ce772df73c2f1c56ec3ed796672ccaf84bd differ diff --git a/fuzz/corpus/fuzz_read/8d6d60f4167dede91b99a9aae2560cd94d8af02a b/fuzz/corpus/fuzz_read/8d6d60f4167dede91b99a9aae2560cd94d8af02a new file mode 100644 index 00000000..8ee00291 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8d6d60f4167dede91b99a9aae2560cd94d8af02a differ diff --git a/fuzz/corpus/fuzz_read/8d987e8729f85dcd5956fbca7a137270662bdd8a b/fuzz/corpus/fuzz_read/8d987e8729f85dcd5956fbca7a137270662bdd8a new file mode 100644 index 00000000..54792fe7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8d987e8729f85dcd5956fbca7a137270662bdd8a differ diff --git a/fuzz/corpus/fuzz_read/8e2db30a66fcda82b88151cc99b269bbaaa81743 b/fuzz/corpus/fuzz_read/8e2db30a66fcda82b88151cc99b269bbaaa81743 new file mode 100644 index 00000000..1419c46e Binary files /dev/null and b/fuzz/corpus/fuzz_read/8e2db30a66fcda82b88151cc99b269bbaaa81743 differ diff --git a/fuzz/corpus/fuzz_read/8f0c242b0d40400d98ee495e719c760c974bf00e b/fuzz/corpus/fuzz_read/8f0c242b0d40400d98ee495e719c760c974bf00e new file mode 100644 index 00000000..0c5094d0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f0c242b0d40400d98ee495e719c760c974bf00e differ diff --git a/fuzz/corpus/fuzz_read/8f23d3cb4e8564272f80bdbd739bf760251ed3c7 b/fuzz/corpus/fuzz_read/8f23d3cb4e8564272f80bdbd739bf760251ed3c7 new file mode 100644 index 00000000..d48df505 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f23d3cb4e8564272f80bdbd739bf760251ed3c7 differ diff --git a/fuzz/corpus/fuzz_read/8f4ef1b4b37eba4969645c6c4717a82604088169 b/fuzz/corpus/fuzz_read/8f4ef1b4b37eba4969645c6c4717a82604088169 new file mode 100644 index 00000000..c6fac41b Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f4ef1b4b37eba4969645c6c4717a82604088169 differ diff --git a/fuzz/corpus/fuzz_read/8f70ea0a438ed63a4192491e54f5d2d71b8b8bbf b/fuzz/corpus/fuzz_read/8f70ea0a438ed63a4192491e54f5d2d71b8b8bbf new file mode 100644 index 00000000..ab65b7b7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f70ea0a438ed63a4192491e54f5d2d71b8b8bbf differ diff --git a/fuzz/corpus/fuzz_read/8f7bf6375c81ada2dc7f1e39e3d128ee668cdd83 b/fuzz/corpus/fuzz_read/8f7bf6375c81ada2dc7f1e39e3d128ee668cdd83 new file mode 100644 index 00000000..5472b92e Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f7bf6375c81ada2dc7f1e39e3d128ee668cdd83 differ diff --git a/fuzz/corpus/fuzz_read/8f8672df2ad4b5a414309ae5b329ad3640078ff6 b/fuzz/corpus/fuzz_read/8f8672df2ad4b5a414309ae5b329ad3640078ff6 new file mode 100644 index 00000000..573a6842 Binary files /dev/null and b/fuzz/corpus/fuzz_read/8f8672df2ad4b5a414309ae5b329ad3640078ff6 differ diff --git a/fuzz/corpus/fuzz_read/8fd0dd3777f7aac97fe983243e71024cb62d84cb b/fuzz/corpus/fuzz_read/8fd0dd3777f7aac97fe983243e71024cb62d84cb new file mode 100644 index 00000000..6682b46e Binary files /dev/null and b/fuzz/corpus/fuzz_read/8fd0dd3777f7aac97fe983243e71024cb62d84cb differ diff --git a/fuzz/corpus/fuzz_read/900c53e8f288003d2808327d3e3c3377b39bdaff b/fuzz/corpus/fuzz_read/900c53e8f288003d2808327d3e3c3377b39bdaff new file mode 100644 index 00000000..5dc59423 Binary files /dev/null and b/fuzz/corpus/fuzz_read/900c53e8f288003d2808327d3e3c3377b39bdaff differ diff --git a/fuzz/corpus/fuzz_read/908ca75bc449041a688be25188f7435db663308d b/fuzz/corpus/fuzz_read/908ca75bc449041a688be25188f7435db663308d new file mode 100644 index 00000000..fd047b3c Binary files /dev/null and b/fuzz/corpus/fuzz_read/908ca75bc449041a688be25188f7435db663308d differ diff --git a/fuzz/corpus/fuzz_read/908d9ceb469c10fbc3824e61ec23db60748797e7 b/fuzz/corpus/fuzz_read/908d9ceb469c10fbc3824e61ec23db60748797e7 new file mode 100644 index 00000000..cef40827 Binary files /dev/null and b/fuzz/corpus/fuzz_read/908d9ceb469c10fbc3824e61ec23db60748797e7 differ diff --git a/fuzz/corpus/fuzz_read/909938e6e11c3501e19a884e14315df0d3b66749 b/fuzz/corpus/fuzz_read/909938e6e11c3501e19a884e14315df0d3b66749 new file mode 100644 index 00000000..7554da1f Binary files /dev/null and b/fuzz/corpus/fuzz_read/909938e6e11c3501e19a884e14315df0d3b66749 differ diff --git a/fuzz/corpus/fuzz_read/9116b7c4dc55b2f8d4b5dac988488b6adef0fa21 b/fuzz/corpus/fuzz_read/9116b7c4dc55b2f8d4b5dac988488b6adef0fa21 new file mode 100644 index 00000000..01122de2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9116b7c4dc55b2f8d4b5dac988488b6adef0fa21 differ diff --git a/fuzz/corpus/fuzz_read/9180dbd03b0be499c38bab6940ba2c0cc00a30fe b/fuzz/corpus/fuzz_read/9180dbd03b0be499c38bab6940ba2c0cc00a30fe new file mode 100644 index 00000000..4a45f40a Binary files /dev/null and b/fuzz/corpus/fuzz_read/9180dbd03b0be499c38bab6940ba2c0cc00a30fe differ diff --git a/fuzz/corpus/fuzz_read/91984a84b66809e2162f6cbada11ec0c1bc518d7 b/fuzz/corpus/fuzz_read/91984a84b66809e2162f6cbada11ec0c1bc518d7 new file mode 100644 index 00000000..e4722c1b Binary files /dev/null and b/fuzz/corpus/fuzz_read/91984a84b66809e2162f6cbada11ec0c1bc518d7 differ diff --git a/fuzz/corpus/fuzz_read/91f08b47f82db160548711d4ca86b449647f9bc6 b/fuzz/corpus/fuzz_read/91f08b47f82db160548711d4ca86b449647f9bc6 new file mode 100644 index 00000000..f272cc62 Binary files /dev/null and b/fuzz/corpus/fuzz_read/91f08b47f82db160548711d4ca86b449647f9bc6 differ diff --git a/fuzz/corpus/fuzz_read/926c9b314dcf5840a5e3c090d360a741a5b1d43b b/fuzz/corpus/fuzz_read/926c9b314dcf5840a5e3c090d360a741a5b1d43b new file mode 100644 index 00000000..36b72cc7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/926c9b314dcf5840a5e3c090d360a741a5b1d43b differ diff --git a/fuzz/corpus/fuzz_read/928f757436cbc423316dbe3e0cec7b2610c40ec3 b/fuzz/corpus/fuzz_read/928f757436cbc423316dbe3e0cec7b2610c40ec3 new file mode 100644 index 00000000..494d4fe2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/928f757436cbc423316dbe3e0cec7b2610c40ec3 differ diff --git a/fuzz/corpus/fuzz_read/929c11d778b3ee62068a2fa06261aaaf17c2253e b/fuzz/corpus/fuzz_read/929c11d778b3ee62068a2fa06261aaaf17c2253e new file mode 100644 index 00000000..fad3467c Binary files /dev/null and b/fuzz/corpus/fuzz_read/929c11d778b3ee62068a2fa06261aaaf17c2253e differ diff --git a/fuzz/corpus/fuzz_read/93452891b6624638734701fa2065d67be814e347 b/fuzz/corpus/fuzz_read/93452891b6624638734701fa2065d67be814e347 new file mode 100644 index 00000000..46c8f254 Binary files /dev/null and b/fuzz/corpus/fuzz_read/93452891b6624638734701fa2065d67be814e347 differ diff --git a/fuzz/corpus/fuzz_read/934f41927c1e2e152237d783f77fbeb3ff0a4f85 b/fuzz/corpus/fuzz_read/934f41927c1e2e152237d783f77fbeb3ff0a4f85 new file mode 100644 index 00000000..12396897 Binary files /dev/null and b/fuzz/corpus/fuzz_read/934f41927c1e2e152237d783f77fbeb3ff0a4f85 differ diff --git a/fuzz/corpus/fuzz_read/936a3a1bc79db0b7ce65f3a5add511c301bf7fcc b/fuzz/corpus/fuzz_read/936a3a1bc79db0b7ce65f3a5add511c301bf7fcc new file mode 100644 index 00000000..8c0f9fb3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/936a3a1bc79db0b7ce65f3a5add511c301bf7fcc differ diff --git a/fuzz/corpus/fuzz_read/93f83efd8d08a6026aae78e77b19abd04a339b62 b/fuzz/corpus/fuzz_read/93f83efd8d08a6026aae78e77b19abd04a339b62 new file mode 100644 index 00000000..ff0eee0b Binary files /dev/null and b/fuzz/corpus/fuzz_read/93f83efd8d08a6026aae78e77b19abd04a339b62 differ diff --git a/fuzz/corpus/fuzz_read/94028bc726ee71a79c896109394f90531ed9ddd7 b/fuzz/corpus/fuzz_read/94028bc726ee71a79c896109394f90531ed9ddd7 new file mode 100644 index 00000000..14d5faea Binary files /dev/null and b/fuzz/corpus/fuzz_read/94028bc726ee71a79c896109394f90531ed9ddd7 differ diff --git a/fuzz/corpus/fuzz_read/9425b6b6597d29a18fce4607ad9fc059a8784a58 b/fuzz/corpus/fuzz_read/9425b6b6597d29a18fce4607ad9fc059a8784a58 new file mode 100644 index 00000000..9e892838 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9425b6b6597d29a18fce4607ad9fc059a8784a58 differ diff --git a/fuzz/corpus/fuzz_read/94461a40baf30ff43d505b9eb72271db974a1088 b/fuzz/corpus/fuzz_read/94461a40baf30ff43d505b9eb72271db974a1088 new file mode 100644 index 00000000..eed4949f Binary files /dev/null and b/fuzz/corpus/fuzz_read/94461a40baf30ff43d505b9eb72271db974a1088 differ diff --git a/fuzz/corpus/fuzz_read/94883ad03fb27220554647e7c5cc08edc542d40d b/fuzz/corpus/fuzz_read/94883ad03fb27220554647e7c5cc08edc542d40d new file mode 100644 index 00000000..65ea584d Binary files /dev/null and b/fuzz/corpus/fuzz_read/94883ad03fb27220554647e7c5cc08edc542d40d differ diff --git a/fuzz/corpus/fuzz_read/949c7ecb4aada54c23a9bd2c3f7a89336d74502c b/fuzz/corpus/fuzz_read/949c7ecb4aada54c23a9bd2c3f7a89336d74502c new file mode 100644 index 00000000..4efe8c65 Binary files /dev/null and b/fuzz/corpus/fuzz_read/949c7ecb4aada54c23a9bd2c3f7a89336d74502c differ diff --git a/fuzz/corpus/fuzz_read/94d62a7d3626c5ba27961453ecac13d1b88d3ade b/fuzz/corpus/fuzz_read/94d62a7d3626c5ba27961453ecac13d1b88d3ade new file mode 100644 index 00000000..d1db174c Binary files /dev/null and b/fuzz/corpus/fuzz_read/94d62a7d3626c5ba27961453ecac13d1b88d3ade differ diff --git a/fuzz/corpus/fuzz_read/94f36b94b998cee9efb25c1115e2a5b84a2273a8 b/fuzz/corpus/fuzz_read/94f36b94b998cee9efb25c1115e2a5b84a2273a8 new file mode 100644 index 00000000..f463ac1a Binary files /dev/null and b/fuzz/corpus/fuzz_read/94f36b94b998cee9efb25c1115e2a5b84a2273a8 differ diff --git a/fuzz/corpus/fuzz_read/954e06d58d5d86db0c70d6b6d716e8d01ada3c7b b/fuzz/corpus/fuzz_read/954e06d58d5d86db0c70d6b6d716e8d01ada3c7b new file mode 100644 index 00000000..69af69f6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/954e06d58d5d86db0c70d6b6d716e8d01ada3c7b differ diff --git a/fuzz/corpus/fuzz_read/957814a13761fc1b2f706173e05ca71191255661 b/fuzz/corpus/fuzz_read/957814a13761fc1b2f706173e05ca71191255661 new file mode 100644 index 00000000..61a05a00 Binary files /dev/null and b/fuzz/corpus/fuzz_read/957814a13761fc1b2f706173e05ca71191255661 differ diff --git a/fuzz/corpus/fuzz_read/95d88c94d56e677505f81070400d5a379c1d6fca b/fuzz/corpus/fuzz_read/95d88c94d56e677505f81070400d5a379c1d6fca new file mode 100644 index 00000000..a7e64b58 Binary files /dev/null and b/fuzz/corpus/fuzz_read/95d88c94d56e677505f81070400d5a379c1d6fca differ diff --git a/fuzz/corpus/fuzz_read/9642f60d0b32dba05a77cc0394b536b58b75c147 b/fuzz/corpus/fuzz_read/9642f60d0b32dba05a77cc0394b536b58b75c147 new file mode 100644 index 00000000..94a9b807 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9642f60d0b32dba05a77cc0394b536b58b75c147 differ diff --git a/fuzz/corpus/fuzz_read/96f0d2d8ce405a3fddf2bb68edd4de4654daee99 b/fuzz/corpus/fuzz_read/96f0d2d8ce405a3fddf2bb68edd4de4654daee99 new file mode 100644 index 00000000..8ae0b6ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/96f0d2d8ce405a3fddf2bb68edd4de4654daee99 differ diff --git a/fuzz/corpus/fuzz_read/9701c52aa86490da880d04aa5f45f9b90b595f0f b/fuzz/corpus/fuzz_read/9701c52aa86490da880d04aa5f45f9b90b595f0f new file mode 100644 index 00000000..507c55cb Binary files /dev/null and b/fuzz/corpus/fuzz_read/9701c52aa86490da880d04aa5f45f9b90b595f0f differ diff --git a/fuzz/corpus/fuzz_read/9744ce340e1b50947f37957986fbbdac4fbe72cf b/fuzz/corpus/fuzz_read/9744ce340e1b50947f37957986fbbdac4fbe72cf new file mode 100644 index 00000000..cf4bdbaa Binary files /dev/null and b/fuzz/corpus/fuzz_read/9744ce340e1b50947f37957986fbbdac4fbe72cf differ diff --git a/fuzz/corpus/fuzz_read/97dc00ff7767bfa3b069691037982d605c3928bc b/fuzz/corpus/fuzz_read/97dc00ff7767bfa3b069691037982d605c3928bc new file mode 100644 index 00000000..b7af086d Binary files /dev/null and b/fuzz/corpus/fuzz_read/97dc00ff7767bfa3b069691037982d605c3928bc differ diff --git a/fuzz/corpus/fuzz_read/98b8a732c8ba1a26b69f0bb8bb2660ba101944ef b/fuzz/corpus/fuzz_read/98b8a732c8ba1a26b69f0bb8bb2660ba101944ef new file mode 100644 index 00000000..82e6216b Binary files /dev/null and b/fuzz/corpus/fuzz_read/98b8a732c8ba1a26b69f0bb8bb2660ba101944ef differ diff --git a/fuzz/corpus/fuzz_read/98e16213939abfe7573ea58b2c732400cccfff41 b/fuzz/corpus/fuzz_read/98e16213939abfe7573ea58b2c732400cccfff41 new file mode 100644 index 00000000..82742db3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/98e16213939abfe7573ea58b2c732400cccfff41 differ diff --git a/fuzz/corpus/fuzz_read/990fc3e6f560dc38809a4cdaeb282fdb6dfa09c5 b/fuzz/corpus/fuzz_read/990fc3e6f560dc38809a4cdaeb282fdb6dfa09c5 new file mode 100644 index 00000000..83f3453c Binary files /dev/null and b/fuzz/corpus/fuzz_read/990fc3e6f560dc38809a4cdaeb282fdb6dfa09c5 differ diff --git a/fuzz/corpus/fuzz_read/99109ad76b0b9bc92036b2fac2cf6e26c68b7c98 b/fuzz/corpus/fuzz_read/99109ad76b0b9bc92036b2fac2cf6e26c68b7c98 new file mode 100644 index 00000000..c73d7c19 Binary files /dev/null and b/fuzz/corpus/fuzz_read/99109ad76b0b9bc92036b2fac2cf6e26c68b7c98 differ diff --git a/fuzz/corpus/fuzz_read/99a6910b21192caf97e79e1741cc7041bca4ca2c b/fuzz/corpus/fuzz_read/99a6910b21192caf97e79e1741cc7041bca4ca2c new file mode 100644 index 00000000..e41194e8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/99a6910b21192caf97e79e1741cc7041bca4ca2c differ diff --git a/fuzz/corpus/fuzz_read/99b25e274b3d75155710a48477e30dc4ff10af53 b/fuzz/corpus/fuzz_read/99b25e274b3d75155710a48477e30dc4ff10af53 new file mode 100644 index 00000000..ceee4faa Binary files /dev/null and b/fuzz/corpus/fuzz_read/99b25e274b3d75155710a48477e30dc4ff10af53 differ diff --git a/fuzz/corpus/fuzz_read/99f4488f364c23956b548c742e7f01620475d10c b/fuzz/corpus/fuzz_read/99f4488f364c23956b548c742e7f01620475d10c new file mode 100644 index 00000000..9529a06d Binary files /dev/null and b/fuzz/corpus/fuzz_read/99f4488f364c23956b548c742e7f01620475d10c differ diff --git a/fuzz/corpus/fuzz_read/9a98177e8aef519b2d52f4092a69d4df585a67b1 b/fuzz/corpus/fuzz_read/9a98177e8aef519b2d52f4092a69d4df585a67b1 new file mode 100644 index 00000000..0625e042 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9a98177e8aef519b2d52f4092a69d4df585a67b1 differ diff --git a/fuzz/corpus/fuzz_read/9ba1c957451d1fdf65f283b573b78c461806df54 b/fuzz/corpus/fuzz_read/9ba1c957451d1fdf65f283b573b78c461806df54 new file mode 100644 index 00000000..76f29a7c Binary files /dev/null and b/fuzz/corpus/fuzz_read/9ba1c957451d1fdf65f283b573b78c461806df54 differ diff --git a/fuzz/corpus/fuzz_read/9bfa7a29a00600e1148ffe96f12d27dc081daf34 b/fuzz/corpus/fuzz_read/9bfa7a29a00600e1148ffe96f12d27dc081daf34 new file mode 100644 index 00000000..8fb4a989 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9bfa7a29a00600e1148ffe96f12d27dc081daf34 differ diff --git a/fuzz/corpus/fuzz_read/9c6536aec01bc8391b04abacb61b91aa901b0284 b/fuzz/corpus/fuzz_read/9c6536aec01bc8391b04abacb61b91aa901b0284 new file mode 100644 index 00000000..ef65b289 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9c6536aec01bc8391b04abacb61b91aa901b0284 differ diff --git a/fuzz/corpus/fuzz_read/9ced29dcde758611282ea7b15a6d686a227dbb4a b/fuzz/corpus/fuzz_read/9ced29dcde758611282ea7b15a6d686a227dbb4a new file mode 100644 index 00000000..09780b0e Binary files /dev/null and b/fuzz/corpus/fuzz_read/9ced29dcde758611282ea7b15a6d686a227dbb4a differ diff --git a/fuzz/corpus/fuzz_read/9d1fce05db3ad215183f6fa4c496716028f0986e b/fuzz/corpus/fuzz_read/9d1fce05db3ad215183f6fa4c496716028f0986e new file mode 100644 index 00000000..0e15f8ae Binary files /dev/null and b/fuzz/corpus/fuzz_read/9d1fce05db3ad215183f6fa4c496716028f0986e differ diff --git a/fuzz/corpus/fuzz_read/9d449f0bd8fb3b5a2562ce061679572f0eb988be b/fuzz/corpus/fuzz_read/9d449f0bd8fb3b5a2562ce061679572f0eb988be new file mode 100644 index 00000000..f16b6909 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9d449f0bd8fb3b5a2562ce061679572f0eb988be differ diff --git a/fuzz/corpus/fuzz_read/9d8a90992a8c9a1377db01208d38391c1223e844 b/fuzz/corpus/fuzz_read/9d8a90992a8c9a1377db01208d38391c1223e844 new file mode 100644 index 00000000..a6f2f08a Binary files /dev/null and b/fuzz/corpus/fuzz_read/9d8a90992a8c9a1377db01208d38391c1223e844 differ diff --git a/fuzz/corpus/fuzz_read/9dec8881398765a2a44803d6c13bc5e25d838c9d b/fuzz/corpus/fuzz_read/9dec8881398765a2a44803d6c13bc5e25d838c9d new file mode 100644 index 00000000..13787baa Binary files /dev/null and b/fuzz/corpus/fuzz_read/9dec8881398765a2a44803d6c13bc5e25d838c9d differ diff --git a/fuzz/corpus/fuzz_read/9e0c13926b2ef5fccc159da4c6caac3129c3ec8d b/fuzz/corpus/fuzz_read/9e0c13926b2ef5fccc159da4c6caac3129c3ec8d new file mode 100644 index 00000000..334a84c5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9e0c13926b2ef5fccc159da4c6caac3129c3ec8d differ diff --git a/fuzz/corpus/fuzz_read/9e6a5fff69df02a52dd7c01bce80639d337fd673 b/fuzz/corpus/fuzz_read/9e6a5fff69df02a52dd7c01bce80639d337fd673 new file mode 100644 index 00000000..a09f6b79 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9e6a5fff69df02a52dd7c01bce80639d337fd673 differ diff --git a/fuzz/corpus/fuzz_read/9eb1c3633e9a24eee1e85b74543aabd4f07c90cf b/fuzz/corpus/fuzz_read/9eb1c3633e9a24eee1e85b74543aabd4f07c90cf new file mode 100644 index 00000000..fdf9c52a Binary files /dev/null and b/fuzz/corpus/fuzz_read/9eb1c3633e9a24eee1e85b74543aabd4f07c90cf differ diff --git a/fuzz/corpus/fuzz_read/9f113e31d3ba29eea1ce72f8d53dafdd6ece5d1f b/fuzz/corpus/fuzz_read/9f113e31d3ba29eea1ce72f8d53dafdd6ece5d1f new file mode 100644 index 00000000..bdaf24fb Binary files /dev/null and b/fuzz/corpus/fuzz_read/9f113e31d3ba29eea1ce72f8d53dafdd6ece5d1f differ diff --git a/fuzz/corpus/fuzz_read/9f11576dfecc62ae011d200325aa58dcf23b944e b/fuzz/corpus/fuzz_read/9f11576dfecc62ae011d200325aa58dcf23b944e new file mode 100644 index 00000000..31efdb10 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9f11576dfecc62ae011d200325aa58dcf23b944e differ diff --git a/fuzz/corpus/fuzz_read/9f46e83517097d08cfb12c8904fe0fb2f35bc3bd b/fuzz/corpus/fuzz_read/9f46e83517097d08cfb12c8904fe0fb2f35bc3bd new file mode 100644 index 00000000..4113977a Binary files /dev/null and b/fuzz/corpus/fuzz_read/9f46e83517097d08cfb12c8904fe0fb2f35bc3bd differ diff --git a/fuzz/corpus/fuzz_read/9f690d5872d54b90e10b971be596034248f613a1 b/fuzz/corpus/fuzz_read/9f690d5872d54b90e10b971be596034248f613a1 new file mode 100644 index 00000000..a1b0ab41 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9f690d5872d54b90e10b971be596034248f613a1 differ diff --git a/fuzz/corpus/fuzz_read/9fbd4450ef9876bd877011730ae011709006cd28 b/fuzz/corpus/fuzz_read/9fbd4450ef9876bd877011730ae011709006cd28 new file mode 100644 index 00000000..6c09ef61 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9fbd4450ef9876bd877011730ae011709006cd28 differ diff --git a/fuzz/corpus/fuzz_read/9fee309acc63e6951b65de0dfb07b6b8039932ef b/fuzz/corpus/fuzz_read/9fee309acc63e6951b65de0dfb07b6b8039932ef new file mode 100644 index 00000000..93fb2b42 Binary files /dev/null and b/fuzz/corpus/fuzz_read/9fee309acc63e6951b65de0dfb07b6b8039932ef differ diff --git a/fuzz/corpus/fuzz_read/a02a393a95866d0400a1a5ae8d1e16d4922dac8a b/fuzz/corpus/fuzz_read/a02a393a95866d0400a1a5ae8d1e16d4922dac8a new file mode 100644 index 00000000..505fde51 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a02a393a95866d0400a1a5ae8d1e16d4922dac8a differ diff --git a/fuzz/corpus/fuzz_read/a03841677106056d891e4e0fa120f18792aff2e8 b/fuzz/corpus/fuzz_read/a03841677106056d891e4e0fa120f18792aff2e8 new file mode 100644 index 00000000..0a25d12c Binary files /dev/null and b/fuzz/corpus/fuzz_read/a03841677106056d891e4e0fa120f18792aff2e8 differ diff --git a/fuzz/corpus/fuzz_read/a07ea16f080cddb21dacec7207b27f9cb09841d2 b/fuzz/corpus/fuzz_read/a07ea16f080cddb21dacec7207b27f9cb09841d2 new file mode 100644 index 00000000..d6cfffa8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a07ea16f080cddb21dacec7207b27f9cb09841d2 differ diff --git a/fuzz/corpus/fuzz_read/a091d57306ae04d721ba217dd19be85231fb41f2 b/fuzz/corpus/fuzz_read/a091d57306ae04d721ba217dd19be85231fb41f2 new file mode 100644 index 00000000..78d81ebc Binary files /dev/null and b/fuzz/corpus/fuzz_read/a091d57306ae04d721ba217dd19be85231fb41f2 differ diff --git a/fuzz/corpus/fuzz_read/a0acdbd9a6d4c1945364bb5772aa55e55a71a7d8 b/fuzz/corpus/fuzz_read/a0acdbd9a6d4c1945364bb5772aa55e55a71a7d8 new file mode 100644 index 00000000..06e028ff Binary files /dev/null and b/fuzz/corpus/fuzz_read/a0acdbd9a6d4c1945364bb5772aa55e55a71a7d8 differ diff --git a/fuzz/corpus/fuzz_read/a0b3bf5e706b4d4ae494cef4c6351e2ec310978d b/fuzz/corpus/fuzz_read/a0b3bf5e706b4d4ae494cef4c6351e2ec310978d new file mode 100644 index 00000000..2d8b202e Binary files /dev/null and b/fuzz/corpus/fuzz_read/a0b3bf5e706b4d4ae494cef4c6351e2ec310978d differ diff --git a/fuzz/corpus/fuzz_read/a10c2be59ff23e84a9cc1d368c8c9e7fd907e28d b/fuzz/corpus/fuzz_read/a10c2be59ff23e84a9cc1d368c8c9e7fd907e28d new file mode 100644 index 00000000..d82531c6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a10c2be59ff23e84a9cc1d368c8c9e7fd907e28d differ diff --git a/fuzz/corpus/fuzz_read/a159bdb36487f9160c99bb35b56a05048c8b86bc b/fuzz/corpus/fuzz_read/a159bdb36487f9160c99bb35b56a05048c8b86bc new file mode 100644 index 00000000..f57598ca Binary files /dev/null and b/fuzz/corpus/fuzz_read/a159bdb36487f9160c99bb35b56a05048c8b86bc differ diff --git a/fuzz/corpus/fuzz_read/a17062cde7e2f68c7060750cd2eff191a14bdb8d b/fuzz/corpus/fuzz_read/a17062cde7e2f68c7060750cd2eff191a14bdb8d new file mode 100644 index 00000000..fdb45780 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a17062cde7e2f68c7060750cd2eff191a14bdb8d differ diff --git a/fuzz/corpus/fuzz_read/a21f5657dfcb9f8fd2f8876459e41508c7baae81 b/fuzz/corpus/fuzz_read/a21f5657dfcb9f8fd2f8876459e41508c7baae81 new file mode 100644 index 00000000..312c04d3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a21f5657dfcb9f8fd2f8876459e41508c7baae81 differ diff --git a/fuzz/corpus/fuzz_read/a2fe68c7069a6b5fa71d539683d2bf3f5f960b24 b/fuzz/corpus/fuzz_read/a2fe68c7069a6b5fa71d539683d2bf3f5f960b24 new file mode 100644 index 00000000..b6664223 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a2fe68c7069a6b5fa71d539683d2bf3f5f960b24 differ diff --git a/fuzz/corpus/fuzz_read/a317254a5b70843fd5ad9c34ced28a337a19f262 b/fuzz/corpus/fuzz_read/a317254a5b70843fd5ad9c34ced28a337a19f262 new file mode 100644 index 00000000..09abf9bb Binary files /dev/null and b/fuzz/corpus/fuzz_read/a317254a5b70843fd5ad9c34ced28a337a19f262 differ diff --git a/fuzz/corpus/fuzz_read/a4055668df37ed55cfaeb70d2581fc64a4309ed0 b/fuzz/corpus/fuzz_read/a4055668df37ed55cfaeb70d2581fc64a4309ed0 new file mode 100644 index 00000000..c499d86b Binary files /dev/null and b/fuzz/corpus/fuzz_read/a4055668df37ed55cfaeb70d2581fc64a4309ed0 differ diff --git a/fuzz/corpus/fuzz_read/a4352e7eddb8c96f7a6676b7a5c84f1954e0a7d5 b/fuzz/corpus/fuzz_read/a4352e7eddb8c96f7a6676b7a5c84f1954e0a7d5 new file mode 100644 index 00000000..d9048f06 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a4352e7eddb8c96f7a6676b7a5c84f1954e0a7d5 differ diff --git a/fuzz/corpus/fuzz_read/a436121b253929015f98257dba338133f56ac083 b/fuzz/corpus/fuzz_read/a436121b253929015f98257dba338133f56ac083 new file mode 100644 index 00000000..de22c194 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a436121b253929015f98257dba338133f56ac083 differ diff --git a/fuzz/corpus/fuzz_read/a43e7935f0f19a2a1239d7559d77ed0c9777423a b/fuzz/corpus/fuzz_read/a43e7935f0f19a2a1239d7559d77ed0c9777423a new file mode 100644 index 00000000..e267c7e7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a43e7935f0f19a2a1239d7559d77ed0c9777423a differ diff --git a/fuzz/corpus/fuzz_read/a445c6da24812a41482ccc158f05c957cc00fb1b b/fuzz/corpus/fuzz_read/a445c6da24812a41482ccc158f05c957cc00fb1b new file mode 100644 index 00000000..54d5657c Binary files /dev/null and b/fuzz/corpus/fuzz_read/a445c6da24812a41482ccc158f05c957cc00fb1b differ diff --git a/fuzz/corpus/fuzz_read/a457a0ec75cede42a8be415804844871908c0d51 b/fuzz/corpus/fuzz_read/a457a0ec75cede42a8be415804844871908c0d51 new file mode 100644 index 00000000..c7d1e334 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a457a0ec75cede42a8be415804844871908c0d51 differ diff --git a/fuzz/corpus/fuzz_read/a4a3c191af8d6b80780ef7de9b62ec2f2c8a12b1 b/fuzz/corpus/fuzz_read/a4a3c191af8d6b80780ef7de9b62ec2f2c8a12b1 new file mode 100644 index 00000000..1d873433 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a4a3c191af8d6b80780ef7de9b62ec2f2c8a12b1 differ diff --git a/fuzz/corpus/fuzz_read/a51c115948ad2b2073bae28accefdf0eb06fd596 b/fuzz/corpus/fuzz_read/a51c115948ad2b2073bae28accefdf0eb06fd596 new file mode 100644 index 00000000..0c00f480 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a51c115948ad2b2073bae28accefdf0eb06fd596 differ diff --git a/fuzz/corpus/fuzz_read/a54ebb21c70a8a4a78a55a4d9733ca71be41f354 b/fuzz/corpus/fuzz_read/a54ebb21c70a8a4a78a55a4d9733ca71be41f354 new file mode 100644 index 00000000..d95e90bf Binary files /dev/null and b/fuzz/corpus/fuzz_read/a54ebb21c70a8a4a78a55a4d9733ca71be41f354 differ diff --git a/fuzz/corpus/fuzz_read/a5843062a68e2bbe28c20a8069d08fc32436f454 b/fuzz/corpus/fuzz_read/a5843062a68e2bbe28c20a8069d08fc32436f454 new file mode 100644 index 00000000..741a383f Binary files /dev/null and b/fuzz/corpus/fuzz_read/a5843062a68e2bbe28c20a8069d08fc32436f454 differ diff --git a/fuzz/corpus/fuzz_read/a6d685a25c88a0b8b21bb0154e42f9d288d30f35 b/fuzz/corpus/fuzz_read/a6d685a25c88a0b8b21bb0154e42f9d288d30f35 new file mode 100644 index 00000000..23a37de5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a6d685a25c88a0b8b21bb0154e42f9d288d30f35 differ diff --git a/fuzz/corpus/fuzz_read/a6ee2d3f4e9966428ccb0c674acee81ad691c80e b/fuzz/corpus/fuzz_read/a6ee2d3f4e9966428ccb0c674acee81ad691c80e new file mode 100644 index 00000000..0a2d5658 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a6ee2d3f4e9966428ccb0c674acee81ad691c80e differ diff --git a/fuzz/corpus/fuzz_read/a763624339928a4a364e2309b8b7fe85158f076c b/fuzz/corpus/fuzz_read/a763624339928a4a364e2309b8b7fe85158f076c new file mode 100644 index 00000000..cfd9da0d Binary files /dev/null and b/fuzz/corpus/fuzz_read/a763624339928a4a364e2309b8b7fe85158f076c differ diff --git a/fuzz/corpus/fuzz_read/a79c2c24362f09e99f6022a4a1ec4b643e0f390f b/fuzz/corpus/fuzz_read/a79c2c24362f09e99f6022a4a1ec4b643e0f390f new file mode 100644 index 00000000..57652a61 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a79c2c24362f09e99f6022a4a1ec4b643e0f390f differ diff --git a/fuzz/corpus/fuzz_read/a7a596bd4e344fd8056f2e89a0c0204c7e2d98e7 b/fuzz/corpus/fuzz_read/a7a596bd4e344fd8056f2e89a0c0204c7e2d98e7 new file mode 100644 index 00000000..78807f84 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a7a596bd4e344fd8056f2e89a0c0204c7e2d98e7 differ diff --git a/fuzz/corpus/fuzz_read/a7d830d6f42aa32ea0b216f6b260f6c38c70535b b/fuzz/corpus/fuzz_read/a7d830d6f42aa32ea0b216f6b260f6c38c70535b new file mode 100644 index 00000000..75739966 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a7d830d6f42aa32ea0b216f6b260f6c38c70535b differ diff --git a/fuzz/corpus/fuzz_read/a8067b5cc15152e68a8b356c51d4e5e247b7d708 b/fuzz/corpus/fuzz_read/a8067b5cc15152e68a8b356c51d4e5e247b7d708 new file mode 100644 index 00000000..8f4bd5a9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a8067b5cc15152e68a8b356c51d4e5e247b7d708 differ diff --git a/fuzz/corpus/fuzz_read/a875d02c743c6a799fe035606bd23ea2fda9c75c b/fuzz/corpus/fuzz_read/a875d02c743c6a799fe035606bd23ea2fda9c75c new file mode 100644 index 00000000..6b50c662 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a875d02c743c6a799fe035606bd23ea2fda9c75c differ diff --git a/fuzz/corpus/fuzz_read/a97a5286fb8ffc3be9b945c9e46f4d60164288f8 b/fuzz/corpus/fuzz_read/a97a5286fb8ffc3be9b945c9e46f4d60164288f8 new file mode 100644 index 00000000..a51dc32d Binary files /dev/null and b/fuzz/corpus/fuzz_read/a97a5286fb8ffc3be9b945c9e46f4d60164288f8 differ diff --git a/fuzz/corpus/fuzz_read/a9d8390d3e22594266fc903e2eaba2dc3ffd6c2a b/fuzz/corpus/fuzz_read/a9d8390d3e22594266fc903e2eaba2dc3ffd6c2a new file mode 100644 index 00000000..fd0c9675 Binary files /dev/null and b/fuzz/corpus/fuzz_read/a9d8390d3e22594266fc903e2eaba2dc3ffd6c2a differ diff --git a/fuzz/corpus/fuzz_read/a9e0586c1b2b006953463d1ec3ac461af9ace674 b/fuzz/corpus/fuzz_read/a9e0586c1b2b006953463d1ec3ac461af9ace674 new file mode 100644 index 00000000..d50e5cdb Binary files /dev/null and b/fuzz/corpus/fuzz_read/a9e0586c1b2b006953463d1ec3ac461af9ace674 differ diff --git a/fuzz/corpus/fuzz_read/a9fcbe9d5702f25a5eb4f1c40d9682da5cbc8366 b/fuzz/corpus/fuzz_read/a9fcbe9d5702f25a5eb4f1c40d9682da5cbc8366 new file mode 100644 index 00000000..062d282f Binary files /dev/null and b/fuzz/corpus/fuzz_read/a9fcbe9d5702f25a5eb4f1c40d9682da5cbc8366 differ diff --git a/fuzz/corpus/fuzz_read/aa07effa887ed16c5a5ad1262465b67e65b503b8 b/fuzz/corpus/fuzz_read/aa07effa887ed16c5a5ad1262465b67e65b503b8 new file mode 100644 index 00000000..21e05d66 Binary files /dev/null and b/fuzz/corpus/fuzz_read/aa07effa887ed16c5a5ad1262465b67e65b503b8 differ diff --git a/fuzz/corpus/fuzz_read/aa73cbffd09f8df98156244de5a5e13c8d07dc5a b/fuzz/corpus/fuzz_read/aa73cbffd09f8df98156244de5a5e13c8d07dc5a new file mode 100644 index 00000000..9b498a99 Binary files /dev/null and b/fuzz/corpus/fuzz_read/aa73cbffd09f8df98156244de5a5e13c8d07dc5a differ diff --git a/fuzz/corpus/fuzz_read/aaa7442d32db848dd674b6accd411386c746298a b/fuzz/corpus/fuzz_read/aaa7442d32db848dd674b6accd411386c746298a new file mode 100644 index 00000000..a00c75d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/aaa7442d32db848dd674b6accd411386c746298a differ diff --git a/fuzz/corpus/fuzz_read/aac1d9e9aebb4f0114b68cd63bac6c5626f90daa b/fuzz/corpus/fuzz_read/aac1d9e9aebb4f0114b68cd63bac6c5626f90daa new file mode 100644 index 00000000..b8303445 Binary files /dev/null and b/fuzz/corpus/fuzz_read/aac1d9e9aebb4f0114b68cd63bac6c5626f90daa differ diff --git a/fuzz/corpus/fuzz_read/aaf76fdc3df85a5a067826fc02308d6ee8da1225 b/fuzz/corpus/fuzz_read/aaf76fdc3df85a5a067826fc02308d6ee8da1225 new file mode 100644 index 00000000..a1e6195b Binary files /dev/null and b/fuzz/corpus/fuzz_read/aaf76fdc3df85a5a067826fc02308d6ee8da1225 differ diff --git a/fuzz/corpus/fuzz_read/ab08bd9292aa0dff978dec6ebd99aed90c80b731 b/fuzz/corpus/fuzz_read/ab08bd9292aa0dff978dec6ebd99aed90c80b731 new file mode 100644 index 00000000..f0d5d46f Binary files /dev/null and b/fuzz/corpus/fuzz_read/ab08bd9292aa0dff978dec6ebd99aed90c80b731 differ diff --git a/fuzz/corpus/fuzz_read/ab0e18d80693a8f90c3d76e7cde9c5a73dda6ad7 b/fuzz/corpus/fuzz_read/ab0e18d80693a8f90c3d76e7cde9c5a73dda6ad7 new file mode 100644 index 00000000..7b30610e Binary files /dev/null and b/fuzz/corpus/fuzz_read/ab0e18d80693a8f90c3d76e7cde9c5a73dda6ad7 differ diff --git a/fuzz/corpus/fuzz_read/ab0ee7d44ee4906c049bdb85a8c8c9f44022e893 b/fuzz/corpus/fuzz_read/ab0ee7d44ee4906c049bdb85a8c8c9f44022e893 new file mode 100644 index 00000000..05f46a15 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ab0ee7d44ee4906c049bdb85a8c8c9f44022e893 differ diff --git a/fuzz/corpus/fuzz_read/ab7684df44777347dfd49a28daf9282abc40d450 b/fuzz/corpus/fuzz_read/ab7684df44777347dfd49a28daf9282abc40d450 new file mode 100644 index 00000000..91941fc4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ab7684df44777347dfd49a28daf9282abc40d450 differ diff --git a/fuzz/corpus/fuzz_read/abdb3c64836603057b8f9e41261c436299453495 b/fuzz/corpus/fuzz_read/abdb3c64836603057b8f9e41261c436299453495 new file mode 100644 index 00000000..e4aa9adf Binary files /dev/null and b/fuzz/corpus/fuzz_read/abdb3c64836603057b8f9e41261c436299453495 differ diff --git a/fuzz/corpus/fuzz_read/ac0c0b31d3121e2f8dd8437da80c8a7112ae8f44 b/fuzz/corpus/fuzz_read/ac0c0b31d3121e2f8dd8437da80c8a7112ae8f44 new file mode 100644 index 00000000..f50b5025 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ac0c0b31d3121e2f8dd8437da80c8a7112ae8f44 differ diff --git a/fuzz/corpus/fuzz_read/ac48edaae36e6ae3d516549ac949bbba9d96cf9b b/fuzz/corpus/fuzz_read/ac48edaae36e6ae3d516549ac949bbba9d96cf9b new file mode 100644 index 00000000..db197738 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ac48edaae36e6ae3d516549ac949bbba9d96cf9b differ diff --git a/fuzz/corpus/fuzz_read/ad3d2d3e565fcee7576796d1af9ff59f90e1824b b/fuzz/corpus/fuzz_read/ad3d2d3e565fcee7576796d1af9ff59f90e1824b new file mode 100644 index 00000000..b7f410f9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ad3d2d3e565fcee7576796d1af9ff59f90e1824b differ diff --git a/fuzz/corpus/fuzz_read/ad5debc0b11d924ac6122ea1c9a7019be42c0309 b/fuzz/corpus/fuzz_read/ad5debc0b11d924ac6122ea1c9a7019be42c0309 new file mode 100644 index 00000000..43a87209 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ad5debc0b11d924ac6122ea1c9a7019be42c0309 differ diff --git a/fuzz/corpus/fuzz_read/adbb4d9040fb4d7811a24dd2ca8bdb544b196620 b/fuzz/corpus/fuzz_read/adbb4d9040fb4d7811a24dd2ca8bdb544b196620 new file mode 100644 index 00000000..10e61139 Binary files /dev/null and b/fuzz/corpus/fuzz_read/adbb4d9040fb4d7811a24dd2ca8bdb544b196620 differ diff --git a/fuzz/corpus/fuzz_read/adc7367ff9e25094dec9dfe9cd2ee162ae3c7975 b/fuzz/corpus/fuzz_read/adc7367ff9e25094dec9dfe9cd2ee162ae3c7975 new file mode 100644 index 00000000..63f1811b Binary files /dev/null and b/fuzz/corpus/fuzz_read/adc7367ff9e25094dec9dfe9cd2ee162ae3c7975 differ diff --git a/fuzz/corpus/fuzz_read/ae00f9ab3858da9f6bf088f302501263f75dc768 b/fuzz/corpus/fuzz_read/ae00f9ab3858da9f6bf088f302501263f75dc768 new file mode 100644 index 00000000..0128bb14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ae00f9ab3858da9f6bf088f302501263f75dc768 differ diff --git a/fuzz/corpus/fuzz_read/ae71f63491a7a149f31120859103d30270e63ea3 b/fuzz/corpus/fuzz_read/ae71f63491a7a149f31120859103d30270e63ea3 new file mode 100644 index 00000000..d1c3588a Binary files /dev/null and b/fuzz/corpus/fuzz_read/ae71f63491a7a149f31120859103d30270e63ea3 differ diff --git a/fuzz/corpus/fuzz_read/ae7481d9b948401ed8ce9e0c44af97f3e377cc93 b/fuzz/corpus/fuzz_read/ae7481d9b948401ed8ce9e0c44af97f3e377cc93 new file mode 100644 index 00000000..39ab30f2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ae7481d9b948401ed8ce9e0c44af97f3e377cc93 differ diff --git a/fuzz/corpus/fuzz_read/aebf649a518267a39abe60e3efbc13354fd94273 b/fuzz/corpus/fuzz_read/aebf649a518267a39abe60e3efbc13354fd94273 new file mode 100644 index 00000000..b9798c24 --- /dev/null +++ b/fuzz/corpus/fuzz_read/aebf649a518267a39abe60e3efbc13354fd94273 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fuzz/corpus/fuzz_read/aec051b5b6f9820860b1c127209425b7ff4ef57c b/fuzz/corpus/fuzz_read/aec051b5b6f9820860b1c127209425b7ff4ef57c new file mode 100644 index 00000000..7381246f Binary files /dev/null and b/fuzz/corpus/fuzz_read/aec051b5b6f9820860b1c127209425b7ff4ef57c differ diff --git a/fuzz/corpus/fuzz_read/af319cbbd00d2a5742d3009e430ecac4ed1797c7 b/fuzz/corpus/fuzz_read/af319cbbd00d2a5742d3009e430ecac4ed1797c7 new file mode 100644 index 00000000..3987df98 Binary files /dev/null and b/fuzz/corpus/fuzz_read/af319cbbd00d2a5742d3009e430ecac4ed1797c7 differ diff --git a/fuzz/corpus/fuzz_read/af48a7a03cd50fe335edc241ab893399ed402e6e b/fuzz/corpus/fuzz_read/af48a7a03cd50fe335edc241ab893399ed402e6e new file mode 100644 index 00000000..830215b7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/af48a7a03cd50fe335edc241ab893399ed402e6e differ diff --git a/fuzz/corpus/fuzz_read/af7bd3bd676439ae25d69ba5395046d4cb06840e b/fuzz/corpus/fuzz_read/af7bd3bd676439ae25d69ba5395046d4cb06840e new file mode 100644 index 00000000..935b9b51 Binary files /dev/null and b/fuzz/corpus/fuzz_read/af7bd3bd676439ae25d69ba5395046d4cb06840e differ diff --git a/fuzz/corpus/fuzz_read/af7bda5d5241c0cf26688295323f137803275916 b/fuzz/corpus/fuzz_read/af7bda5d5241c0cf26688295323f137803275916 new file mode 100644 index 00000000..bda3a425 Binary files /dev/null and b/fuzz/corpus/fuzz_read/af7bda5d5241c0cf26688295323f137803275916 differ diff --git a/fuzz/corpus/fuzz_read/b02d51a92bc2661078b3262960e36d1576c9ee43 b/fuzz/corpus/fuzz_read/b02d51a92bc2661078b3262960e36d1576c9ee43 new file mode 100644 index 00000000..984d469d Binary files /dev/null and b/fuzz/corpus/fuzz_read/b02d51a92bc2661078b3262960e36d1576c9ee43 differ diff --git a/fuzz/corpus/fuzz_read/b04dbe01ade5104fef2c25aeda30b369935eeb04 b/fuzz/corpus/fuzz_read/b04dbe01ade5104fef2c25aeda30b369935eeb04 new file mode 100644 index 00000000..dcdfebf5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b04dbe01ade5104fef2c25aeda30b369935eeb04 differ diff --git a/fuzz/corpus/fuzz_read/b056d4f8fb0d5ff9e4e8df137b7d3cb880307a94 b/fuzz/corpus/fuzz_read/b056d4f8fb0d5ff9e4e8df137b7d3cb880307a94 new file mode 100644 index 00000000..a30b9f38 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b056d4f8fb0d5ff9e4e8df137b7d3cb880307a94 differ diff --git a/fuzz/corpus/fuzz_read/b0986fc7cbf381b83dc8939467b937097c834360 b/fuzz/corpus/fuzz_read/b0986fc7cbf381b83dc8939467b937097c834360 new file mode 100644 index 00000000..425a1f93 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b0986fc7cbf381b83dc8939467b937097c834360 differ diff --git a/fuzz/corpus/fuzz_read/b103c0900fecfa6dc7c9446709c2be87fed629fb b/fuzz/corpus/fuzz_read/b103c0900fecfa6dc7c9446709c2be87fed629fb new file mode 100644 index 00000000..8885a1fe Binary files /dev/null and b/fuzz/corpus/fuzz_read/b103c0900fecfa6dc7c9446709c2be87fed629fb differ diff --git a/fuzz/corpus/fuzz_read/b13ac1643207e4847653ccf5ad94093d4087de11 b/fuzz/corpus/fuzz_read/b13ac1643207e4847653ccf5ad94093d4087de11 new file mode 100644 index 00000000..bd720f66 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b13ac1643207e4847653ccf5ad94093d4087de11 differ diff --git a/fuzz/corpus/fuzz_read/b155d4f98f43534b88dca5b9fc0c38cc4185daee b/fuzz/corpus/fuzz_read/b155d4f98f43534b88dca5b9fc0c38cc4185daee new file mode 100644 index 00000000..deb5f739 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b155d4f98f43534b88dca5b9fc0c38cc4185daee differ diff --git a/fuzz/corpus/fuzz_read/b1615773f3e826f160ae666f37f8b03872a0656d b/fuzz/corpus/fuzz_read/b1615773f3e826f160ae666f37f8b03872a0656d new file mode 100644 index 00000000..9d2e56f3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b1615773f3e826f160ae666f37f8b03872a0656d differ diff --git a/fuzz/corpus/fuzz_read/b169a4bacd852560f605cfe2683090dea7870475 b/fuzz/corpus/fuzz_read/b169a4bacd852560f605cfe2683090dea7870475 new file mode 100644 index 00000000..37ff4cdf Binary files /dev/null and b/fuzz/corpus/fuzz_read/b169a4bacd852560f605cfe2683090dea7870475 differ diff --git a/fuzz/corpus/fuzz_read/b1a798b3f0872ceeefe06ac3d7f24f6fe3393b02 b/fuzz/corpus/fuzz_read/b1a798b3f0872ceeefe06ac3d7f24f6fe3393b02 new file mode 100644 index 00000000..6c0e7ca4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b1a798b3f0872ceeefe06ac3d7f24f6fe3393b02 differ diff --git a/fuzz/corpus/fuzz_read/b1f455b98d80aeb23fc9dd88912d3638123e587e b/fuzz/corpus/fuzz_read/b1f455b98d80aeb23fc9dd88912d3638123e587e new file mode 100644 index 00000000..f0c8a99a Binary files /dev/null and b/fuzz/corpus/fuzz_read/b1f455b98d80aeb23fc9dd88912d3638123e587e differ diff --git a/fuzz/corpus/fuzz_read/b2094c8976a4c045cfc5989260bbc54db36e7aed b/fuzz/corpus/fuzz_read/b2094c8976a4c045cfc5989260bbc54db36e7aed new file mode 100644 index 00000000..93e0e949 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b2094c8976a4c045cfc5989260bbc54db36e7aed differ diff --git a/fuzz/corpus/fuzz_read/b2683aaebdd3d65f409d1d29db4e8f1cfe7f2778 b/fuzz/corpus/fuzz_read/b2683aaebdd3d65f409d1d29db4e8f1cfe7f2778 new file mode 100644 index 00000000..745dc6eb Binary files /dev/null and b/fuzz/corpus/fuzz_read/b2683aaebdd3d65f409d1d29db4e8f1cfe7f2778 differ diff --git a/fuzz/corpus/fuzz_read/b26efd0678bd122cae34b609ed5cdac86d67e3e2 b/fuzz/corpus/fuzz_read/b26efd0678bd122cae34b609ed5cdac86d67e3e2 new file mode 100644 index 00000000..d4849778 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b26efd0678bd122cae34b609ed5cdac86d67e3e2 differ diff --git a/fuzz/corpus/fuzz_read/b2dbd443a87d824c3068f11fa59eaacc9af8cc67 b/fuzz/corpus/fuzz_read/b2dbd443a87d824c3068f11fa59eaacc9af8cc67 new file mode 100644 index 00000000..faf41853 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b2dbd443a87d824c3068f11fa59eaacc9af8cc67 differ diff --git a/fuzz/corpus/fuzz_read/b310d444182322b8542a4bee50ce24a3df532ab5 b/fuzz/corpus/fuzz_read/b310d444182322b8542a4bee50ce24a3df532ab5 new file mode 100644 index 00000000..7b14d33e Binary files /dev/null and b/fuzz/corpus/fuzz_read/b310d444182322b8542a4bee50ce24a3df532ab5 differ diff --git a/fuzz/corpus/fuzz_read/b3173ef62df3bbdc97bcadcf4c9d5f5e85b8613f b/fuzz/corpus/fuzz_read/b3173ef62df3bbdc97bcadcf4c9d5f5e85b8613f new file mode 100644 index 00000000..2925702b Binary files /dev/null and b/fuzz/corpus/fuzz_read/b3173ef62df3bbdc97bcadcf4c9d5f5e85b8613f differ diff --git a/fuzz/corpus/fuzz_read/b3482ee0e7e81065f7e15403b0b6ed880f498126 b/fuzz/corpus/fuzz_read/b3482ee0e7e81065f7e15403b0b6ed880f498126 new file mode 100644 index 00000000..28b1ff25 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b3482ee0e7e81065f7e15403b0b6ed880f498126 differ diff --git a/fuzz/corpus/fuzz_read/b4e7d5ff3066b4d38b4538286e45565a745e17a7 b/fuzz/corpus/fuzz_read/b4e7d5ff3066b4d38b4538286e45565a745e17a7 new file mode 100644 index 00000000..0b904a75 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b4e7d5ff3066b4d38b4538286e45565a745e17a7 differ diff --git a/fuzz/corpus/fuzz_read/b52530cb2c1954cf105e59e136e68a4a4a3c614f b/fuzz/corpus/fuzz_read/b52530cb2c1954cf105e59e136e68a4a4a3c614f new file mode 100644 index 00000000..5f8dea82 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b52530cb2c1954cf105e59e136e68a4a4a3c614f differ diff --git a/fuzz/corpus/fuzz_read/b54917b2a3e1158b540d709c8aa2ccc856c1d338 b/fuzz/corpus/fuzz_read/b54917b2a3e1158b540d709c8aa2ccc856c1d338 new file mode 100644 index 00000000..820ac60a Binary files /dev/null and b/fuzz/corpus/fuzz_read/b54917b2a3e1158b540d709c8aa2ccc856c1d338 differ diff --git a/fuzz/corpus/fuzz_read/b58aa6bff10caa2c9c544c84175af386ce84e530 b/fuzz/corpus/fuzz_read/b58aa6bff10caa2c9c544c84175af386ce84e530 new file mode 100644 index 00000000..a858f129 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b58aa6bff10caa2c9c544c84175af386ce84e530 differ diff --git a/fuzz/corpus/fuzz_read/b58f277b72ca59f1cbedd412b1329aceefca0242 b/fuzz/corpus/fuzz_read/b58f277b72ca59f1cbedd412b1329aceefca0242 new file mode 100644 index 00000000..29d19748 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b58f277b72ca59f1cbedd412b1329aceefca0242 differ diff --git a/fuzz/corpus/fuzz_read/b59b8c7e8115bb5277bfef383d4a5ab89456cdc2 b/fuzz/corpus/fuzz_read/b59b8c7e8115bb5277bfef383d4a5ab89456cdc2 new file mode 100644 index 00000000..a6fd6add Binary files /dev/null and b/fuzz/corpus/fuzz_read/b59b8c7e8115bb5277bfef383d4a5ab89456cdc2 differ diff --git a/fuzz/corpus/fuzz_read/b5aa7e56180e33a88baacff43467f119bd571127 b/fuzz/corpus/fuzz_read/b5aa7e56180e33a88baacff43467f119bd571127 new file mode 100644 index 00000000..c5ebcbc7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b5aa7e56180e33a88baacff43467f119bd571127 differ diff --git a/fuzz/corpus/fuzz_read/b5ac57d137606afbb21afdda5776bcfab5039159 b/fuzz/corpus/fuzz_read/b5ac57d137606afbb21afdda5776bcfab5039159 new file mode 100644 index 00000000..7dc94ee5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b5ac57d137606afbb21afdda5776bcfab5039159 differ diff --git a/fuzz/corpus/fuzz_read/b5dabdf00713d1d894ec81279d2a722555a1260f b/fuzz/corpus/fuzz_read/b5dabdf00713d1d894ec81279d2a722555a1260f new file mode 100644 index 00000000..a4751316 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b5dabdf00713d1d894ec81279d2a722555a1260f differ diff --git a/fuzz/corpus/fuzz_read/b5df777be5329d98f9b77a0f907f70da5a6d048d b/fuzz/corpus/fuzz_read/b5df777be5329d98f9b77a0f907f70da5a6d048d new file mode 100644 index 00000000..f7801b9f Binary files /dev/null and b/fuzz/corpus/fuzz_read/b5df777be5329d98f9b77a0f907f70da5a6d048d differ diff --git a/fuzz/corpus/fuzz_read/b635cda8ba9d3d3ea2e2c4834317703282f68487 b/fuzz/corpus/fuzz_read/b635cda8ba9d3d3ea2e2c4834317703282f68487 new file mode 100644 index 00000000..c8214be0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b635cda8ba9d3d3ea2e2c4834317703282f68487 differ diff --git a/fuzz/corpus/fuzz_read/b679ca56246f4be186d4cdb7057edbe00efdaabd b/fuzz/corpus/fuzz_read/b679ca56246f4be186d4cdb7057edbe00efdaabd new file mode 100644 index 00000000..285648d7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b679ca56246f4be186d4cdb7057edbe00efdaabd differ diff --git a/fuzz/corpus/fuzz_read/b6d971291088bb9980702a3ab9988a266b515499 b/fuzz/corpus/fuzz_read/b6d971291088bb9980702a3ab9988a266b515499 new file mode 100644 index 00000000..0ee21f94 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b6d971291088bb9980702a3ab9988a266b515499 differ diff --git a/fuzz/corpus/fuzz_read/b6fd65b1f1eef7c911c1111d7ab546b3e9df3374 b/fuzz/corpus/fuzz_read/b6fd65b1f1eef7c911c1111d7ab546b3e9df3374 new file mode 100644 index 00000000..641e6bb9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b6fd65b1f1eef7c911c1111d7ab546b3e9df3374 differ diff --git a/fuzz/corpus/fuzz_read/b702a136bb23b5d660a285b9d67a8c43dbb69fc0 b/fuzz/corpus/fuzz_read/b702a136bb23b5d660a285b9d67a8c43dbb69fc0 new file mode 100644 index 00000000..d52d8750 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b702a136bb23b5d660a285b9d67a8c43dbb69fc0 differ diff --git a/fuzz/corpus/fuzz_read/b706e2f65d8f3bf40aa24b0a59932728ceb9e19c b/fuzz/corpus/fuzz_read/b706e2f65d8f3bf40aa24b0a59932728ceb9e19c new file mode 100644 index 00000000..980c73a1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b706e2f65d8f3bf40aa24b0a59932728ceb9e19c differ diff --git a/fuzz/corpus/fuzz_read/b70f9da661f192f8bcbd718ecc0acde7154e7274 b/fuzz/corpus/fuzz_read/b70f9da661f192f8bcbd718ecc0acde7154e7274 new file mode 100644 index 00000000..3e1e8ec3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b70f9da661f192f8bcbd718ecc0acde7154e7274 differ diff --git a/fuzz/corpus/fuzz_read/b738860a4fe95ede12a5498cc145b29ced7ea710 b/fuzz/corpus/fuzz_read/b738860a4fe95ede12a5498cc145b29ced7ea710 new file mode 100644 index 00000000..89c84940 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b738860a4fe95ede12a5498cc145b29ced7ea710 differ diff --git a/fuzz/corpus/fuzz_read/b738d377e68827954566e9357b00ee72b02b7b34 b/fuzz/corpus/fuzz_read/b738d377e68827954566e9357b00ee72b02b7b34 new file mode 100644 index 00000000..60f1b45f Binary files /dev/null and b/fuzz/corpus/fuzz_read/b738d377e68827954566e9357b00ee72b02b7b34 differ diff --git a/fuzz/corpus/fuzz_read/b788ecb76c59a711c3b3824b5bef7d7e0bc37846 b/fuzz/corpus/fuzz_read/b788ecb76c59a711c3b3824b5bef7d7e0bc37846 new file mode 100644 index 00000000..fb44377b Binary files /dev/null and b/fuzz/corpus/fuzz_read/b788ecb76c59a711c3b3824b5bef7d7e0bc37846 differ diff --git a/fuzz/corpus/fuzz_read/b7ed0d4ac0cdc3bad6d12a1f203ee734891f4829 b/fuzz/corpus/fuzz_read/b7ed0d4ac0cdc3bad6d12a1f203ee734891f4829 new file mode 100644 index 00000000..d43262f6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b7ed0d4ac0cdc3bad6d12a1f203ee734891f4829 differ diff --git a/fuzz/corpus/fuzz_read/b8006bc0cc6ce1bd0a4026ec2b89960873c8df08 b/fuzz/corpus/fuzz_read/b8006bc0cc6ce1bd0a4026ec2b89960873c8df08 new file mode 100644 index 00000000..e515d91b Binary files /dev/null and b/fuzz/corpus/fuzz_read/b8006bc0cc6ce1bd0a4026ec2b89960873c8df08 differ diff --git a/fuzz/corpus/fuzz_read/b82d4e0e80df2fe7835edd87d895333be9d3dc73 b/fuzz/corpus/fuzz_read/b82d4e0e80df2fe7835edd87d895333be9d3dc73 new file mode 100644 index 00000000..7eb4073b Binary files /dev/null and b/fuzz/corpus/fuzz_read/b82d4e0e80df2fe7835edd87d895333be9d3dc73 differ diff --git a/fuzz/corpus/fuzz_read/b835295d8cd21dce6f40f1d1588f51423b728dd2 b/fuzz/corpus/fuzz_read/b835295d8cd21dce6f40f1d1588f51423b728dd2 new file mode 100644 index 00000000..b18a4324 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b835295d8cd21dce6f40f1d1588f51423b728dd2 differ diff --git a/fuzz/corpus/fuzz_read/b83953f93615dca750a6060b516d0bd03faae291 b/fuzz/corpus/fuzz_read/b83953f93615dca750a6060b516d0bd03faae291 new file mode 100644 index 00000000..4bdcb9bb Binary files /dev/null and b/fuzz/corpus/fuzz_read/b83953f93615dca750a6060b516d0bd03faae291 differ diff --git a/fuzz/corpus/fuzz_read/b87cf86e755db63176c4a8215ba4b11c90dd032f b/fuzz/corpus/fuzz_read/b87cf86e755db63176c4a8215ba4b11c90dd032f new file mode 100644 index 00000000..b02aa057 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b87cf86e755db63176c4a8215ba4b11c90dd032f differ diff --git a/fuzz/corpus/fuzz_read/b8a09cadc7e2e6f3de314019a5a700421eff2b07 b/fuzz/corpus/fuzz_read/b8a09cadc7e2e6f3de314019a5a700421eff2b07 new file mode 100644 index 00000000..a777da8a Binary files /dev/null and b/fuzz/corpus/fuzz_read/b8a09cadc7e2e6f3de314019a5a700421eff2b07 differ diff --git a/fuzz/corpus/fuzz_read/b8b3e28bd42e15ca855d9c2f3449ea7b646666ac b/fuzz/corpus/fuzz_read/b8b3e28bd42e15ca855d9c2f3449ea7b646666ac new file mode 100644 index 00000000..bdf94a98 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b8b3e28bd42e15ca855d9c2f3449ea7b646666ac differ diff --git a/fuzz/corpus/fuzz_read/b8f1904eba9b49511adc0c78cae2b0923aee2e3c b/fuzz/corpus/fuzz_read/b8f1904eba9b49511adc0c78cae2b0923aee2e3c new file mode 100644 index 00000000..c26276b5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b8f1904eba9b49511adc0c78cae2b0923aee2e3c differ diff --git a/fuzz/corpus/fuzz_read/b900fc5c52e59871bd91b28d55104d9519d6c6ff b/fuzz/corpus/fuzz_read/b900fc5c52e59871bd91b28d55104d9519d6c6ff new file mode 100644 index 00000000..248c3595 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b900fc5c52e59871bd91b28d55104d9519d6c6ff differ diff --git a/fuzz/corpus/fuzz_read/b9637f3017d04adab5de6f9d1ad720a1edc61bbe b/fuzz/corpus/fuzz_read/b9637f3017d04adab5de6f9d1ad720a1edc61bbe new file mode 100644 index 00000000..549acd97 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b9637f3017d04adab5de6f9d1ad720a1edc61bbe differ diff --git a/fuzz/corpus/fuzz_read/b9a295ef00016318d1bbbf7e310fab945ef2a8c4 b/fuzz/corpus/fuzz_read/b9a295ef00016318d1bbbf7e310fab945ef2a8c4 new file mode 100644 index 00000000..2a347a23 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b9a295ef00016318d1bbbf7e310fab945ef2a8c4 differ diff --git a/fuzz/corpus/fuzz_read/b9cfa17aad005b10f7864a4ffbb3f6e120f12a88 b/fuzz/corpus/fuzz_read/b9cfa17aad005b10f7864a4ffbb3f6e120f12a88 new file mode 100644 index 00000000..7633439f Binary files /dev/null and b/fuzz/corpus/fuzz_read/b9cfa17aad005b10f7864a4ffbb3f6e120f12a88 differ diff --git a/fuzz/corpus/fuzz_read/b9ea1c8a3563e0f80c9f4c36947852bd00d84cc1 b/fuzz/corpus/fuzz_read/b9ea1c8a3563e0f80c9f4c36947852bd00d84cc1 new file mode 100644 index 00000000..7a8ee29e Binary files /dev/null and b/fuzz/corpus/fuzz_read/b9ea1c8a3563e0f80c9f4c36947852bd00d84cc1 differ diff --git a/fuzz/corpus/fuzz_read/b9eeaabc458b55d4e57df8e981052b75f4221bb7 b/fuzz/corpus/fuzz_read/b9eeaabc458b55d4e57df8e981052b75f4221bb7 new file mode 100644 index 00000000..494100f8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/b9eeaabc458b55d4e57df8e981052b75f4221bb7 differ diff --git a/fuzz/corpus/fuzz_read/ba02b67868bcf9583f797d42fe25744db526dc87 b/fuzz/corpus/fuzz_read/ba02b67868bcf9583f797d42fe25744db526dc87 new file mode 100644 index 00000000..f7e15d4d Binary files /dev/null and b/fuzz/corpus/fuzz_read/ba02b67868bcf9583f797d42fe25744db526dc87 differ diff --git a/fuzz/corpus/fuzz_read/ba94e96df909d98b84a7670ada578a290ee0d31e b/fuzz/corpus/fuzz_read/ba94e96df909d98b84a7670ada578a290ee0d31e new file mode 100644 index 00000000..1f391c89 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ba94e96df909d98b84a7670ada578a290ee0d31e differ diff --git a/fuzz/corpus/fuzz_read/bac9e4c3b05974ffbd9759ef00f875a243e7fac9 b/fuzz/corpus/fuzz_read/bac9e4c3b05974ffbd9759ef00f875a243e7fac9 new file mode 100644 index 00000000..849934e5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bac9e4c3b05974ffbd9759ef00f875a243e7fac9 differ diff --git a/fuzz/corpus/fuzz_read/bb26396b877ef92e39f5e7ca95f5f8d4de3e648d b/fuzz/corpus/fuzz_read/bb26396b877ef92e39f5e7ca95f5f8d4de3e648d new file mode 100644 index 00000000..2540b43c Binary files /dev/null and b/fuzz/corpus/fuzz_read/bb26396b877ef92e39f5e7ca95f5f8d4de3e648d differ diff --git a/fuzz/corpus/fuzz_read/bb31f61c59dbd7966f1290f34b0967ace7b75777 b/fuzz/corpus/fuzz_read/bb31f61c59dbd7966f1290f34b0967ace7b75777 new file mode 100644 index 00000000..e30518d3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bb31f61c59dbd7966f1290f34b0967ace7b75777 differ diff --git a/fuzz/corpus/fuzz_read/bb8b08bf73fced290a2e53ab0f391dc6a373aa13 b/fuzz/corpus/fuzz_read/bb8b08bf73fced290a2e53ab0f391dc6a373aa13 new file mode 100644 index 00000000..be3ca6c5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bb8b08bf73fced290a2e53ab0f391dc6a373aa13 differ diff --git a/fuzz/corpus/fuzz_read/bbc3245bcfd04ba80e677e9dd8c5010ab29ccbf5 b/fuzz/corpus/fuzz_read/bbc3245bcfd04ba80e677e9dd8c5010ab29ccbf5 new file mode 100644 index 00000000..c16f7302 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bbc3245bcfd04ba80e677e9dd8c5010ab29ccbf5 differ diff --git a/fuzz/corpus/fuzz_read/bbca564105b487c2e650a3997ac5cb273e29e73e b/fuzz/corpus/fuzz_read/bbca564105b487c2e650a3997ac5cb273e29e73e new file mode 100644 index 00000000..aa594d14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bbca564105b487c2e650a3997ac5cb273e29e73e differ diff --git a/fuzz/corpus/fuzz_read/bc09c9f8842b174196921be9f1c75c0b6880fb9e b/fuzz/corpus/fuzz_read/bc09c9f8842b174196921be9f1c75c0b6880fb9e new file mode 100644 index 00000000..bbce6aa6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bc09c9f8842b174196921be9f1c75c0b6880fb9e differ diff --git a/fuzz/corpus/fuzz_read/bc33427d7efb8c6caa3e82594691b516d0cf0ba7 b/fuzz/corpus/fuzz_read/bc33427d7efb8c6caa3e82594691b516d0cf0ba7 new file mode 100644 index 00000000..13af759f Binary files /dev/null and b/fuzz/corpus/fuzz_read/bc33427d7efb8c6caa3e82594691b516d0cf0ba7 differ diff --git a/fuzz/corpus/fuzz_read/bc9f58c51c32a2e22961518ebd90a80497a9527e b/fuzz/corpus/fuzz_read/bc9f58c51c32a2e22961518ebd90a80497a9527e new file mode 100644 index 00000000..d746f0a1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bc9f58c51c32a2e22961518ebd90a80497a9527e differ diff --git a/fuzz/corpus/fuzz_read/bd1f3ec70a6e3f8ed1e76f233f874579d6f43076 b/fuzz/corpus/fuzz_read/bd1f3ec70a6e3f8ed1e76f233f874579d6f43076 new file mode 100644 index 00000000..7de9b106 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bd1f3ec70a6e3f8ed1e76f233f874579d6f43076 differ diff --git a/fuzz/corpus/fuzz_read/bd74f08ebcdad81fa6e228491e14eae8e7532b99 b/fuzz/corpus/fuzz_read/bd74f08ebcdad81fa6e228491e14eae8e7532b99 new file mode 100644 index 00000000..074fd629 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bd74f08ebcdad81fa6e228491e14eae8e7532b99 differ diff --git a/fuzz/corpus/fuzz_read/bd803c9c18e29c4ae8a4dcbb968f9a594afb3448 b/fuzz/corpus/fuzz_read/bd803c9c18e29c4ae8a4dcbb968f9a594afb3448 new file mode 100644 index 00000000..c48cd6b1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bd803c9c18e29c4ae8a4dcbb968f9a594afb3448 differ diff --git a/fuzz/corpus/fuzz_read/bd95069d2d14bf0f50ff9956434ee629f3f2a6c7 b/fuzz/corpus/fuzz_read/bd95069d2d14bf0f50ff9956434ee629f3f2a6c7 new file mode 100644 index 00000000..6c631060 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bd95069d2d14bf0f50ff9956434ee629f3f2a6c7 differ diff --git a/fuzz/corpus/fuzz_read/bd9703e106f59f27343c30d84f14fb2e618370eb b/fuzz/corpus/fuzz_read/bd9703e106f59f27343c30d84f14fb2e618370eb new file mode 100644 index 00000000..31aa99c3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bd9703e106f59f27343c30d84f14fb2e618370eb differ diff --git a/fuzz/corpus/fuzz_read/bda98778421199f4560c6d5e16cdb148eab1f91a b/fuzz/corpus/fuzz_read/bda98778421199f4560c6d5e16cdb148eab1f91a new file mode 100644 index 00000000..1604a4b2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bda98778421199f4560c6d5e16cdb148eab1f91a differ diff --git a/fuzz/corpus/fuzz_read/bdb10831f737c2da1df5e7d94ed84317179bccb4 b/fuzz/corpus/fuzz_read/bdb10831f737c2da1df5e7d94ed84317179bccb4 new file mode 100644 index 00000000..ef34302a Binary files /dev/null and b/fuzz/corpus/fuzz_read/bdb10831f737c2da1df5e7d94ed84317179bccb4 differ diff --git a/fuzz/corpus/fuzz_read/bdf7cf13f903bc9d4a91714fbed17878c5ac8318 b/fuzz/corpus/fuzz_read/bdf7cf13f903bc9d4a91714fbed17878c5ac8318 new file mode 100644 index 00000000..932f920c Binary files /dev/null and b/fuzz/corpus/fuzz_read/bdf7cf13f903bc9d4a91714fbed17878c5ac8318 differ diff --git a/fuzz/corpus/fuzz_read/be0d8a7c20c0d6f8625cbfeb2e425b06dfa859a3 b/fuzz/corpus/fuzz_read/be0d8a7c20c0d6f8625cbfeb2e425b06dfa859a3 new file mode 100644 index 00000000..3a57fef5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/be0d8a7c20c0d6f8625cbfeb2e425b06dfa859a3 differ diff --git a/fuzz/corpus/fuzz_read/bec06bcc3aa86d10c81b5125ab740d058130e9d9 b/fuzz/corpus/fuzz_read/bec06bcc3aa86d10c81b5125ab740d058130e9d9 new file mode 100644 index 00000000..44aea8c7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bec06bcc3aa86d10c81b5125ab740d058130e9d9 differ diff --git a/fuzz/corpus/fuzz_read/bef40432ccd94709dc09492936eb6adc12a4605b b/fuzz/corpus/fuzz_read/bef40432ccd94709dc09492936eb6adc12a4605b new file mode 100644 index 00000000..8103eab0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bef40432ccd94709dc09492936eb6adc12a4605b differ diff --git a/fuzz/corpus/fuzz_read/bf377c5513028838ec2da0b8bae9d8434a35d0e8 b/fuzz/corpus/fuzz_read/bf377c5513028838ec2da0b8bae9d8434a35d0e8 new file mode 100644 index 00000000..bf0cc8e7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/bf377c5513028838ec2da0b8bae9d8434a35d0e8 differ diff --git a/fuzz/corpus/fuzz_read/bfb44cf493956efccc5224b420200c87138c26cf b/fuzz/corpus/fuzz_read/bfb44cf493956efccc5224b420200c87138c26cf new file mode 100644 index 00000000..56308d1c Binary files /dev/null and b/fuzz/corpus/fuzz_read/bfb44cf493956efccc5224b420200c87138c26cf differ diff --git a/fuzz/corpus/fuzz_read/bfd81ab8c24b3bd23a0f61eb4e75a79047b29919 b/fuzz/corpus/fuzz_read/bfd81ab8c24b3bd23a0f61eb4e75a79047b29919 new file mode 100644 index 00000000..bfd5e59e Binary files /dev/null and b/fuzz/corpus/fuzz_read/bfd81ab8c24b3bd23a0f61eb4e75a79047b29919 differ diff --git a/fuzz/corpus/fuzz_read/c02786710cbac0c74a0f147349d096b5ff057a58 b/fuzz/corpus/fuzz_read/c02786710cbac0c74a0f147349d096b5ff057a58 new file mode 100644 index 00000000..e65d4fc7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c02786710cbac0c74a0f147349d096b5ff057a58 differ diff --git a/fuzz/corpus/fuzz_read/c02e272aa2f037c46234cfcde4e91e040255b727 b/fuzz/corpus/fuzz_read/c02e272aa2f037c46234cfcde4e91e040255b727 new file mode 100644 index 00000000..8d306f2b Binary files /dev/null and b/fuzz/corpus/fuzz_read/c02e272aa2f037c46234cfcde4e91e040255b727 differ diff --git a/fuzz/corpus/fuzz_read/c04bb64b6e3f97c5b48e667b1e3888dcc0e43c70 b/fuzz/corpus/fuzz_read/c04bb64b6e3f97c5b48e667b1e3888dcc0e43c70 new file mode 100644 index 00000000..60a399cc Binary files /dev/null and b/fuzz/corpus/fuzz_read/c04bb64b6e3f97c5b48e667b1e3888dcc0e43c70 differ diff --git a/fuzz/corpus/fuzz_read/c0e7d2ca271788fb565d4eaff00e957653b8bb58 b/fuzz/corpus/fuzz_read/c0e7d2ca271788fb565d4eaff00e957653b8bb58 new file mode 100644 index 00000000..b685a880 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c0e7d2ca271788fb565d4eaff00e957653b8bb58 differ diff --git a/fuzz/corpus/fuzz_read/c0e9f4470d6ed89e323834905dee2742913367bb b/fuzz/corpus/fuzz_read/c0e9f4470d6ed89e323834905dee2742913367bb new file mode 100644 index 00000000..4d86940f Binary files /dev/null and b/fuzz/corpus/fuzz_read/c0e9f4470d6ed89e323834905dee2742913367bb differ diff --git a/fuzz/corpus/fuzz_read/c1409732af8289277a5a21075f6d4a26188ab8db b/fuzz/corpus/fuzz_read/c1409732af8289277a5a21075f6d4a26188ab8db new file mode 100644 index 00000000..9835cadc Binary files /dev/null and b/fuzz/corpus/fuzz_read/c1409732af8289277a5a21075f6d4a26188ab8db differ diff --git a/fuzz/corpus/fuzz_read/c17ab59164a9c0384fe69e446128c76706216a90 b/fuzz/corpus/fuzz_read/c17ab59164a9c0384fe69e446128c76706216a90 new file mode 100644 index 00000000..b67823cc Binary files /dev/null and b/fuzz/corpus/fuzz_read/c17ab59164a9c0384fe69e446128c76706216a90 differ diff --git a/fuzz/corpus/fuzz_read/c1d9ee662e04a0c71ae7d3367f84080e856499af b/fuzz/corpus/fuzz_read/c1d9ee662e04a0c71ae7d3367f84080e856499af new file mode 100644 index 00000000..ae6b010c Binary files /dev/null and b/fuzz/corpus/fuzz_read/c1d9ee662e04a0c71ae7d3367f84080e856499af differ diff --git a/fuzz/corpus/fuzz_read/c21c43f622a143fe49a6a0c7e4c597b9727795ff b/fuzz/corpus/fuzz_read/c21c43f622a143fe49a6a0c7e4c597b9727795ff new file mode 100644 index 00000000..a84d9e43 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c21c43f622a143fe49a6a0c7e4c597b9727795ff differ diff --git a/fuzz/corpus/fuzz_read/c24716592ebf38e9b9bb21333b57e81434ac2708 b/fuzz/corpus/fuzz_read/c24716592ebf38e9b9bb21333b57e81434ac2708 new file mode 100644 index 00000000..4d22972c Binary files /dev/null and b/fuzz/corpus/fuzz_read/c24716592ebf38e9b9bb21333b57e81434ac2708 differ diff --git a/fuzz/corpus/fuzz_read/c2b1a8c1af0c059b785e2472c7ad529f990473f2 b/fuzz/corpus/fuzz_read/c2b1a8c1af0c059b785e2472c7ad529f990473f2 new file mode 100644 index 00000000..71d0a289 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c2b1a8c1af0c059b785e2472c7ad529f990473f2 differ diff --git a/fuzz/corpus/fuzz_read/c2e18bef7922a069b6325d5ab330f4d07f2672be b/fuzz/corpus/fuzz_read/c2e18bef7922a069b6325d5ab330f4d07f2672be new file mode 100644 index 00000000..8f02a359 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c2e18bef7922a069b6325d5ab330f4d07f2672be differ diff --git a/fuzz/corpus/fuzz_read/c39900df766067bc09aba0f738370ba814403ef5 b/fuzz/corpus/fuzz_read/c39900df766067bc09aba0f738370ba814403ef5 new file mode 100644 index 00000000..3b4c593d Binary files /dev/null and b/fuzz/corpus/fuzz_read/c39900df766067bc09aba0f738370ba814403ef5 differ diff --git a/fuzz/corpus/fuzz_read/c3bb13bc902e9c69a7862ec53e9e66d2b3f9c506 b/fuzz/corpus/fuzz_read/c3bb13bc902e9c69a7862ec53e9e66d2b3f9c506 new file mode 100644 index 00000000..2d23bde3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c3bb13bc902e9c69a7862ec53e9e66d2b3f9c506 differ diff --git a/fuzz/corpus/fuzz_read/c456b4440f61afd24d862de9bba9587b10c7e8b9 b/fuzz/corpus/fuzz_read/c456b4440f61afd24d862de9bba9587b10c7e8b9 new file mode 100644 index 00000000..941d5174 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c456b4440f61afd24d862de9bba9587b10c7e8b9 differ diff --git a/fuzz/corpus/fuzz_read/c4c8987c544df32fa0d467db07044fd5f8b89a06 b/fuzz/corpus/fuzz_read/c4c8987c544df32fa0d467db07044fd5f8b89a06 new file mode 100644 index 00000000..8546e860 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c4c8987c544df32fa0d467db07044fd5f8b89a06 differ diff --git a/fuzz/corpus/fuzz_read/c4d99f5ab33f14d6c0543a5ca43e39302476713e b/fuzz/corpus/fuzz_read/c4d99f5ab33f14d6c0543a5ca43e39302476713e new file mode 100644 index 00000000..d90c177a Binary files /dev/null and b/fuzz/corpus/fuzz_read/c4d99f5ab33f14d6c0543a5ca43e39302476713e differ diff --git a/fuzz/corpus/fuzz_read/c4dfc269091c57a1093ed56987b442a7d0585ae1 b/fuzz/corpus/fuzz_read/c4dfc269091c57a1093ed56987b442a7d0585ae1 new file mode 100644 index 00000000..23cf057e Binary files /dev/null and b/fuzz/corpus/fuzz_read/c4dfc269091c57a1093ed56987b442a7d0585ae1 differ diff --git a/fuzz/corpus/fuzz_read/c4f9d82b9fe0b8e7012f9c65ecb3eefaaf03afb2 b/fuzz/corpus/fuzz_read/c4f9d82b9fe0b8e7012f9c65ecb3eefaaf03afb2 new file mode 100644 index 00000000..3541ae32 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c4f9d82b9fe0b8e7012f9c65ecb3eefaaf03afb2 differ diff --git a/fuzz/corpus/fuzz_read/c59c07789d8c20d903ff3f92cffaa0780ed7dc2a b/fuzz/corpus/fuzz_read/c59c07789d8c20d903ff3f92cffaa0780ed7dc2a new file mode 100644 index 00000000..c0b265f6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c59c07789d8c20d903ff3f92cffaa0780ed7dc2a differ diff --git a/fuzz/corpus/fuzz_read/c5b3abb700bbf2fd480b8fb0501650cb81487397 b/fuzz/corpus/fuzz_read/c5b3abb700bbf2fd480b8fb0501650cb81487397 new file mode 100644 index 00000000..a0f4ed3f Binary files /dev/null and b/fuzz/corpus/fuzz_read/c5b3abb700bbf2fd480b8fb0501650cb81487397 differ diff --git a/fuzz/corpus/fuzz_read/c5d01b87eac10b1474060c4a8d86db310db7c810 b/fuzz/corpus/fuzz_read/c5d01b87eac10b1474060c4a8d86db310db7c810 new file mode 100644 index 00000000..2c7ad6d6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c5d01b87eac10b1474060c4a8d86db310db7c810 differ diff --git a/fuzz/corpus/fuzz_read/c630269b30af44402b86a75435f13d90476af47d b/fuzz/corpus/fuzz_read/c630269b30af44402b86a75435f13d90476af47d new file mode 100644 index 00000000..14566616 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c630269b30af44402b86a75435f13d90476af47d differ diff --git a/fuzz/corpus/fuzz_read/c665700464f3547695de0026fc5d357e8bfbabe7 b/fuzz/corpus/fuzz_read/c665700464f3547695de0026fc5d357e8bfbabe7 new file mode 100644 index 00000000..e6cb2da3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c665700464f3547695de0026fc5d357e8bfbabe7 differ diff --git a/fuzz/corpus/fuzz_read/c6893e1e8b562c572fb2bb562dcda88668559a39 b/fuzz/corpus/fuzz_read/c6893e1e8b562c572fb2bb562dcda88668559a39 new file mode 100644 index 00000000..2834ca1d Binary files /dev/null and b/fuzz/corpus/fuzz_read/c6893e1e8b562c572fb2bb562dcda88668559a39 differ diff --git a/fuzz/corpus/fuzz_read/c689ecee84d73747cdb87d4c5fcc815de2e13fef b/fuzz/corpus/fuzz_read/c689ecee84d73747cdb87d4c5fcc815de2e13fef new file mode 100644 index 00000000..c69a4a9f Binary files /dev/null and b/fuzz/corpus/fuzz_read/c689ecee84d73747cdb87d4c5fcc815de2e13fef differ diff --git a/fuzz/corpus/fuzz_read/c7345412cc7c4faaba50b3117ae4e201d4b0fc50 b/fuzz/corpus/fuzz_read/c7345412cc7c4faaba50b3117ae4e201d4b0fc50 new file mode 100644 index 00000000..058fcaca Binary files /dev/null and b/fuzz/corpus/fuzz_read/c7345412cc7c4faaba50b3117ae4e201d4b0fc50 differ diff --git a/fuzz/corpus/fuzz_read/c761f8e4a86a94fe9a5d8fb82cd593a71f5c09d5 b/fuzz/corpus/fuzz_read/c761f8e4a86a94fe9a5d8fb82cd593a71f5c09d5 new file mode 100644 index 00000000..16cbc571 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c761f8e4a86a94fe9a5d8fb82cd593a71f5c09d5 differ diff --git a/fuzz/corpus/fuzz_read/c7d4a144c6d473ed7a7270ae07de0ad4cbcb3588 b/fuzz/corpus/fuzz_read/c7d4a144c6d473ed7a7270ae07de0ad4cbcb3588 new file mode 100644 index 00000000..9fadee68 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c7d4a144c6d473ed7a7270ae07de0ad4cbcb3588 differ diff --git a/fuzz/corpus/fuzz_read/c817a3f0e55318b26dfa172b826c5ed64f3bd968 b/fuzz/corpus/fuzz_read/c817a3f0e55318b26dfa172b826c5ed64f3bd968 new file mode 100644 index 00000000..2bc6f697 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c817a3f0e55318b26dfa172b826c5ed64f3bd968 differ diff --git a/fuzz/corpus/fuzz_read/c864abcc55c457c6917fce42580e988c3f23ddce b/fuzz/corpus/fuzz_read/c864abcc55c457c6917fce42580e988c3f23ddce new file mode 100644 index 00000000..aac7abcd Binary files /dev/null and b/fuzz/corpus/fuzz_read/c864abcc55c457c6917fce42580e988c3f23ddce differ diff --git a/fuzz/corpus/fuzz_read/c87f042a676c3d75771842e7b89991255ee708e3 b/fuzz/corpus/fuzz_read/c87f042a676c3d75771842e7b89991255ee708e3 new file mode 100644 index 00000000..46087cc6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c87f042a676c3d75771842e7b89991255ee708e3 differ diff --git a/fuzz/corpus/fuzz_read/c8a050e829d18853ab089cbd4a3e109f961fdb3e b/fuzz/corpus/fuzz_read/c8a050e829d18853ab089cbd4a3e109f961fdb3e new file mode 100644 index 00000000..138bd64b Binary files /dev/null and b/fuzz/corpus/fuzz_read/c8a050e829d18853ab089cbd4a3e109f961fdb3e differ diff --git a/fuzz/corpus/fuzz_read/c9058ff0c046ec42a4933fa845d020cbd5a87e08 b/fuzz/corpus/fuzz_read/c9058ff0c046ec42a4933fa845d020cbd5a87e08 new file mode 100644 index 00000000..c93d2cb6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c9058ff0c046ec42a4933fa845d020cbd5a87e08 differ diff --git a/fuzz/corpus/fuzz_read/c92a75171ac0e1d3e3bbd415971b4de6ae939319 b/fuzz/corpus/fuzz_read/c92a75171ac0e1d3e3bbd415971b4de6ae939319 new file mode 100644 index 00000000..5088ca89 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c92a75171ac0e1d3e3bbd415971b4de6ae939319 differ diff --git a/fuzz/corpus/fuzz_read/c9753bc31aa90da6a4510325f29eb89e44966508 b/fuzz/corpus/fuzz_read/c9753bc31aa90da6a4510325f29eb89e44966508 new file mode 100644 index 00000000..67255ec9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c9753bc31aa90da6a4510325f29eb89e44966508 differ diff --git a/fuzz/corpus/fuzz_read/c9755f026b0bde2d90ccd3ae1c024828b46d0da4 b/fuzz/corpus/fuzz_read/c9755f026b0bde2d90ccd3ae1c024828b46d0da4 new file mode 100644 index 00000000..46440803 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c9755f026b0bde2d90ccd3ae1c024828b46d0da4 differ diff --git a/fuzz/corpus/fuzz_read/c9b852a457627fcfa375e55f489bdfa3bded4dcb b/fuzz/corpus/fuzz_read/c9b852a457627fcfa375e55f489bdfa3bded4dcb new file mode 100644 index 00000000..498b6d67 Binary files /dev/null and b/fuzz/corpus/fuzz_read/c9b852a457627fcfa375e55f489bdfa3bded4dcb differ diff --git a/fuzz/corpus/fuzz_read/ca1e915db56d16fee0f2ebefe55fb60a302b34eb b/fuzz/corpus/fuzz_read/ca1e915db56d16fee0f2ebefe55fb60a302b34eb new file mode 100644 index 00000000..5f86defb Binary files /dev/null and b/fuzz/corpus/fuzz_read/ca1e915db56d16fee0f2ebefe55fb60a302b34eb differ diff --git a/fuzz/corpus/fuzz_read/caf508c6a628b756588d8c049a8c79dd7c115b37 b/fuzz/corpus/fuzz_read/caf508c6a628b756588d8c049a8c79dd7c115b37 new file mode 100644 index 00000000..c444078a Binary files /dev/null and b/fuzz/corpus/fuzz_read/caf508c6a628b756588d8c049a8c79dd7c115b37 differ diff --git a/fuzz/corpus/fuzz_read/cc0e0a65f8cc7a2a4817b0af53cb29baea3ba7f8 b/fuzz/corpus/fuzz_read/cc0e0a65f8cc7a2a4817b0af53cb29baea3ba7f8 new file mode 100644 index 00000000..ec88058b Binary files /dev/null and b/fuzz/corpus/fuzz_read/cc0e0a65f8cc7a2a4817b0af53cb29baea3ba7f8 differ diff --git a/fuzz/corpus/fuzz_read/cc652c946d969e93d890271fe263931df6b758e6 b/fuzz/corpus/fuzz_read/cc652c946d969e93d890271fe263931df6b758e6 new file mode 100644 index 00000000..17c914fe Binary files /dev/null and b/fuzz/corpus/fuzz_read/cc652c946d969e93d890271fe263931df6b758e6 differ diff --git a/fuzz/corpus/fuzz_read/cc656cb0a45a3693df034a1e5036d36c6e4dab9e b/fuzz/corpus/fuzz_read/cc656cb0a45a3693df034a1e5036d36c6e4dab9e new file mode 100644 index 00000000..3fc5295d Binary files /dev/null and b/fuzz/corpus/fuzz_read/cc656cb0a45a3693df034a1e5036d36c6e4dab9e differ diff --git a/fuzz/corpus/fuzz_read/cc9d26e5a617d2f56da3add5ea1b7c5349fa196d b/fuzz/corpus/fuzz_read/cc9d26e5a617d2f56da3add5ea1b7c5349fa196d new file mode 100644 index 00000000..2eca8dff Binary files /dev/null and b/fuzz/corpus/fuzz_read/cc9d26e5a617d2f56da3add5ea1b7c5349fa196d differ diff --git a/fuzz/corpus/fuzz_read/ccaa79b263b90ba6cc5c0f14ddebeb6c0802437e b/fuzz/corpus/fuzz_read/ccaa79b263b90ba6cc5c0f14ddebeb6c0802437e new file mode 100644 index 00000000..61e0e493 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ccaa79b263b90ba6cc5c0f14ddebeb6c0802437e differ diff --git a/fuzz/corpus/fuzz_read/ccdce7ee4448a9532dd9fe63b4630f1efd4d61e4 b/fuzz/corpus/fuzz_read/ccdce7ee4448a9532dd9fe63b4630f1efd4d61e4 new file mode 100644 index 00000000..f0efdde3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ccdce7ee4448a9532dd9fe63b4630f1efd4d61e4 differ diff --git a/fuzz/corpus/fuzz_read/ccfd0781b01aff032e8fb25488043690901c4018 b/fuzz/corpus/fuzz_read/ccfd0781b01aff032e8fb25488043690901c4018 new file mode 100644 index 00000000..e4faa802 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ccfd0781b01aff032e8fb25488043690901c4018 differ diff --git a/fuzz/corpus/fuzz_read/cd38ddd50853747de1334f952d30d14c90b362f1 b/fuzz/corpus/fuzz_read/cd38ddd50853747de1334f952d30d14c90b362f1 new file mode 100644 index 00000000..6af0b672 Binary files /dev/null and b/fuzz/corpus/fuzz_read/cd38ddd50853747de1334f952d30d14c90b362f1 differ diff --git a/fuzz/corpus/fuzz_read/cdd6b2ab2aeda16f394341ea70beb476391861f8 b/fuzz/corpus/fuzz_read/cdd6b2ab2aeda16f394341ea70beb476391861f8 new file mode 100644 index 00000000..fa1a8ecf Binary files /dev/null and b/fuzz/corpus/fuzz_read/cdd6b2ab2aeda16f394341ea70beb476391861f8 differ diff --git a/fuzz/corpus/fuzz_read/cde43c743e498ef1fa1432d345998e47446e9a53 b/fuzz/corpus/fuzz_read/cde43c743e498ef1fa1432d345998e47446e9a53 new file mode 100644 index 00000000..2fb97ed2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/cde43c743e498ef1fa1432d345998e47446e9a53 differ diff --git a/fuzz/corpus/fuzz_read/ce5a00392fb45d88eb839f7f50b5420da43b9950 b/fuzz/corpus/fuzz_read/ce5a00392fb45d88eb839f7f50b5420da43b9950 new file mode 100644 index 00000000..068386db Binary files /dev/null and b/fuzz/corpus/fuzz_read/ce5a00392fb45d88eb839f7f50b5420da43b9950 differ diff --git a/fuzz/corpus/fuzz_read/ce6ff6a8e48b8c12026b5dc43653705988ed73ef b/fuzz/corpus/fuzz_read/ce6ff6a8e48b8c12026b5dc43653705988ed73ef new file mode 100644 index 00000000..2d87cacf Binary files /dev/null and b/fuzz/corpus/fuzz_read/ce6ff6a8e48b8c12026b5dc43653705988ed73ef differ diff --git a/fuzz/corpus/fuzz_read/ce762fadf896aafdfc7b9105e36be573db5ce2d1 b/fuzz/corpus/fuzz_read/ce762fadf896aafdfc7b9105e36be573db5ce2d1 new file mode 100644 index 00000000..d1de67a7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ce762fadf896aafdfc7b9105e36be573db5ce2d1 differ diff --git a/fuzz/corpus/fuzz_read/ce90edf1ab53ccf212b5fdd520759d61b6af258f b/fuzz/corpus/fuzz_read/ce90edf1ab53ccf212b5fdd520759d61b6af258f new file mode 100644 index 00000000..4a75370e Binary files /dev/null and b/fuzz/corpus/fuzz_read/ce90edf1ab53ccf212b5fdd520759d61b6af258f differ diff --git a/fuzz/corpus/fuzz_read/cf5392f4560dde69ffb32a3e6aff6e601986dbc4 b/fuzz/corpus/fuzz_read/cf5392f4560dde69ffb32a3e6aff6e601986dbc4 new file mode 100644 index 00000000..105490c5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/cf5392f4560dde69ffb32a3e6aff6e601986dbc4 differ diff --git a/fuzz/corpus/fuzz_read/cf751137cff77db0ee9549e18e6266a822da8726 b/fuzz/corpus/fuzz_read/cf751137cff77db0ee9549e18e6266a822da8726 new file mode 100644 index 00000000..3de45ae7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/cf751137cff77db0ee9549e18e6266a822da8726 differ diff --git a/fuzz/corpus/fuzz_read/cf9ffcefefec9fbb2c0e50629a1a36c882a4784a b/fuzz/corpus/fuzz_read/cf9ffcefefec9fbb2c0e50629a1a36c882a4784a new file mode 100644 index 00000000..8c4989c4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/cf9ffcefefec9fbb2c0e50629a1a36c882a4784a differ diff --git a/fuzz/corpus/fuzz_read/cfd32da4e2b32a4ceb82bb580fa87e86e6b087a9 b/fuzz/corpus/fuzz_read/cfd32da4e2b32a4ceb82bb580fa87e86e6b087a9 new file mode 100644 index 00000000..322bc31b Binary files /dev/null and b/fuzz/corpus/fuzz_read/cfd32da4e2b32a4ceb82bb580fa87e86e6b087a9 differ diff --git a/fuzz/corpus/fuzz_read/cffe302a143f3c5a3415d82c27fc9b8fbb228c71 b/fuzz/corpus/fuzz_read/cffe302a143f3c5a3415d82c27fc9b8fbb228c71 new file mode 100644 index 00000000..5b10e6bd Binary files /dev/null and b/fuzz/corpus/fuzz_read/cffe302a143f3c5a3415d82c27fc9b8fbb228c71 differ diff --git a/fuzz/corpus/fuzz_read/d004f711ea03f6f1aaf6737d579746ee18fa4c31 b/fuzz/corpus/fuzz_read/d004f711ea03f6f1aaf6737d579746ee18fa4c31 new file mode 100644 index 00000000..616a8af4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d004f711ea03f6f1aaf6737d579746ee18fa4c31 differ diff --git a/fuzz/corpus/fuzz_read/d016368d54839a59c1707d7db616ff896e2e6364 b/fuzz/corpus/fuzz_read/d016368d54839a59c1707d7db616ff896e2e6364 new file mode 100644 index 00000000..76cc87b9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d016368d54839a59c1707d7db616ff896e2e6364 differ diff --git a/fuzz/corpus/fuzz_read/d030a2f2ecca52072110fe58d161c3f620720bd9 b/fuzz/corpus/fuzz_read/d030a2f2ecca52072110fe58d161c3f620720bd9 new file mode 100644 index 00000000..1440da4e Binary files /dev/null and b/fuzz/corpus/fuzz_read/d030a2f2ecca52072110fe58d161c3f620720bd9 differ diff --git a/fuzz/corpus/fuzz_read/d04b496fadf2d3c1437eeb6f70dbcfbe29601ba8 b/fuzz/corpus/fuzz_read/d04b496fadf2d3c1437eeb6f70dbcfbe29601ba8 new file mode 100644 index 00000000..af7aa1ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/d04b496fadf2d3c1437eeb6f70dbcfbe29601ba8 differ diff --git a/fuzz/corpus/fuzz_read/d058e854555516fc3881d116b1bee49d89998b93 b/fuzz/corpus/fuzz_read/d058e854555516fc3881d116b1bee49d89998b93 new file mode 100644 index 00000000..de509e2f Binary files /dev/null and b/fuzz/corpus/fuzz_read/d058e854555516fc3881d116b1bee49d89998b93 differ diff --git a/fuzz/corpus/fuzz_read/d0b16f658012a64ef24dcf3840157dafdd7121f1 b/fuzz/corpus/fuzz_read/d0b16f658012a64ef24dcf3840157dafdd7121f1 new file mode 100644 index 00000000..70879dda Binary files /dev/null and b/fuzz/corpus/fuzz_read/d0b16f658012a64ef24dcf3840157dafdd7121f1 differ diff --git a/fuzz/corpus/fuzz_read/d0bdbfcf7a0d7a02e06b81bb174b479a64897ac7 b/fuzz/corpus/fuzz_read/d0bdbfcf7a0d7a02e06b81bb174b479a64897ac7 new file mode 100644 index 00000000..b06b4b2c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d0bdbfcf7a0d7a02e06b81bb174b479a64897ac7 differ diff --git a/fuzz/corpus/fuzz_read/d0e5a87dfa9ea335c9f453bc8f809ad10cdaec17 b/fuzz/corpus/fuzz_read/d0e5a87dfa9ea335c9f453bc8f809ad10cdaec17 new file mode 100644 index 00000000..2b7e1dab Binary files /dev/null and b/fuzz/corpus/fuzz_read/d0e5a87dfa9ea335c9f453bc8f809ad10cdaec17 differ diff --git a/fuzz/corpus/fuzz_read/d0ff23ed3901dfd148fe4974350c09656f769a3a b/fuzz/corpus/fuzz_read/d0ff23ed3901dfd148fe4974350c09656f769a3a new file mode 100644 index 00000000..47d8a478 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d0ff23ed3901dfd148fe4974350c09656f769a3a differ diff --git a/fuzz/corpus/fuzz_read/d12576cda4b056c76718549253c0398bd6d85cb2 b/fuzz/corpus/fuzz_read/d12576cda4b056c76718549253c0398bd6d85cb2 new file mode 100644 index 00000000..47c3f70e Binary files /dev/null and b/fuzz/corpus/fuzz_read/d12576cda4b056c76718549253c0398bd6d85cb2 differ diff --git a/fuzz/corpus/fuzz_read/d12a02b10eff38488421f752207ee5c4134de366 b/fuzz/corpus/fuzz_read/d12a02b10eff38488421f752207ee5c4134de366 new file mode 100644 index 00000000..cc14f591 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d12a02b10eff38488421f752207ee5c4134de366 differ diff --git a/fuzz/corpus/fuzz_read/d12d86fd7c13478a25bbd471092e38e87a70b555 b/fuzz/corpus/fuzz_read/d12d86fd7c13478a25bbd471092e38e87a70b555 new file mode 100644 index 00000000..b17c82de Binary files /dev/null and b/fuzz/corpus/fuzz_read/d12d86fd7c13478a25bbd471092e38e87a70b555 differ diff --git a/fuzz/corpus/fuzz_read/d14777133a3745d3f8a131fbcb96b543211cb014 b/fuzz/corpus/fuzz_read/d14777133a3745d3f8a131fbcb96b543211cb014 new file mode 100644 index 00000000..3b8e660d Binary files /dev/null and b/fuzz/corpus/fuzz_read/d14777133a3745d3f8a131fbcb96b543211cb014 differ diff --git a/fuzz/corpus/fuzz_read/d16ab713c9470f039d72a38511cb9fee974915c7 b/fuzz/corpus/fuzz_read/d16ab713c9470f039d72a38511cb9fee974915c7 new file mode 100644 index 00000000..4248c2a2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d16ab713c9470f039d72a38511cb9fee974915c7 differ diff --git a/fuzz/corpus/fuzz_read/d17b5b117771a3b62066b80ad942da56263ecc89 b/fuzz/corpus/fuzz_read/d17b5b117771a3b62066b80ad942da56263ecc89 new file mode 100644 index 00000000..5d5dce19 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d17b5b117771a3b62066b80ad942da56263ecc89 differ diff --git a/fuzz/corpus/fuzz_read/d183c54a247a12dff770d88ed64c46983fee181e b/fuzz/corpus/fuzz_read/d183c54a247a12dff770d88ed64c46983fee181e new file mode 100644 index 00000000..1924a543 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d183c54a247a12dff770d88ed64c46983fee181e differ diff --git a/fuzz/corpus/fuzz_read/d1b6a8cb55e95f3eaef18469d7b022f89d8307ae b/fuzz/corpus/fuzz_read/d1b6a8cb55e95f3eaef18469d7b022f89d8307ae new file mode 100644 index 00000000..af0bae94 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d1b6a8cb55e95f3eaef18469d7b022f89d8307ae differ diff --git a/fuzz/corpus/fuzz_read/d1d252b746b7e24f6640d972479b6e86eb2562d9 b/fuzz/corpus/fuzz_read/d1d252b746b7e24f6640d972479b6e86eb2562d9 new file mode 100644 index 00000000..c9c469dd Binary files /dev/null and b/fuzz/corpus/fuzz_read/d1d252b746b7e24f6640d972479b6e86eb2562d9 differ diff --git a/fuzz/corpus/fuzz_read/d2019c7613956a8caaaf011e639fe1bc9cfe33b4 b/fuzz/corpus/fuzz_read/d2019c7613956a8caaaf011e639fe1bc9cfe33b4 new file mode 100644 index 00000000..8e238048 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d2019c7613956a8caaaf011e639fe1bc9cfe33b4 differ diff --git a/fuzz/corpus/fuzz_read/d208f63c5b9d42bb55f74127550ff8d009f78a65 b/fuzz/corpus/fuzz_read/d208f63c5b9d42bb55f74127550ff8d009f78a65 new file mode 100644 index 00000000..55ce4172 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d208f63c5b9d42bb55f74127550ff8d009f78a65 differ diff --git a/fuzz/corpus/fuzz_read/d21ab08a2af385421072f054c963c6ac99ab6f78 b/fuzz/corpus/fuzz_read/d21ab08a2af385421072f054c963c6ac99ab6f78 new file mode 100644 index 00000000..ac11b6b5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d21ab08a2af385421072f054c963c6ac99ab6f78 differ diff --git a/fuzz/corpus/fuzz_read/d249c5beaac80c1dded2efcefa670fcad307b4c6 b/fuzz/corpus/fuzz_read/d249c5beaac80c1dded2efcefa670fcad307b4c6 new file mode 100644 index 00000000..5736cb54 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d249c5beaac80c1dded2efcefa670fcad307b4c6 differ diff --git a/fuzz/corpus/fuzz_read/d282a82e865dd3ebb894f414b017a81d139bfdea b/fuzz/corpus/fuzz_read/d282a82e865dd3ebb894f414b017a81d139bfdea new file mode 100644 index 00000000..03b0689c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d282a82e865dd3ebb894f414b017a81d139bfdea differ diff --git a/fuzz/corpus/fuzz_read/d286abcb4d47876607582da38da4b1c228f63d51 b/fuzz/corpus/fuzz_read/d286abcb4d47876607582da38da4b1c228f63d51 new file mode 100644 index 00000000..3512be03 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d286abcb4d47876607582da38da4b1c228f63d51 differ diff --git a/fuzz/corpus/fuzz_read/d2a96a8f9f25bb95fecab8e53c1986dcd53cc854 b/fuzz/corpus/fuzz_read/d2a96a8f9f25bb95fecab8e53c1986dcd53cc854 new file mode 100644 index 00000000..61ff9f91 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d2a96a8f9f25bb95fecab8e53c1986dcd53cc854 differ diff --git a/fuzz/corpus/fuzz_read/d2c69dcaf781ac9bedf5e51aae20ef6179680a19 b/fuzz/corpus/fuzz_read/d2c69dcaf781ac9bedf5e51aae20ef6179680a19 new file mode 100644 index 00000000..dfe38bc1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d2c69dcaf781ac9bedf5e51aae20ef6179680a19 differ diff --git a/fuzz/corpus/fuzz_read/d2c6fac1024829ede37b705f40b7e631971fdd79 b/fuzz/corpus/fuzz_read/d2c6fac1024829ede37b705f40b7e631971fdd79 new file mode 100644 index 00000000..9c911637 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d2c6fac1024829ede37b705f40b7e631971fdd79 differ diff --git a/fuzz/corpus/fuzz_read/d2d15f52e5bcf99542c6ca4c2ca978974465a226 b/fuzz/corpus/fuzz_read/d2d15f52e5bcf99542c6ca4c2ca978974465a226 new file mode 100644 index 00000000..4f9f1e9c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d2d15f52e5bcf99542c6ca4c2ca978974465a226 differ diff --git a/fuzz/corpus/fuzz_read/d33940fe35370a213418302dd0c364f77576ddb4 b/fuzz/corpus/fuzz_read/d33940fe35370a213418302dd0c364f77576ddb4 new file mode 100644 index 00000000..ea99baa2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d33940fe35370a213418302dd0c364f77576ddb4 differ diff --git a/fuzz/corpus/fuzz_read/d341b286350a982df98c04e3b240da4160278364 b/fuzz/corpus/fuzz_read/d341b286350a982df98c04e3b240da4160278364 new file mode 100644 index 00000000..e4c4affe Binary files /dev/null and b/fuzz/corpus/fuzz_read/d341b286350a982df98c04e3b240da4160278364 differ diff --git a/fuzz/corpus/fuzz_read/d342d539825dd9c730fac0cacc72fb8fcff99d2b b/fuzz/corpus/fuzz_read/d342d539825dd9c730fac0cacc72fb8fcff99d2b new file mode 100644 index 00000000..a6235ee5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d342d539825dd9c730fac0cacc72fb8fcff99d2b differ diff --git a/fuzz/corpus/fuzz_read/d389447e45003e36dd9c4026c0ed3a7688985bc7 b/fuzz/corpus/fuzz_read/d389447e45003e36dd9c4026c0ed3a7688985bc7 new file mode 100644 index 00000000..e740b41e Binary files /dev/null and b/fuzz/corpus/fuzz_read/d389447e45003e36dd9c4026c0ed3a7688985bc7 differ diff --git a/fuzz/corpus/fuzz_read/d390465bacbc0eb61c93a474d6a697c525e17089 b/fuzz/corpus/fuzz_read/d390465bacbc0eb61c93a474d6a697c525e17089 new file mode 100644 index 00000000..33dbd09c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d390465bacbc0eb61c93a474d6a697c525e17089 differ diff --git a/fuzz/corpus/fuzz_read/d3dcfd6b6ef6ab3116003ea9411f951ede3a2873 b/fuzz/corpus/fuzz_read/d3dcfd6b6ef6ab3116003ea9411f951ede3a2873 new file mode 100644 index 00000000..a6138400 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d3dcfd6b6ef6ab3116003ea9411f951ede3a2873 differ diff --git a/fuzz/corpus/fuzz_read/d409fe56214bd5eadc11dceb56a158718a551496 b/fuzz/corpus/fuzz_read/d409fe56214bd5eadc11dceb56a158718a551496 new file mode 100644 index 00000000..fec4b97c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d409fe56214bd5eadc11dceb56a158718a551496 differ diff --git a/fuzz/corpus/fuzz_read/d42ea2c129c8fbb79cbd9e50bb1599337c882bc1 b/fuzz/corpus/fuzz_read/d42ea2c129c8fbb79cbd9e50bb1599337c882bc1 new file mode 100644 index 00000000..8726920b Binary files /dev/null and b/fuzz/corpus/fuzz_read/d42ea2c129c8fbb79cbd9e50bb1599337c882bc1 differ diff --git a/fuzz/corpus/fuzz_read/d47741caed7eda69795f987cfcbb0bb599d6083d b/fuzz/corpus/fuzz_read/d47741caed7eda69795f987cfcbb0bb599d6083d new file mode 100644 index 00000000..b66d2c75 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d47741caed7eda69795f987cfcbb0bb599d6083d differ diff --git a/fuzz/corpus/fuzz_read/d494e47875eae1c29dbad91b42835590052b7095 b/fuzz/corpus/fuzz_read/d494e47875eae1c29dbad91b42835590052b7095 new file mode 100644 index 00000000..bdc65ae2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d494e47875eae1c29dbad91b42835590052b7095 differ diff --git a/fuzz/corpus/fuzz_read/d514fd1e6daccc4ca970905ada365ee953df9371 b/fuzz/corpus/fuzz_read/d514fd1e6daccc4ca970905ada365ee953df9371 new file mode 100644 index 00000000..f674dcaa Binary files /dev/null and b/fuzz/corpus/fuzz_read/d514fd1e6daccc4ca970905ada365ee953df9371 differ diff --git a/fuzz/corpus/fuzz_read/d56f70d48b1b81366af272a4fd7cf08de81dd2f8 b/fuzz/corpus/fuzz_read/d56f70d48b1b81366af272a4fd7cf08de81dd2f8 new file mode 100644 index 00000000..521e85b2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d56f70d48b1b81366af272a4fd7cf08de81dd2f8 differ diff --git a/fuzz/corpus/fuzz_read/d571b80560ac488328899f727a8b78299409db45 b/fuzz/corpus/fuzz_read/d571b80560ac488328899f727a8b78299409db45 new file mode 100644 index 00000000..7be6f63a Binary files /dev/null and b/fuzz/corpus/fuzz_read/d571b80560ac488328899f727a8b78299409db45 differ diff --git a/fuzz/corpus/fuzz_read/d5a30ed9e7a22358630a368025a7e2f789632c04 b/fuzz/corpus/fuzz_read/d5a30ed9e7a22358630a368025a7e2f789632c04 new file mode 100644 index 00000000..a8a4535b Binary files /dev/null and b/fuzz/corpus/fuzz_read/d5a30ed9e7a22358630a368025a7e2f789632c04 differ diff --git a/fuzz/corpus/fuzz_read/d5e3ab7a95974863eb92b261532c40a51b18bddd b/fuzz/corpus/fuzz_read/d5e3ab7a95974863eb92b261532c40a51b18bddd new file mode 100644 index 00000000..b1219460 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d5e3ab7a95974863eb92b261532c40a51b18bddd differ diff --git a/fuzz/corpus/fuzz_read/d619c0796faca4c991db4fbf21fdddf548186911 b/fuzz/corpus/fuzz_read/d619c0796faca4c991db4fbf21fdddf548186911 new file mode 100644 index 00000000..b50ad566 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d619c0796faca4c991db4fbf21fdddf548186911 differ diff --git a/fuzz/corpus/fuzz_read/d62c27694c7b6ec69a6736048396e4ff4f4af7fb b/fuzz/corpus/fuzz_read/d62c27694c7b6ec69a6736048396e4ff4f4af7fb new file mode 100644 index 00000000..1b7c9c76 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d62c27694c7b6ec69a6736048396e4ff4f4af7fb differ diff --git a/fuzz/corpus/fuzz_read/d6b2e58445d021180ab2a44c2bf63a0b1aa650f6 b/fuzz/corpus/fuzz_read/d6b2e58445d021180ab2a44c2bf63a0b1aa650f6 new file mode 100644 index 00000000..8b6024c8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d6b2e58445d021180ab2a44c2bf63a0b1aa650f6 differ diff --git a/fuzz/corpus/fuzz_read/d6be4adc7a2941d2f51f20d3785e5c60ab1b21fb b/fuzz/corpus/fuzz_read/d6be4adc7a2941d2f51f20d3785e5c60ab1b21fb new file mode 100644 index 00000000..56d1d245 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d6be4adc7a2941d2f51f20d3785e5c60ab1b21fb differ diff --git a/fuzz/corpus/fuzz_read/d762ee7711cf7dd0502ba277a11597520c5f7e0d b/fuzz/corpus/fuzz_read/d762ee7711cf7dd0502ba277a11597520c5f7e0d new file mode 100644 index 00000000..edb71d01 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d762ee7711cf7dd0502ba277a11597520c5f7e0d differ diff --git a/fuzz/corpus/fuzz_read/d77300e1cc90c96df349d2a076d00734e55de0ef b/fuzz/corpus/fuzz_read/d77300e1cc90c96df349d2a076d00734e55de0ef new file mode 100644 index 00000000..5f12851e Binary files /dev/null and b/fuzz/corpus/fuzz_read/d77300e1cc90c96df349d2a076d00734e55de0ef differ diff --git a/fuzz/corpus/fuzz_read/d775ca332f21e7ae40536f73ec5f2578cc914c67 b/fuzz/corpus/fuzz_read/d775ca332f21e7ae40536f73ec5f2578cc914c67 new file mode 100644 index 00000000..4bed6f23 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d775ca332f21e7ae40536f73ec5f2578cc914c67 differ diff --git a/fuzz/corpus/fuzz_read/d792f41eb500392b9264ced4de81af8b72e817db b/fuzz/corpus/fuzz_read/d792f41eb500392b9264ced4de81af8b72e817db new file mode 100644 index 00000000..1615e0fc Binary files /dev/null and b/fuzz/corpus/fuzz_read/d792f41eb500392b9264ced4de81af8b72e817db differ diff --git a/fuzz/corpus/fuzz_read/d79d383f5353d2f769b01ae06478f84ba46d5972 b/fuzz/corpus/fuzz_read/d79d383f5353d2f769b01ae06478f84ba46d5972 new file mode 100644 index 00000000..069fa990 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d79d383f5353d2f769b01ae06478f84ba46d5972 differ diff --git a/fuzz/corpus/fuzz_read/d808805e502d7ecc6265641802fcab8980585c54 b/fuzz/corpus/fuzz_read/d808805e502d7ecc6265641802fcab8980585c54 new file mode 100644 index 00000000..cc8a07bf Binary files /dev/null and b/fuzz/corpus/fuzz_read/d808805e502d7ecc6265641802fcab8980585c54 differ diff --git a/fuzz/corpus/fuzz_read/d81964882281c434b23eef7eb1d5b61f34a13366 b/fuzz/corpus/fuzz_read/d81964882281c434b23eef7eb1d5b61f34a13366 new file mode 100644 index 00000000..6ca945b1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d81964882281c434b23eef7eb1d5b61f34a13366 differ diff --git a/fuzz/corpus/fuzz_read/d8369b255df6b392ba09373a13ddf92d2fef2e23 b/fuzz/corpus/fuzz_read/d8369b255df6b392ba09373a13ddf92d2fef2e23 new file mode 100644 index 00000000..5ca72081 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d8369b255df6b392ba09373a13ddf92d2fef2e23 differ diff --git a/fuzz/corpus/fuzz_read/d870a1e30fcf95641979e4c932b4f028ba9d741a b/fuzz/corpus/fuzz_read/d870a1e30fcf95641979e4c932b4f028ba9d741a new file mode 100644 index 00000000..40337b3f Binary files /dev/null and b/fuzz/corpus/fuzz_read/d870a1e30fcf95641979e4c932b4f028ba9d741a differ diff --git a/fuzz/corpus/fuzz_read/d883d51bb900672bdbb37ad93095bd5156d4642e b/fuzz/corpus/fuzz_read/d883d51bb900672bdbb37ad93095bd5156d4642e new file mode 100644 index 00000000..a3ee9929 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d883d51bb900672bdbb37ad93095bd5156d4642e differ diff --git a/fuzz/corpus/fuzz_read/d8ee7080ea2b1d83056af0057a5b42cf8d7f6657 b/fuzz/corpus/fuzz_read/d8ee7080ea2b1d83056af0057a5b42cf8d7f6657 new file mode 100644 index 00000000..308ae0f8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d8ee7080ea2b1d83056af0057a5b42cf8d7f6657 differ diff --git a/fuzz/corpus/fuzz_read/d8f5cc470c14751439d3ca3e01b0b30f5e5d5898 b/fuzz/corpus/fuzz_read/d8f5cc470c14751439d3ca3e01b0b30f5e5d5898 new file mode 100644 index 00000000..7d2f51ef Binary files /dev/null and b/fuzz/corpus/fuzz_read/d8f5cc470c14751439d3ca3e01b0b30f5e5d5898 differ diff --git a/fuzz/corpus/fuzz_read/d9259d45ef34feb944a10c1c8c0b71ad898d2de7 b/fuzz/corpus/fuzz_read/d9259d45ef34feb944a10c1c8c0b71ad898d2de7 new file mode 100644 index 00000000..be6ea2b0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d9259d45ef34feb944a10c1c8c0b71ad898d2de7 differ diff --git a/fuzz/corpus/fuzz_read/d9402abd82aae0979abf118c99ebbdc361de8e6e b/fuzz/corpus/fuzz_read/d9402abd82aae0979abf118c99ebbdc361de8e6e new file mode 100644 index 00000000..6233602c Binary files /dev/null and b/fuzz/corpus/fuzz_read/d9402abd82aae0979abf118c99ebbdc361de8e6e differ diff --git a/fuzz/corpus/fuzz_read/d979342eb7e70a0d8100e353d0f55d1d3fbfdbd9 b/fuzz/corpus/fuzz_read/d979342eb7e70a0d8100e353d0f55d1d3fbfdbd9 new file mode 100644 index 00000000..61fdf3e0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/d979342eb7e70a0d8100e353d0f55d1d3fbfdbd9 differ diff --git a/fuzz/corpus/fuzz_read/da567a8955ebe26f589fe01b081cd74520dcfe52 b/fuzz/corpus/fuzz_read/da567a8955ebe26f589fe01b081cd74520dcfe52 new file mode 100644 index 00000000..6c21a3ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/da567a8955ebe26f589fe01b081cd74520dcfe52 differ diff --git a/fuzz/corpus/fuzz_read/da7e12e9fd46c5ab2e45244a97f4cb126bdee255 b/fuzz/corpus/fuzz_read/da7e12e9fd46c5ab2e45244a97f4cb126bdee255 new file mode 100644 index 00000000..862e2bd8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/da7e12e9fd46c5ab2e45244a97f4cb126bdee255 differ diff --git a/fuzz/corpus/fuzz_read/daa306179296fba4c55f6564ae642cf8ffca1851 b/fuzz/corpus/fuzz_read/daa306179296fba4c55f6564ae642cf8ffca1851 new file mode 100644 index 00000000..714e47a0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/daa306179296fba4c55f6564ae642cf8ffca1851 differ diff --git a/fuzz/corpus/fuzz_read/dac4aa320536c9d1e783925f91171c389ddcde94 b/fuzz/corpus/fuzz_read/dac4aa320536c9d1e783925f91171c389ddcde94 new file mode 100644 index 00000000..ffc4a38c Binary files /dev/null and b/fuzz/corpus/fuzz_read/dac4aa320536c9d1e783925f91171c389ddcde94 differ diff --git a/fuzz/corpus/fuzz_read/db27a2fe4aaea7e3417bb57c1f9b654a9b74f665 b/fuzz/corpus/fuzz_read/db27a2fe4aaea7e3417bb57c1f9b654a9b74f665 new file mode 100644 index 00000000..3dbf3b84 Binary files /dev/null and b/fuzz/corpus/fuzz_read/db27a2fe4aaea7e3417bb57c1f9b654a9b74f665 differ diff --git a/fuzz/corpus/fuzz_read/db45bf7f4be85b27cb375528b8e92e335eb1f91a b/fuzz/corpus/fuzz_read/db45bf7f4be85b27cb375528b8e92e335eb1f91a new file mode 100644 index 00000000..468a79f7 Binary files /dev/null and b/fuzz/corpus/fuzz_read/db45bf7f4be85b27cb375528b8e92e335eb1f91a differ diff --git a/fuzz/corpus/fuzz_read/db5268414f50799ae3d3d090293832a997b4a570 b/fuzz/corpus/fuzz_read/db5268414f50799ae3d3d090293832a997b4a570 new file mode 100644 index 00000000..fb0fbd3c Binary files /dev/null and b/fuzz/corpus/fuzz_read/db5268414f50799ae3d3d090293832a997b4a570 differ diff --git a/fuzz/corpus/fuzz_read/db69dbce0442b94aa343fe433faee794749a0b05 b/fuzz/corpus/fuzz_read/db69dbce0442b94aa343fe433faee794749a0b05 new file mode 100644 index 00000000..99bde797 Binary files /dev/null and b/fuzz/corpus/fuzz_read/db69dbce0442b94aa343fe433faee794749a0b05 differ diff --git a/fuzz/corpus/fuzz_read/db78b6276eb950a2d0e3fe3f64f29e8c3d266f51 b/fuzz/corpus/fuzz_read/db78b6276eb950a2d0e3fe3f64f29e8c3d266f51 new file mode 100644 index 00000000..cbfa5600 Binary files /dev/null and b/fuzz/corpus/fuzz_read/db78b6276eb950a2d0e3fe3f64f29e8c3d266f51 differ diff --git a/fuzz/corpus/fuzz_read/db8c5c6d6e4d0df7ea3a275482df33d0221848bb b/fuzz/corpus/fuzz_read/db8c5c6d6e4d0df7ea3a275482df33d0221848bb new file mode 100644 index 00000000..627532a8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/db8c5c6d6e4d0df7ea3a275482df33d0221848bb differ diff --git a/fuzz/corpus/fuzz_read/dc5ea37c0bd46f96f02b747878ddf9bcf5130c5d b/fuzz/corpus/fuzz_read/dc5ea37c0bd46f96f02b747878ddf9bcf5130c5d new file mode 100644 index 00000000..d80fd57e Binary files /dev/null and b/fuzz/corpus/fuzz_read/dc5ea37c0bd46f96f02b747878ddf9bcf5130c5d differ diff --git a/fuzz/corpus/fuzz_read/dd2f2d9d17e0591cb457a37d2a359cc956f66e90 b/fuzz/corpus/fuzz_read/dd2f2d9d17e0591cb457a37d2a359cc956f66e90 new file mode 100644 index 00000000..309d0e25 Binary files /dev/null and b/fuzz/corpus/fuzz_read/dd2f2d9d17e0591cb457a37d2a359cc956f66e90 differ diff --git a/fuzz/corpus/fuzz_read/dd302d25e14310a55f0b0d72725b1acbcaf89181 b/fuzz/corpus/fuzz_read/dd302d25e14310a55f0b0d72725b1acbcaf89181 new file mode 100644 index 00000000..4b0d8652 Binary files /dev/null and b/fuzz/corpus/fuzz_read/dd302d25e14310a55f0b0d72725b1acbcaf89181 differ diff --git a/fuzz/corpus/fuzz_read/dd6057473e251c9bbe3052840b8033b2861f8fc8 b/fuzz/corpus/fuzz_read/dd6057473e251c9bbe3052840b8033b2861f8fc8 new file mode 100644 index 00000000..a2aa56dd Binary files /dev/null and b/fuzz/corpus/fuzz_read/dd6057473e251c9bbe3052840b8033b2861f8fc8 differ diff --git a/fuzz/corpus/fuzz_read/dd62c56208f397e90be4251fcc84e3d5b25d79b9 b/fuzz/corpus/fuzz_read/dd62c56208f397e90be4251fcc84e3d5b25d79b9 new file mode 100644 index 00000000..cd5be03d Binary files /dev/null and b/fuzz/corpus/fuzz_read/dd62c56208f397e90be4251fcc84e3d5b25d79b9 differ diff --git a/fuzz/corpus/fuzz_read/ddc4a8f54379469121804348ba02c1e1bae9769d b/fuzz/corpus/fuzz_read/ddc4a8f54379469121804348ba02c1e1bae9769d new file mode 100644 index 00000000..944c611d Binary files /dev/null and b/fuzz/corpus/fuzz_read/ddc4a8f54379469121804348ba02c1e1bae9769d differ diff --git a/fuzz/corpus/fuzz_read/ddcb2a3c77369cfdae276724bdd7fbf31db0c099 b/fuzz/corpus/fuzz_read/ddcb2a3c77369cfdae276724bdd7fbf31db0c099 new file mode 100644 index 00000000..6b1a8f50 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ddcb2a3c77369cfdae276724bdd7fbf31db0c099 differ diff --git a/fuzz/corpus/fuzz_read/de111d324b9c81e64e02ab8e24ea912af91cd91e b/fuzz/corpus/fuzz_read/de111d324b9c81e64e02ab8e24ea912af91cd91e new file mode 100644 index 00000000..4abba86c Binary files /dev/null and b/fuzz/corpus/fuzz_read/de111d324b9c81e64e02ab8e24ea912af91cd91e differ diff --git a/fuzz/corpus/fuzz_read/de81cf28ded6cd06021bb306dd7c65d14a7c6c54 b/fuzz/corpus/fuzz_read/de81cf28ded6cd06021bb306dd7c65d14a7c6c54 new file mode 100644 index 00000000..bf19c086 Binary files /dev/null and b/fuzz/corpus/fuzz_read/de81cf28ded6cd06021bb306dd7c65d14a7c6c54 differ diff --git a/fuzz/corpus/fuzz_read/df2c28c4cbfaa643c64fc78b6770fa50df0e04db b/fuzz/corpus/fuzz_read/df2c28c4cbfaa643c64fc78b6770fa50df0e04db new file mode 100644 index 00000000..f95b7d71 Binary files /dev/null and b/fuzz/corpus/fuzz_read/df2c28c4cbfaa643c64fc78b6770fa50df0e04db differ diff --git a/fuzz/corpus/fuzz_read/e0060477588ce8a6e8ef613bb1674d7c122918d8 b/fuzz/corpus/fuzz_read/e0060477588ce8a6e8ef613bb1674d7c122918d8 new file mode 100644 index 00000000..c1be96ca Binary files /dev/null and b/fuzz/corpus/fuzz_read/e0060477588ce8a6e8ef613bb1674d7c122918d8 differ diff --git a/fuzz/corpus/fuzz_read/e0806bbd17a7fa5507db5214857b3cdc0eca31eb b/fuzz/corpus/fuzz_read/e0806bbd17a7fa5507db5214857b3cdc0eca31eb new file mode 100644 index 00000000..78b28e28 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e0806bbd17a7fa5507db5214857b3cdc0eca31eb differ diff --git a/fuzz/corpus/fuzz_read/e0dd36574407402aec379410b1458c347c3defd3 b/fuzz/corpus/fuzz_read/e0dd36574407402aec379410b1458c347c3defd3 new file mode 100644 index 00000000..c2395931 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e0dd36574407402aec379410b1458c347c3defd3 differ diff --git a/fuzz/corpus/fuzz_read/e1144a2ee58c460ea56fd59a3a3ae006e0e3d802 b/fuzz/corpus/fuzz_read/e1144a2ee58c460ea56fd59a3a3ae006e0e3d802 new file mode 100644 index 00000000..0fc97bef Binary files /dev/null and b/fuzz/corpus/fuzz_read/e1144a2ee58c460ea56fd59a3a3ae006e0e3d802 differ diff --git a/fuzz/corpus/fuzz_read/e18a601d1deccadc0585d6082ac2b2b6de7ded54 b/fuzz/corpus/fuzz_read/e18a601d1deccadc0585d6082ac2b2b6de7ded54 new file mode 100644 index 00000000..6783e911 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e18a601d1deccadc0585d6082ac2b2b6de7ded54 differ diff --git a/fuzz/corpus/fuzz_read/e18e997de2fb9d3110851315eb73f190c8deb015 b/fuzz/corpus/fuzz_read/e18e997de2fb9d3110851315eb73f190c8deb015 new file mode 100644 index 00000000..c44c4afa Binary files /dev/null and b/fuzz/corpus/fuzz_read/e18e997de2fb9d3110851315eb73f190c8deb015 differ diff --git a/fuzz/corpus/fuzz_read/e18f343675a084b07581a560dd043fbefdd4be7a b/fuzz/corpus/fuzz_read/e18f343675a084b07581a560dd043fbefdd4be7a new file mode 100644 index 00000000..7d34d3c4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e18f343675a084b07581a560dd043fbefdd4be7a differ diff --git a/fuzz/corpus/fuzz_read/e1a7bf40596e1464ceffd07d35296e516be36df4 b/fuzz/corpus/fuzz_read/e1a7bf40596e1464ceffd07d35296e516be36df4 new file mode 100644 index 00000000..02edad49 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e1a7bf40596e1464ceffd07d35296e516be36df4 differ diff --git a/fuzz/corpus/fuzz_read/e1d08f0f21530ec863a6ed5ba340c99d8a2b407b b/fuzz/corpus/fuzz_read/e1d08f0f21530ec863a6ed5ba340c99d8a2b407b new file mode 100644 index 00000000..300509af Binary files /dev/null and b/fuzz/corpus/fuzz_read/e1d08f0f21530ec863a6ed5ba340c99d8a2b407b differ diff --git a/fuzz/corpus/fuzz_read/e1dda65679d3dbf894ae98fe4f1866eae7b8f80f b/fuzz/corpus/fuzz_read/e1dda65679d3dbf894ae98fe4f1866eae7b8f80f new file mode 100644 index 00000000..8ff7efa8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e1dda65679d3dbf894ae98fe4f1866eae7b8f80f differ diff --git a/fuzz/corpus/fuzz_read/e1e98a69a25a431d00be060a946233905e4bce6f b/fuzz/corpus/fuzz_read/e1e98a69a25a431d00be060a946233905e4bce6f new file mode 100644 index 00000000..da9f43cd Binary files /dev/null and b/fuzz/corpus/fuzz_read/e1e98a69a25a431d00be060a946233905e4bce6f differ diff --git a/fuzz/corpus/fuzz_read/e23b065985dd7acbdb7dfc6f8d102a92c48d290e b/fuzz/corpus/fuzz_read/e23b065985dd7acbdb7dfc6f8d102a92c48d290e new file mode 100644 index 00000000..4f8a4fcf Binary files /dev/null and b/fuzz/corpus/fuzz_read/e23b065985dd7acbdb7dfc6f8d102a92c48d290e differ diff --git a/fuzz/corpus/fuzz_read/e23d80ac604eb1be5a430faae8f0abc4764a254d b/fuzz/corpus/fuzz_read/e23d80ac604eb1be5a430faae8f0abc4764a254d new file mode 100644 index 00000000..44be9807 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e23d80ac604eb1be5a430faae8f0abc4764a254d differ diff --git a/fuzz/corpus/fuzz_read/e2e48e3b63dcffd29af9cd3406fe24abeb3dcf71 b/fuzz/corpus/fuzz_read/e2e48e3b63dcffd29af9cd3406fe24abeb3dcf71 new file mode 100644 index 00000000..24ff1a1e Binary files /dev/null and b/fuzz/corpus/fuzz_read/e2e48e3b63dcffd29af9cd3406fe24abeb3dcf71 differ diff --git a/fuzz/corpus/fuzz_read/e3a913bb88ebc05a31f946f65df650c86198523d b/fuzz/corpus/fuzz_read/e3a913bb88ebc05a31f946f65df650c86198523d new file mode 100644 index 00000000..58483be0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e3a913bb88ebc05a31f946f65df650c86198523d differ diff --git a/fuzz/corpus/fuzz_read/e3c568f60520f60bbf8aee087c8fe58cd2455ad6 b/fuzz/corpus/fuzz_read/e3c568f60520f60bbf8aee087c8fe58cd2455ad6 new file mode 100644 index 00000000..8edaa3fb Binary files /dev/null and b/fuzz/corpus/fuzz_read/e3c568f60520f60bbf8aee087c8fe58cd2455ad6 differ diff --git a/fuzz/corpus/fuzz_read/e407668a68af0abdff22b9ee0b649195b17e0db0 b/fuzz/corpus/fuzz_read/e407668a68af0abdff22b9ee0b649195b17e0db0 new file mode 100644 index 00000000..eb8ecd4c Binary files /dev/null and b/fuzz/corpus/fuzz_read/e407668a68af0abdff22b9ee0b649195b17e0db0 differ diff --git a/fuzz/corpus/fuzz_read/e4178b9a2c8e66dded780b0d4a9bdc92511596a7 b/fuzz/corpus/fuzz_read/e4178b9a2c8e66dded780b0d4a9bdc92511596a7 new file mode 100644 index 00000000..b36c8087 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e4178b9a2c8e66dded780b0d4a9bdc92511596a7 differ diff --git a/fuzz/corpus/fuzz_read/e447f945b5adefa29df030af02453908311bf770 b/fuzz/corpus/fuzz_read/e447f945b5adefa29df030af02453908311bf770 new file mode 100644 index 00000000..c8f1a15e Binary files /dev/null and b/fuzz/corpus/fuzz_read/e447f945b5adefa29df030af02453908311bf770 differ diff --git a/fuzz/corpus/fuzz_read/e49f2b598a7dbd0e9b20527e38dab593623edd50 b/fuzz/corpus/fuzz_read/e49f2b598a7dbd0e9b20527e38dab593623edd50 new file mode 100644 index 00000000..7982d8b8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e49f2b598a7dbd0e9b20527e38dab593623edd50 differ diff --git a/fuzz/corpus/fuzz_read/e54358318e58e275804f0535df11bc07b8bf827d b/fuzz/corpus/fuzz_read/e54358318e58e275804f0535df11bc07b8bf827d new file mode 100644 index 00000000..09a06be4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e54358318e58e275804f0535df11bc07b8bf827d differ diff --git a/fuzz/corpus/fuzz_read/e5870f6311872058ecedf137ef6d921e581d70b8 b/fuzz/corpus/fuzz_read/e5870f6311872058ecedf137ef6d921e581d70b8 new file mode 100644 index 00000000..8019e585 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e5870f6311872058ecedf137ef6d921e581d70b8 differ diff --git a/fuzz/corpus/fuzz_read/e58f13d48ba0fabbddd2aa3076e0bb0d967f3184 b/fuzz/corpus/fuzz_read/e58f13d48ba0fabbddd2aa3076e0bb0d967f3184 new file mode 100644 index 00000000..12794299 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e58f13d48ba0fabbddd2aa3076e0bb0d967f3184 differ diff --git a/fuzz/corpus/fuzz_read/e5abb6a3ab60190c28b2fbddba05516b5a41f1ca b/fuzz/corpus/fuzz_read/e5abb6a3ab60190c28b2fbddba05516b5a41f1ca new file mode 100644 index 00000000..6195e347 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e5abb6a3ab60190c28b2fbddba05516b5a41f1ca differ diff --git a/fuzz/corpus/fuzz_read/e5dc710e848b967539d05f992c5f6058a6588f26 b/fuzz/corpus/fuzz_read/e5dc710e848b967539d05f992c5f6058a6588f26 new file mode 100644 index 00000000..067e6fab Binary files /dev/null and b/fuzz/corpus/fuzz_read/e5dc710e848b967539d05f992c5f6058a6588f26 differ diff --git a/fuzz/corpus/fuzz_read/e62bf93d0e5d2416748ffc8b5d4f21b11c0b5a00 b/fuzz/corpus/fuzz_read/e62bf93d0e5d2416748ffc8b5d4f21b11c0b5a00 new file mode 100644 index 00000000..f437400e Binary files /dev/null and b/fuzz/corpus/fuzz_read/e62bf93d0e5d2416748ffc8b5d4f21b11c0b5a00 differ diff --git a/fuzz/corpus/fuzz_read/e643dd26a451db98e7c774480634e019bcc7895a b/fuzz/corpus/fuzz_read/e643dd26a451db98e7c774480634e019bcc7895a new file mode 100644 index 00000000..ff3da1f4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e643dd26a451db98e7c774480634e019bcc7895a differ diff --git a/fuzz/corpus/fuzz_read/e69465fb2dc2cd62cfae05c38bf61add818cf1ff b/fuzz/corpus/fuzz_read/e69465fb2dc2cd62cfae05c38bf61add818cf1ff new file mode 100644 index 00000000..5a767023 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e69465fb2dc2cd62cfae05c38bf61add818cf1ff differ diff --git a/fuzz/corpus/fuzz_read/e6a9b29fa39c0df804e75a85c0fa717f1e050626 b/fuzz/corpus/fuzz_read/e6a9b29fa39c0df804e75a85c0fa717f1e050626 new file mode 100644 index 00000000..3960c648 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e6a9b29fa39c0df804e75a85c0fa717f1e050626 differ diff --git a/fuzz/corpus/fuzz_read/e6dd36a9ddf207824f58110b2247767128f30a34 b/fuzz/corpus/fuzz_read/e6dd36a9ddf207824f58110b2247767128f30a34 new file mode 100644 index 00000000..3aca76d9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e6dd36a9ddf207824f58110b2247767128f30a34 differ diff --git a/fuzz/corpus/fuzz_read/e762262b9fc5d80f558c3edee290abb4357c743a b/fuzz/corpus/fuzz_read/e762262b9fc5d80f558c3edee290abb4357c743a new file mode 100644 index 00000000..625e15c5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e762262b9fc5d80f558c3edee290abb4357c743a differ diff --git a/fuzz/corpus/fuzz_read/e7b01a018e610ae9069f9768c7895aba9f5fd3df b/fuzz/corpus/fuzz_read/e7b01a018e610ae9069f9768c7895aba9f5fd3df new file mode 100644 index 00000000..06061375 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e7b01a018e610ae9069f9768c7895aba9f5fd3df differ diff --git a/fuzz/corpus/fuzz_read/e80bb8d2892be70d3e2d207a1b22a8d675593b2f b/fuzz/corpus/fuzz_read/e80bb8d2892be70d3e2d207a1b22a8d675593b2f new file mode 100644 index 00000000..dd244b90 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e80bb8d2892be70d3e2d207a1b22a8d675593b2f differ diff --git a/fuzz/corpus/fuzz_read/e82173fc01ee394379980f53fb3529b9226c20e3 b/fuzz/corpus/fuzz_read/e82173fc01ee394379980f53fb3529b9226c20e3 new file mode 100644 index 00000000..32209316 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e82173fc01ee394379980f53fb3529b9226c20e3 differ diff --git a/fuzz/corpus/fuzz_read/e85bf72c3442e15723c7bfb10f54312219ac731e b/fuzz/corpus/fuzz_read/e85bf72c3442e15723c7bfb10f54312219ac731e new file mode 100644 index 00000000..4e119106 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e85bf72c3442e15723c7bfb10f54312219ac731e differ diff --git a/fuzz/corpus/fuzz_read/e86ee6c9bc472434d7a07c200573f4b18486abc6 b/fuzz/corpus/fuzz_read/e86ee6c9bc472434d7a07c200573f4b18486abc6 new file mode 100644 index 00000000..90b67550 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e86ee6c9bc472434d7a07c200573f4b18486abc6 differ diff --git a/fuzz/corpus/fuzz_read/e8d0521350a83909c319e570a85e7c33197054ac b/fuzz/corpus/fuzz_read/e8d0521350a83909c319e570a85e7c33197054ac new file mode 100644 index 00000000..c0477c14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e8d0521350a83909c319e570a85e7c33197054ac differ diff --git a/fuzz/corpus/fuzz_read/e9876d573afee08bb1116ec97acc0872db3343e7 b/fuzz/corpus/fuzz_read/e9876d573afee08bb1116ec97acc0872db3343e7 new file mode 100644 index 00000000..569bdc77 Binary files /dev/null and b/fuzz/corpus/fuzz_read/e9876d573afee08bb1116ec97acc0872db3343e7 differ diff --git a/fuzz/corpus/fuzz_read/e9bf10c445b584adbffe66794413539c68f17f49 b/fuzz/corpus/fuzz_read/e9bf10c445b584adbffe66794413539c68f17f49 new file mode 100644 index 00000000..5248122c Binary files /dev/null and b/fuzz/corpus/fuzz_read/e9bf10c445b584adbffe66794413539c68f17f49 differ diff --git a/fuzz/corpus/fuzz_read/ea35259921a18aaf22e36b5f79178e113b2bdbfe b/fuzz/corpus/fuzz_read/ea35259921a18aaf22e36b5f79178e113b2bdbfe new file mode 100644 index 00000000..6cb56c92 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ea35259921a18aaf22e36b5f79178e113b2bdbfe differ diff --git a/fuzz/corpus/fuzz_read/eada306e64d0113b818b94ab2a5469aa0bc000a9 b/fuzz/corpus/fuzz_read/eada306e64d0113b818b94ab2a5469aa0bc000a9 new file mode 100644 index 00000000..76b3a0fe Binary files /dev/null and b/fuzz/corpus/fuzz_read/eada306e64d0113b818b94ab2a5469aa0bc000a9 differ diff --git a/fuzz/corpus/fuzz_read/eb26b5f44441dda95492c4177a3af012a4e49d77 b/fuzz/corpus/fuzz_read/eb26b5f44441dda95492c4177a3af012a4e49d77 new file mode 100644 index 00000000..c2fb24e4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/eb26b5f44441dda95492c4177a3af012a4e49d77 differ diff --git a/fuzz/corpus/fuzz_read/ebc0352fbeb7822c6089727ed1e79335b111e9e3 b/fuzz/corpus/fuzz_read/ebc0352fbeb7822c6089727ed1e79335b111e9e3 new file mode 100644 index 00000000..3d64292f Binary files /dev/null and b/fuzz/corpus/fuzz_read/ebc0352fbeb7822c6089727ed1e79335b111e9e3 differ diff --git a/fuzz/corpus/fuzz_read/ebf50db961987ddb10b55a0b7f5afe7f504f009a b/fuzz/corpus/fuzz_read/ebf50db961987ddb10b55a0b7f5afe7f504f009a new file mode 100644 index 00000000..87de37ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/ebf50db961987ddb10b55a0b7f5afe7f504f009a differ diff --git a/fuzz/corpus/fuzz_read/ec378dd41002a6906fe9a83fc1d6cb8e5cc4a6d0 b/fuzz/corpus/fuzz_read/ec378dd41002a6906fe9a83fc1d6cb8e5cc4a6d0 new file mode 100644 index 00000000..00a5151c Binary files /dev/null and b/fuzz/corpus/fuzz_read/ec378dd41002a6906fe9a83fc1d6cb8e5cc4a6d0 differ diff --git a/fuzz/corpus/fuzz_read/ec49d86d54bc2f17a788bb0e474c782125d727ac b/fuzz/corpus/fuzz_read/ec49d86d54bc2f17a788bb0e474c782125d727ac new file mode 100644 index 00000000..6c0bddce Binary files /dev/null and b/fuzz/corpus/fuzz_read/ec49d86d54bc2f17a788bb0e474c782125d727ac differ diff --git a/fuzz/corpus/fuzz_read/ecc6a8d7ac0cde026b3f349f055a4520ff4e79ea b/fuzz/corpus/fuzz_read/ecc6a8d7ac0cde026b3f349f055a4520ff4e79ea new file mode 100644 index 00000000..d9e9127d Binary files /dev/null and b/fuzz/corpus/fuzz_read/ecc6a8d7ac0cde026b3f349f055a4520ff4e79ea differ diff --git a/fuzz/corpus/fuzz_read/ecf7f723cba52abd79143fc9b71af3bd5130578d b/fuzz/corpus/fuzz_read/ecf7f723cba52abd79143fc9b71af3bd5130578d new file mode 100644 index 00000000..a377cc55 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ecf7f723cba52abd79143fc9b71af3bd5130578d differ diff --git a/fuzz/corpus/fuzz_read/ed58844e1d76cf730eadd7d3eb4bf13e2a9923c4 b/fuzz/corpus/fuzz_read/ed58844e1d76cf730eadd7d3eb4bf13e2a9923c4 new file mode 100644 index 00000000..695ad1d5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ed58844e1d76cf730eadd7d3eb4bf13e2a9923c4 differ diff --git a/fuzz/corpus/fuzz_read/ed5dcca348492ec58106fb3e70395eb864dbbf6b b/fuzz/corpus/fuzz_read/ed5dcca348492ec58106fb3e70395eb864dbbf6b new file mode 100644 index 00000000..e547a1ee Binary files /dev/null and b/fuzz/corpus/fuzz_read/ed5dcca348492ec58106fb3e70395eb864dbbf6b differ diff --git a/fuzz/corpus/fuzz_read/ed9e3ab6297df9fce4cab6526957f9ae35373430 b/fuzz/corpus/fuzz_read/ed9e3ab6297df9fce4cab6526957f9ae35373430 new file mode 100644 index 00000000..3f57217d Binary files /dev/null and b/fuzz/corpus/fuzz_read/ed9e3ab6297df9fce4cab6526957f9ae35373430 differ diff --git a/fuzz/corpus/fuzz_read/ed9f5d35fb7ab4b40d34914e34cce951b0f31693 b/fuzz/corpus/fuzz_read/ed9f5d35fb7ab4b40d34914e34cce951b0f31693 new file mode 100644 index 00000000..e5e696e0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ed9f5d35fb7ab4b40d34914e34cce951b0f31693 differ diff --git a/fuzz/corpus/fuzz_read/edc69930d2454198832aab0fed7af2964236ef24 b/fuzz/corpus/fuzz_read/edc69930d2454198832aab0fed7af2964236ef24 new file mode 100644 index 00000000..41b6bbbb Binary files /dev/null and b/fuzz/corpus/fuzz_read/edc69930d2454198832aab0fed7af2964236ef24 differ diff --git a/fuzz/corpus/fuzz_read/ee0fbc736500c3e51d764d5c1c50bd6a76c22835 b/fuzz/corpus/fuzz_read/ee0fbc736500c3e51d764d5c1c50bd6a76c22835 new file mode 100644 index 00000000..3aa69b45 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ee0fbc736500c3e51d764d5c1c50bd6a76c22835 differ diff --git a/fuzz/corpus/fuzz_read/ee7197f6ab9538ce4162e57b560472b7f29573a0 b/fuzz/corpus/fuzz_read/ee7197f6ab9538ce4162e57b560472b7f29573a0 new file mode 100644 index 00000000..dcc30e62 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ee7197f6ab9538ce4162e57b560472b7f29573a0 differ diff --git a/fuzz/corpus/fuzz_read/ee7b25b1d76de23fbc44769829fae3159f67b068 b/fuzz/corpus/fuzz_read/ee7b25b1d76de23fbc44769829fae3159f67b068 new file mode 100644 index 00000000..b8f74b14 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ee7b25b1d76de23fbc44769829fae3159f67b068 differ diff --git a/fuzz/corpus/fuzz_read/eea5eb63d2ec21f2e3c4c39fb6d3d4df15a6a506 b/fuzz/corpus/fuzz_read/eea5eb63d2ec21f2e3c4c39fb6d3d4df15a6a506 new file mode 100644 index 00000000..021d23b6 Binary files /dev/null and b/fuzz/corpus/fuzz_read/eea5eb63d2ec21f2e3c4c39fb6d3d4df15a6a506 differ diff --git a/fuzz/corpus/fuzz_read/eebeb9e8786b3ddcd40cd4d1f016b2ce0201bc82 b/fuzz/corpus/fuzz_read/eebeb9e8786b3ddcd40cd4d1f016b2ce0201bc82 new file mode 100644 index 00000000..29337f0a Binary files /dev/null and b/fuzz/corpus/fuzz_read/eebeb9e8786b3ddcd40cd4d1f016b2ce0201bc82 differ diff --git a/fuzz/corpus/fuzz_read/eede96b986b74cb5cc08cfb052cdedbad511ed7b b/fuzz/corpus/fuzz_read/eede96b986b74cb5cc08cfb052cdedbad511ed7b new file mode 100644 index 00000000..d8ad56d1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/eede96b986b74cb5cc08cfb052cdedbad511ed7b differ diff --git a/fuzz/corpus/fuzz_read/eef4ac9336da84b9dfba3f029ee73fb9b9412f10 b/fuzz/corpus/fuzz_read/eef4ac9336da84b9dfba3f029ee73fb9b9412f10 new file mode 100644 index 00000000..139dcfa5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/eef4ac9336da84b9dfba3f029ee73fb9b9412f10 differ diff --git a/fuzz/corpus/fuzz_read/ef0183c9bec215fcc7ef365d3ee68ffbaaaad30f b/fuzz/corpus/fuzz_read/ef0183c9bec215fcc7ef365d3ee68ffbaaaad30f new file mode 100644 index 00000000..3e811149 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ef0183c9bec215fcc7ef365d3ee68ffbaaaad30f differ diff --git a/fuzz/corpus/fuzz_read/ef31a4fb972cbf65cdce23680d3c3fcfe0ea152c b/fuzz/corpus/fuzz_read/ef31a4fb972cbf65cdce23680d3c3fcfe0ea152c new file mode 100644 index 00000000..d49d6021 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ef31a4fb972cbf65cdce23680d3c3fcfe0ea152c differ diff --git a/fuzz/corpus/fuzz_read/ef4e1d9ae94c0b4613cc60edfe811126adeebdcf b/fuzz/corpus/fuzz_read/ef4e1d9ae94c0b4613cc60edfe811126adeebdcf new file mode 100644 index 00000000..9c0efa1e Binary files /dev/null and b/fuzz/corpus/fuzz_read/ef4e1d9ae94c0b4613cc60edfe811126adeebdcf differ diff --git a/fuzz/corpus/fuzz_read/ef6bb21edf01cb6617fa0cd113069c1059657c8c b/fuzz/corpus/fuzz_read/ef6bb21edf01cb6617fa0cd113069c1059657c8c new file mode 100644 index 00000000..99425a19 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ef6bb21edf01cb6617fa0cd113069c1059657c8c differ diff --git a/fuzz/corpus/fuzz_read/ef8a7982c9cea632a4f76fe6ac072c9bc5eca4ea b/fuzz/corpus/fuzz_read/ef8a7982c9cea632a4f76fe6ac072c9bc5eca4ea new file mode 100644 index 00000000..ba3bdba5 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ef8a7982c9cea632a4f76fe6ac072c9bc5eca4ea differ diff --git a/fuzz/corpus/fuzz_read/efc74f242dccf479d5cf4e5f6a739ef58d98af68 b/fuzz/corpus/fuzz_read/efc74f242dccf479d5cf4e5f6a739ef58d98af68 new file mode 100644 index 00000000..cd4c6ad3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/efc74f242dccf479d5cf4e5f6a739ef58d98af68 differ diff --git a/fuzz/corpus/fuzz_read/f0367fc70bc52749c349c542745e35d146ef2f32 b/fuzz/corpus/fuzz_read/f0367fc70bc52749c349c542745e35d146ef2f32 new file mode 100644 index 00000000..93bb3bbb Binary files /dev/null and b/fuzz/corpus/fuzz_read/f0367fc70bc52749c349c542745e35d146ef2f32 differ diff --git a/fuzz/corpus/fuzz_read/f03941975e06c42e4cb81aec86e12beb94a8ffc7 b/fuzz/corpus/fuzz_read/f03941975e06c42e4cb81aec86e12beb94a8ffc7 new file mode 100644 index 00000000..a9968e4c Binary files /dev/null and b/fuzz/corpus/fuzz_read/f03941975e06c42e4cb81aec86e12beb94a8ffc7 differ diff --git a/fuzz/corpus/fuzz_read/f03c04cc390b298f05428030640690ba5a1a8ed0 b/fuzz/corpus/fuzz_read/f03c04cc390b298f05428030640690ba5a1a8ed0 new file mode 100644 index 00000000..dcd45871 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f03c04cc390b298f05428030640690ba5a1a8ed0 differ diff --git a/fuzz/corpus/fuzz_read/f0b57d13d2071ff675a08131b13f896d7c9af138 b/fuzz/corpus/fuzz_read/f0b57d13d2071ff675a08131b13f896d7c9af138 new file mode 100644 index 00000000..8db8852b Binary files /dev/null and b/fuzz/corpus/fuzz_read/f0b57d13d2071ff675a08131b13f896d7c9af138 differ diff --git a/fuzz/corpus/fuzz_read/f0f60663ced95afeddd23331cc22505cea4d98b2 b/fuzz/corpus/fuzz_read/f0f60663ced95afeddd23331cc22505cea4d98b2 new file mode 100644 index 00000000..806ef2a3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f0f60663ced95afeddd23331cc22505cea4d98b2 differ diff --git a/fuzz/corpus/fuzz_read/f13937424ced749f27cda7f3f25bf00a16136964 b/fuzz/corpus/fuzz_read/f13937424ced749f27cda7f3f25bf00a16136964 new file mode 100644 index 00000000..02fd07b1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f13937424ced749f27cda7f3f25bf00a16136964 differ diff --git a/fuzz/corpus/fuzz_read/f15c569dc332320f117fe44edc7380bff7079473 b/fuzz/corpus/fuzz_read/f15c569dc332320f117fe44edc7380bff7079473 new file mode 100644 index 00000000..80aa03f8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f15c569dc332320f117fe44edc7380bff7079473 differ diff --git a/fuzz/corpus/fuzz_read/f16b3f5cd39ec8950d90a963755e1d3de60eb447 b/fuzz/corpus/fuzz_read/f16b3f5cd39ec8950d90a963755e1d3de60eb447 new file mode 100644 index 00000000..afafbdde Binary files /dev/null and b/fuzz/corpus/fuzz_read/f16b3f5cd39ec8950d90a963755e1d3de60eb447 differ diff --git a/fuzz/corpus/fuzz_read/f17e5d3a7aadb16af5b590a29568166a670e3bdf b/fuzz/corpus/fuzz_read/f17e5d3a7aadb16af5b590a29568166a670e3bdf new file mode 100644 index 00000000..b7d89819 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f17e5d3a7aadb16af5b590a29568166a670e3bdf differ diff --git a/fuzz/corpus/fuzz_read/f1b26320ab7dfc57a025080cb67f7d49ba19a958 b/fuzz/corpus/fuzz_read/f1b26320ab7dfc57a025080cb67f7d49ba19a958 new file mode 100644 index 00000000..3b1d5133 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f1b26320ab7dfc57a025080cb67f7d49ba19a958 differ diff --git a/fuzz/corpus/fuzz_read/f1b3cf4d2f7defdfeeb89a5407109e857b294fb2 b/fuzz/corpus/fuzz_read/f1b3cf4d2f7defdfeeb89a5407109e857b294fb2 new file mode 100644 index 00000000..d2dc9b67 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f1b3cf4d2f7defdfeeb89a5407109e857b294fb2 differ diff --git a/fuzz/corpus/fuzz_read/f1edc84f1e3e24c381ebdef83ea86eff93c00e0b b/fuzz/corpus/fuzz_read/f1edc84f1e3e24c381ebdef83ea86eff93c00e0b new file mode 100644 index 00000000..5c57cd6a Binary files /dev/null and b/fuzz/corpus/fuzz_read/f1edc84f1e3e24c381ebdef83ea86eff93c00e0b differ diff --git a/fuzz/corpus/fuzz_read/f24eccf4c0881cc4051bce9faf9a37189bc8cfdd b/fuzz/corpus/fuzz_read/f24eccf4c0881cc4051bce9faf9a37189bc8cfdd new file mode 100644 index 00000000..3743ea4e Binary files /dev/null and b/fuzz/corpus/fuzz_read/f24eccf4c0881cc4051bce9faf9a37189bc8cfdd differ diff --git a/fuzz/corpus/fuzz_read/f293db10d70ddaeb443f1913ed5628a3db90570c b/fuzz/corpus/fuzz_read/f293db10d70ddaeb443f1913ed5628a3db90570c new file mode 100644 index 00000000..60d611db Binary files /dev/null and b/fuzz/corpus/fuzz_read/f293db10d70ddaeb443f1913ed5628a3db90570c differ diff --git a/fuzz/corpus/fuzz_read/f2999b49f0855a0336eb2ccf23088e33960173fe b/fuzz/corpus/fuzz_read/f2999b49f0855a0336eb2ccf23088e33960173fe new file mode 100644 index 00000000..26125f44 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f2999b49f0855a0336eb2ccf23088e33960173fe differ diff --git a/fuzz/corpus/fuzz_read/f30e3f0054ba5590026bd11c47738a3bd376cf7f b/fuzz/corpus/fuzz_read/f30e3f0054ba5590026bd11c47738a3bd376cf7f new file mode 100644 index 00000000..a863e209 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f30e3f0054ba5590026bd11c47738a3bd376cf7f differ diff --git a/fuzz/corpus/fuzz_read/f333c4c3f908dfa6a35c993ed31b231721377d75 b/fuzz/corpus/fuzz_read/f333c4c3f908dfa6a35c993ed31b231721377d75 new file mode 100644 index 00000000..71edaab2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f333c4c3f908dfa6a35c993ed31b231721377d75 differ diff --git a/fuzz/corpus/fuzz_read/f37414d28246118f2ac05071ad82b1c7f0667932 b/fuzz/corpus/fuzz_read/f37414d28246118f2ac05071ad82b1c7f0667932 new file mode 100644 index 00000000..b3248748 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f37414d28246118f2ac05071ad82b1c7f0667932 differ diff --git a/fuzz/corpus/fuzz_read/f38ab247ca2bd63df28e15b92071d5f073ce908c b/fuzz/corpus/fuzz_read/f38ab247ca2bd63df28e15b92071d5f073ce908c new file mode 100644 index 00000000..2d01a577 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f38ab247ca2bd63df28e15b92071d5f073ce908c differ diff --git a/fuzz/corpus/fuzz_read/f3a40577909bfb8859b31c82711dd751c2ec1223 b/fuzz/corpus/fuzz_read/f3a40577909bfb8859b31c82711dd751c2ec1223 new file mode 100644 index 00000000..e7786186 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f3a40577909bfb8859b31c82711dd751c2ec1223 differ diff --git a/fuzz/corpus/fuzz_read/f3e4d4a375a56718ffde6902c9db0da3cc4ce3de b/fuzz/corpus/fuzz_read/f3e4d4a375a56718ffde6902c9db0da3cc4ce3de new file mode 100644 index 00000000..baa1a833 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f3e4d4a375a56718ffde6902c9db0da3cc4ce3de differ diff --git a/fuzz/corpus/fuzz_read/f3e9571f05f6cd15be6218ef724dbc0dd15fe707 b/fuzz/corpus/fuzz_read/f3e9571f05f6cd15be6218ef724dbc0dd15fe707 new file mode 100644 index 00000000..a1fd279e Binary files /dev/null and b/fuzz/corpus/fuzz_read/f3e9571f05f6cd15be6218ef724dbc0dd15fe707 differ diff --git a/fuzz/corpus/fuzz_read/f40ef82babc41f561d5b3ba32575cf1ae2bc6067 b/fuzz/corpus/fuzz_read/f40ef82babc41f561d5b3ba32575cf1ae2bc6067 new file mode 100644 index 00000000..0d475829 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f40ef82babc41f561d5b3ba32575cf1ae2bc6067 differ diff --git a/fuzz/corpus/fuzz_read/f41537b57b1c09e4221d65fe56cb209c9a3ecd1f b/fuzz/corpus/fuzz_read/f41537b57b1c09e4221d65fe56cb209c9a3ecd1f new file mode 100644 index 00000000..7b9cbb57 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f41537b57b1c09e4221d65fe56cb209c9a3ecd1f differ diff --git a/fuzz/corpus/fuzz_read/f42ba4867c1976f0c1009c1f424cfc043947c30c b/fuzz/corpus/fuzz_read/f42ba4867c1976f0c1009c1f424cfc043947c30c new file mode 100644 index 00000000..d252ab22 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f42ba4867c1976f0c1009c1f424cfc043947c30c differ diff --git a/fuzz/corpus/fuzz_read/f46596019744a05f8875ade77ca794e4b36a5ddc b/fuzz/corpus/fuzz_read/f46596019744a05f8875ade77ca794e4b36a5ddc new file mode 100644 index 00000000..1359e3c3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f46596019744a05f8875ade77ca794e4b36a5ddc differ diff --git a/fuzz/corpus/fuzz_read/f492ec68fb3c046f25c998a427a041458371c52e b/fuzz/corpus/fuzz_read/f492ec68fb3c046f25c998a427a041458371c52e new file mode 100644 index 00000000..f40ab433 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f492ec68fb3c046f25c998a427a041458371c52e differ diff --git a/fuzz/corpus/fuzz_read/f4985abae47d87fd65b9441cba32b3f5ed5e55d8 b/fuzz/corpus/fuzz_read/f4985abae47d87fd65b9441cba32b3f5ed5e55d8 new file mode 100644 index 00000000..0736d2fa Binary files /dev/null and b/fuzz/corpus/fuzz_read/f4985abae47d87fd65b9441cba32b3f5ed5e55d8 differ diff --git a/fuzz/corpus/fuzz_read/f4bb71691968a51002b5cbf88defee66130e7d5c b/fuzz/corpus/fuzz_read/f4bb71691968a51002b5cbf88defee66130e7d5c new file mode 100644 index 00000000..07806c87 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f4bb71691968a51002b5cbf88defee66130e7d5c differ diff --git a/fuzz/corpus/fuzz_read/f599b81d2549557120b2ff4cbacf9e3153b1c8a6 b/fuzz/corpus/fuzz_read/f599b81d2549557120b2ff4cbacf9e3153b1c8a6 new file mode 100644 index 00000000..a707d381 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f599b81d2549557120b2ff4cbacf9e3153b1c8a6 differ diff --git a/fuzz/corpus/fuzz_read/f59f34e93b0c578e07593c82d27f1e13f4ec4476 b/fuzz/corpus/fuzz_read/f59f34e93b0c578e07593c82d27f1e13f4ec4476 new file mode 100644 index 00000000..9085e820 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f59f34e93b0c578e07593c82d27f1e13f4ec4476 differ diff --git a/fuzz/corpus/fuzz_read/f5b00deb654ef57d85745873531bb36c9e0edd46 b/fuzz/corpus/fuzz_read/f5b00deb654ef57d85745873531bb36c9e0edd46 new file mode 100644 index 00000000..17b9a9c0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f5b00deb654ef57d85745873531bb36c9e0edd46 differ diff --git a/fuzz/corpus/fuzz_read/f5ba4c0c15ba4b5a38c9e13a8e8bca2d5c3a026c b/fuzz/corpus/fuzz_read/f5ba4c0c15ba4b5a38c9e13a8e8bca2d5c3a026c new file mode 100644 index 00000000..9612075a Binary files /dev/null and b/fuzz/corpus/fuzz_read/f5ba4c0c15ba4b5a38c9e13a8e8bca2d5c3a026c differ diff --git a/fuzz/corpus/fuzz_read/f6643ec4e9490c12ab6ff609e7de950db19834bf b/fuzz/corpus/fuzz_read/f6643ec4e9490c12ab6ff609e7de950db19834bf new file mode 100644 index 00000000..84cd9b74 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f6643ec4e9490c12ab6ff609e7de950db19834bf differ diff --git a/fuzz/corpus/fuzz_read/f6846c773d0e75042e77c89d498a907a8fc9e411 b/fuzz/corpus/fuzz_read/f6846c773d0e75042e77c89d498a907a8fc9e411 new file mode 100644 index 00000000..0b7ef357 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f6846c773d0e75042e77c89d498a907a8fc9e411 differ diff --git a/fuzz/corpus/fuzz_read/f6970ea1527db74daf0480ccead7becffccbd192 b/fuzz/corpus/fuzz_read/f6970ea1527db74daf0480ccead7becffccbd192 new file mode 100644 index 00000000..39d521f2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f6970ea1527db74daf0480ccead7becffccbd192 differ diff --git a/fuzz/corpus/fuzz_read/f718171648f699520c5eda5b2f165c3420317093 b/fuzz/corpus/fuzz_read/f718171648f699520c5eda5b2f165c3420317093 new file mode 100644 index 00000000..5b6d6207 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f718171648f699520c5eda5b2f165c3420317093 differ diff --git a/fuzz/corpus/fuzz_read/f78d3f4e826629cfbf900e122e85bc78eb1c0ea1 b/fuzz/corpus/fuzz_read/f78d3f4e826629cfbf900e122e85bc78eb1c0ea1 new file mode 100644 index 00000000..a7b4a801 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f78d3f4e826629cfbf900e122e85bc78eb1c0ea1 differ diff --git a/fuzz/corpus/fuzz_read/f836917b468acf79a3c8b486cfd0c2c2b3f6209a b/fuzz/corpus/fuzz_read/f836917b468acf79a3c8b486cfd0c2c2b3f6209a new file mode 100644 index 00000000..75d2545f Binary files /dev/null and b/fuzz/corpus/fuzz_read/f836917b468acf79a3c8b486cfd0c2c2b3f6209a differ diff --git a/fuzz/corpus/fuzz_read/f853cf2ce7321f8172fc4a07f65f836a2950d590 b/fuzz/corpus/fuzz_read/f853cf2ce7321f8172fc4a07f65f836a2950d590 new file mode 100644 index 00000000..92f10209 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f853cf2ce7321f8172fc4a07f65f836a2950d590 differ diff --git a/fuzz/corpus/fuzz_read/f85431ba8d7586b20f27619928dc8267c06f003f b/fuzz/corpus/fuzz_read/f85431ba8d7586b20f27619928dc8267c06f003f new file mode 100644 index 00000000..963cd51c Binary files /dev/null and b/fuzz/corpus/fuzz_read/f85431ba8d7586b20f27619928dc8267c06f003f differ diff --git a/fuzz/corpus/fuzz_read/f8bc305e591958ff1bba555061e4f7aa3586cdf0 b/fuzz/corpus/fuzz_read/f8bc305e591958ff1bba555061e4f7aa3586cdf0 new file mode 100644 index 00000000..5c9893d2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f8bc305e591958ff1bba555061e4f7aa3586cdf0 differ diff --git a/fuzz/corpus/fuzz_read/f8eb9ef598410712fe9e5c90e3892b58a9f84250 b/fuzz/corpus/fuzz_read/f8eb9ef598410712fe9e5c90e3892b58a9f84250 new file mode 100644 index 00000000..75260e2d Binary files /dev/null and b/fuzz/corpus/fuzz_read/f8eb9ef598410712fe9e5c90e3892b58a9f84250 differ diff --git a/fuzz/corpus/fuzz_read/f90bc4b4aed44f2c77d813a1ad96d3fc91cea5ca b/fuzz/corpus/fuzz_read/f90bc4b4aed44f2c77d813a1ad96d3fc91cea5ca new file mode 100644 index 00000000..723c519f Binary files /dev/null and b/fuzz/corpus/fuzz_read/f90bc4b4aed44f2c77d813a1ad96d3fc91cea5ca differ diff --git a/fuzz/corpus/fuzz_read/f9276bb55a4eab9f9d45bee3cab7767fb737013f b/fuzz/corpus/fuzz_read/f9276bb55a4eab9f9d45bee3cab7767fb737013f new file mode 100644 index 00000000..a65692e3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f9276bb55a4eab9f9d45bee3cab7767fb737013f differ diff --git a/fuzz/corpus/fuzz_read/f96c729cb87185c411eb7a6750bffce51506635c b/fuzz/corpus/fuzz_read/f96c729cb87185c411eb7a6750bffce51506635c new file mode 100644 index 00000000..c01c2105 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f96c729cb87185c411eb7a6750bffce51506635c differ diff --git a/fuzz/corpus/fuzz_read/f9abc6c7003238a8bf3d7f8763419503d7ae2806 b/fuzz/corpus/fuzz_read/f9abc6c7003238a8bf3d7f8763419503d7ae2806 new file mode 100644 index 00000000..1b0fd948 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f9abc6c7003238a8bf3d7f8763419503d7ae2806 differ diff --git a/fuzz/corpus/fuzz_read/f9aed6249fb0025f98bbbd1ee3880e59c08bd1c1 b/fuzz/corpus/fuzz_read/f9aed6249fb0025f98bbbd1ee3880e59c08bd1c1 new file mode 100644 index 00000000..7d90e663 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f9aed6249fb0025f98bbbd1ee3880e59c08bd1c1 differ diff --git a/fuzz/corpus/fuzz_read/f9c9f6aa76fa0e9e693e4cbd39f93e798acb6a6b b/fuzz/corpus/fuzz_read/f9c9f6aa76fa0e9e693e4cbd39f93e798acb6a6b new file mode 100644 index 00000000..32589419 Binary files /dev/null and b/fuzz/corpus/fuzz_read/f9c9f6aa76fa0e9e693e4cbd39f93e798acb6a6b differ diff --git a/fuzz/corpus/fuzz_read/fa3cd17ce0864884800e8601cc003818b37eb0f1 b/fuzz/corpus/fuzz_read/fa3cd17ce0864884800e8601cc003818b37eb0f1 new file mode 100644 index 00000000..7c458bb1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fa3cd17ce0864884800e8601cc003818b37eb0f1 differ diff --git a/fuzz/corpus/fuzz_read/faf675de1202910de7e120f59d03d5b84b49f2d4 b/fuzz/corpus/fuzz_read/faf675de1202910de7e120f59d03d5b84b49f2d4 new file mode 100644 index 00000000..b5db3bcf Binary files /dev/null and b/fuzz/corpus/fuzz_read/faf675de1202910de7e120f59d03d5b84b49f2d4 differ diff --git a/fuzz/corpus/fuzz_read/fb0203bdafda19ee26da5554c2c8b8fed3e53253 b/fuzz/corpus/fuzz_read/fb0203bdafda19ee26da5554c2c8b8fed3e53253 new file mode 100644 index 00000000..41abb449 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb0203bdafda19ee26da5554c2c8b8fed3e53253 differ diff --git a/fuzz/corpus/fuzz_read/fb1b29924148fd9c11ae76af313c56efa6cb9ebe b/fuzz/corpus/fuzz_read/fb1b29924148fd9c11ae76af313c56efa6cb9ebe new file mode 100644 index 00000000..98a8b326 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb1b29924148fd9c11ae76af313c56efa6cb9ebe differ diff --git a/fuzz/corpus/fuzz_read/fb41d0f67c1ca2a1847ecc074d70d938346b8fac b/fuzz/corpus/fuzz_read/fb41d0f67c1ca2a1847ecc074d70d938346b8fac new file mode 100644 index 00000000..c584a184 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb41d0f67c1ca2a1847ecc074d70d938346b8fac differ diff --git a/fuzz/corpus/fuzz_read/fb541a6a6e2d54e5cb6ca7ced452b5e376d16e82 b/fuzz/corpus/fuzz_read/fb541a6a6e2d54e5cb6ca7ced452b5e376d16e82 new file mode 100644 index 00000000..93e4bd6e Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb541a6a6e2d54e5cb6ca7ced452b5e376d16e82 differ diff --git a/fuzz/corpus/fuzz_read/fb70aa9cdc2bd635be9d3129193e828fc473895e b/fuzz/corpus/fuzz_read/fb70aa9cdc2bd635be9d3129193e828fc473895e new file mode 100644 index 00000000..95c2c914 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb70aa9cdc2bd635be9d3129193e828fc473895e differ diff --git a/fuzz/corpus/fuzz_read/fb71735c7461bb49d3cfa2623b8a189f526e2c97 b/fuzz/corpus/fuzz_read/fb71735c7461bb49d3cfa2623b8a189f526e2c97 new file mode 100644 index 00000000..8260dfc3 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fb71735c7461bb49d3cfa2623b8a189f526e2c97 differ diff --git a/fuzz/corpus/fuzz_read/fba84454cec1d006941d18fdf0344f9c5eb6bb2d b/fuzz/corpus/fuzz_read/fba84454cec1d006941d18fdf0344f9c5eb6bb2d new file mode 100644 index 00000000..8efa01e4 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fba84454cec1d006941d18fdf0344f9c5eb6bb2d differ diff --git a/fuzz/corpus/fuzz_read/fbe9a762c6f2a48284ab481108d965f8dafe88e4 b/fuzz/corpus/fuzz_read/fbe9a762c6f2a48284ab481108d965f8dafe88e4 new file mode 100644 index 00000000..146c7dda Binary files /dev/null and b/fuzz/corpus/fuzz_read/fbe9a762c6f2a48284ab481108d965f8dafe88e4 differ diff --git a/fuzz/corpus/fuzz_read/fbfaae7efa5486fef8d63d25150e9b2b399b621a b/fuzz/corpus/fuzz_read/fbfaae7efa5486fef8d63d25150e9b2b399b621a new file mode 100644 index 00000000..c2df1dc0 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fbfaae7efa5486fef8d63d25150e9b2b399b621a differ diff --git a/fuzz/corpus/fuzz_read/fc0ebb30261c389dd76ddbe06f0505252b9468de b/fuzz/corpus/fuzz_read/fc0ebb30261c389dd76ddbe06f0505252b9468de new file mode 100644 index 00000000..6f04a80c Binary files /dev/null and b/fuzz/corpus/fuzz_read/fc0ebb30261c389dd76ddbe06f0505252b9468de differ diff --git a/fuzz/corpus/fuzz_read/fc256cf7c925a6292cbf25d8ec92bc4a1715d705 b/fuzz/corpus/fuzz_read/fc256cf7c925a6292cbf25d8ec92bc4a1715d705 new file mode 100644 index 00000000..3b765aa9 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fc256cf7c925a6292cbf25d8ec92bc4a1715d705 differ diff --git a/fuzz/corpus/fuzz_read/fc5fef7caf9c419e3a131450ad1c5108f3c0ce2e b/fuzz/corpus/fuzz_read/fc5fef7caf9c419e3a131450ad1c5108f3c0ce2e new file mode 100644 index 00000000..1fc6531a Binary files /dev/null and b/fuzz/corpus/fuzz_read/fc5fef7caf9c419e3a131450ad1c5108f3c0ce2e differ diff --git a/fuzz/corpus/fuzz_read/fc988c0764113ed7c7b2f292d1dbcb88b6d54070 b/fuzz/corpus/fuzz_read/fc988c0764113ed7c7b2f292d1dbcb88b6d54070 new file mode 100644 index 00000000..2e5faefd Binary files /dev/null and b/fuzz/corpus/fuzz_read/fc988c0764113ed7c7b2f292d1dbcb88b6d54070 differ diff --git a/fuzz/corpus/fuzz_read/fd019375d3e1ec088e36f35c07ab25fea7d1d2d1 b/fuzz/corpus/fuzz_read/fd019375d3e1ec088e36f35c07ab25fea7d1d2d1 new file mode 100644 index 00000000..9a23a81f Binary files /dev/null and b/fuzz/corpus/fuzz_read/fd019375d3e1ec088e36f35c07ab25fea7d1d2d1 differ diff --git a/fuzz/corpus/fuzz_read/fd11ee41427f8e7d72e2c2cd49127537c694e490 b/fuzz/corpus/fuzz_read/fd11ee41427f8e7d72e2c2cd49127537c694e490 new file mode 100644 index 00000000..c1a7d0c8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fd11ee41427f8e7d72e2c2cd49127537c694e490 differ diff --git a/fuzz/corpus/fuzz_read/fd5ce1fb233eeb0c42dcaa6db6d451f584a3a3df b/fuzz/corpus/fuzz_read/fd5ce1fb233eeb0c42dcaa6db6d451f584a3a3df new file mode 100644 index 00000000..112ff0dd Binary files /dev/null and b/fuzz/corpus/fuzz_read/fd5ce1fb233eeb0c42dcaa6db6d451f584a3a3df differ diff --git a/fuzz/corpus/fuzz_read/fda16e4825cd10e20dbe7e94868d02770a8d3244 b/fuzz/corpus/fuzz_read/fda16e4825cd10e20dbe7e94868d02770a8d3244 new file mode 100644 index 00000000..3fa443d8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fda16e4825cd10e20dbe7e94868d02770a8d3244 differ diff --git a/fuzz/corpus/fuzz_read/fdb32977cfcda337f448468119630263f6d19a4b b/fuzz/corpus/fuzz_read/fdb32977cfcda337f448468119630263f6d19a4b new file mode 100644 index 00000000..453dc322 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fdb32977cfcda337f448468119630263f6d19a4b differ diff --git a/fuzz/corpus/fuzz_read/fdc673711c49e40c4ba90a7e9d314943c61e3f52 b/fuzz/corpus/fuzz_read/fdc673711c49e40c4ba90a7e9d314943c61e3f52 new file mode 100644 index 00000000..9817f8bb Binary files /dev/null and b/fuzz/corpus/fuzz_read/fdc673711c49e40c4ba90a7e9d314943c61e3f52 differ diff --git a/fuzz/corpus/fuzz_read/fe104ccb7156a91d3cfc18728734345f55b09535 b/fuzz/corpus/fuzz_read/fe104ccb7156a91d3cfc18728734345f55b09535 new file mode 100644 index 00000000..69e9bedd Binary files /dev/null and b/fuzz/corpus/fuzz_read/fe104ccb7156a91d3cfc18728734345f55b09535 differ diff --git a/fuzz/corpus/fuzz_read/fe34bdea0b1723af1e91f89f3955b22a306c39eb b/fuzz/corpus/fuzz_read/fe34bdea0b1723af1e91f89f3955b22a306c39eb new file mode 100644 index 00000000..f246b653 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fe34bdea0b1723af1e91f89f3955b22a306c39eb differ diff --git a/fuzz/corpus/fuzz_read/fe400cedb94d9e375c01437935daf666bdcb01a5 b/fuzz/corpus/fuzz_read/fe400cedb94d9e375c01437935daf666bdcb01a5 new file mode 100644 index 00000000..f0331823 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fe400cedb94d9e375c01437935daf666bdcb01a5 differ diff --git a/fuzz/corpus/fuzz_read/fe59755909590ee03dc1a73203a3c4423ed8fecf b/fuzz/corpus/fuzz_read/fe59755909590ee03dc1a73203a3c4423ed8fecf new file mode 100644 index 00000000..eb0aea99 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fe59755909590ee03dc1a73203a3c4423ed8fecf differ diff --git a/fuzz/corpus/fuzz_read/fe601b6d678c0f3044fc31162a51cb863d9a41da b/fuzz/corpus/fuzz_read/fe601b6d678c0f3044fc31162a51cb863d9a41da new file mode 100644 index 00000000..8e1ca2f8 Binary files /dev/null and b/fuzz/corpus/fuzz_read/fe601b6d678c0f3044fc31162a51cb863d9a41da differ diff --git a/fuzz/corpus/fuzz_read/feddb115d00a2aa1033c0d8396c028e38e53b2a6 b/fuzz/corpus/fuzz_read/feddb115d00a2aa1033c0d8396c028e38e53b2a6 new file mode 100644 index 00000000..976080ad Binary files /dev/null and b/fuzz/corpus/fuzz_read/feddb115d00a2aa1033c0d8396c028e38e53b2a6 differ diff --git a/fuzz/corpus/fuzz_read/feed183a0cf4a4cba8c4826f35b94afc06dea505 b/fuzz/corpus/fuzz_read/feed183a0cf4a4cba8c4826f35b94afc06dea505 new file mode 100644 index 00000000..6883baf1 Binary files /dev/null and b/fuzz/corpus/fuzz_read/feed183a0cf4a4cba8c4826f35b94afc06dea505 differ diff --git a/fuzz/corpus/fuzz_read/ff25ea7b1eb4c3b2af449e234786f50ea0991f91 b/fuzz/corpus/fuzz_read/ff25ea7b1eb4c3b2af449e234786f50ea0991f91 new file mode 100644 index 00000000..cdafc6b2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ff25ea7b1eb4c3b2af449e234786f50ea0991f91 differ diff --git a/fuzz/corpus/fuzz_read/ff30fd3018033de5f3bb493a477aabaa53ea8385 b/fuzz/corpus/fuzz_read/ff30fd3018033de5f3bb493a477aabaa53ea8385 new file mode 100644 index 00000000..8b09fe06 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ff30fd3018033de5f3bb493a477aabaa53ea8385 differ diff --git a/fuzz/corpus/fuzz_read/ff41126889030ee3bb0380d924a12421e5b6ba22 b/fuzz/corpus/fuzz_read/ff41126889030ee3bb0380d924a12421e5b6ba22 new file mode 100644 index 00000000..6741acc2 Binary files /dev/null and b/fuzz/corpus/fuzz_read/ff41126889030ee3bb0380d924a12421e5b6ba22 differ diff --git a/fuzz/corpus/fuzz_read/ffc8a60daa7d077205a25df95d17be743504b351 b/fuzz/corpus/fuzz_read/ffc8a60daa7d077205a25df95d17be743504b351 new file mode 100644 index 00000000..638556ae Binary files /dev/null and b/fuzz/corpus/fuzz_read/ffc8a60daa7d077205a25df95d17be743504b351 differ diff --git a/fuzz/corpus/fuzz_write/00030a55b0bff22480d8296c8c64a183fb83c39e b/fuzz/corpus/fuzz_write/00030a55b0bff22480d8296c8c64a183fb83c39e new file mode 100644 index 00000000..4c49708a Binary files /dev/null and b/fuzz/corpus/fuzz_write/00030a55b0bff22480d8296c8c64a183fb83c39e differ diff --git a/fuzz/corpus/fuzz_write/00071524976ef77f1b61da541d93cdcaaaf884ab b/fuzz/corpus/fuzz_write/00071524976ef77f1b61da541d93cdcaaaf884ab new file mode 100644 index 00000000..0bfca484 Binary files /dev/null and b/fuzz/corpus/fuzz_write/00071524976ef77f1b61da541d93cdcaaaf884ab differ diff --git a/fuzz/corpus/fuzz_write/00076db50a80da0e6bcb5c757a118ea66830c84d b/fuzz/corpus/fuzz_write/00076db50a80da0e6bcb5c757a118ea66830c84d new file mode 100644 index 00000000..7927f464 Binary files /dev/null and b/fuzz/corpus/fuzz_write/00076db50a80da0e6bcb5c757a118ea66830c84d differ diff --git a/fuzz/corpus/fuzz_write/00121ca12b68cc799f1029229263691a11e68b66 b/fuzz/corpus/fuzz_write/00121ca12b68cc799f1029229263691a11e68b66 new file mode 100644 index 00000000..d455d4c4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/00121ca12b68cc799f1029229263691a11e68b66 differ diff --git a/fuzz/corpus/fuzz_write/00657e9e9131d21d4325694e425d33b7e02888b5 b/fuzz/corpus/fuzz_write/00657e9e9131d21d4325694e425d33b7e02888b5 new file mode 100644 index 00000000..6eb05487 Binary files /dev/null and b/fuzz/corpus/fuzz_write/00657e9e9131d21d4325694e425d33b7e02888b5 differ diff --git a/fuzz/corpus/fuzz_write/007b3a341715bf350e0adb28b4d25aaffec95b68 b/fuzz/corpus/fuzz_write/007b3a341715bf350e0adb28b4d25aaffec95b68 new file mode 100644 index 00000000..2213db71 Binary files /dev/null and b/fuzz/corpus/fuzz_write/007b3a341715bf350e0adb28b4d25aaffec95b68 differ diff --git a/fuzz/corpus/fuzz_write/007d6bef8068ebba7ee8db6358641f77afcc07bc b/fuzz/corpus/fuzz_write/007d6bef8068ebba7ee8db6358641f77afcc07bc new file mode 100644 index 00000000..5e8b000b Binary files /dev/null and b/fuzz/corpus/fuzz_write/007d6bef8068ebba7ee8db6358641f77afcc07bc differ diff --git a/fuzz/corpus/fuzz_write/0096245886ab1a67f8d0cda0d3a35d9e20fce63a b/fuzz/corpus/fuzz_write/0096245886ab1a67f8d0cda0d3a35d9e20fce63a new file mode 100644 index 00000000..f98c75e9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0096245886ab1a67f8d0cda0d3a35d9e20fce63a differ diff --git a/fuzz/corpus/fuzz_write/0097369f901c0ee374a2c4fff3d4f7bba313c208 b/fuzz/corpus/fuzz_write/0097369f901c0ee374a2c4fff3d4f7bba313c208 new file mode 100644 index 00000000..03f551d3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0097369f901c0ee374a2c4fff3d4f7bba313c208 differ diff --git a/fuzz/corpus/fuzz_write/009beb9336d652d7aa78936a72408cbb2cf1cdca b/fuzz/corpus/fuzz_write/009beb9336d652d7aa78936a72408cbb2cf1cdca new file mode 100644 index 00000000..5cd9dd59 Binary files /dev/null and b/fuzz/corpus/fuzz_write/009beb9336d652d7aa78936a72408cbb2cf1cdca differ diff --git a/fuzz/corpus/fuzz_write/009d48c7f726581e5ef1b73e375b638f60d06bbb b/fuzz/corpus/fuzz_write/009d48c7f726581e5ef1b73e375b638f60d06bbb new file mode 100644 index 00000000..90b1c7d6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/009d48c7f726581e5ef1b73e375b638f60d06bbb differ diff --git a/fuzz/corpus/fuzz_write/00a855314105f1d964285451f50c8b0631b1670f b/fuzz/corpus/fuzz_write/00a855314105f1d964285451f50c8b0631b1670f new file mode 100644 index 00000000..bd652b1d Binary files /dev/null and b/fuzz/corpus/fuzz_write/00a855314105f1d964285451f50c8b0631b1670f differ diff --git a/fuzz/corpus/fuzz_write/00ab2e8b76b16bec5a12bd05ef6166f07d0af99f b/fuzz/corpus/fuzz_write/00ab2e8b76b16bec5a12bd05ef6166f07d0af99f new file mode 100644 index 00000000..d55fc4eb Binary files /dev/null and b/fuzz/corpus/fuzz_write/00ab2e8b76b16bec5a12bd05ef6166f07d0af99f differ diff --git a/fuzz/corpus/fuzz_write/014be50942c2063cf9e4e8bafb58b2926b5edf9e b/fuzz/corpus/fuzz_write/014be50942c2063cf9e4e8bafb58b2926b5edf9e new file mode 100644 index 00000000..8f86ddd3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/014be50942c2063cf9e4e8bafb58b2926b5edf9e differ diff --git a/fuzz/corpus/fuzz_write/016d7519fd8239fe0766d6ca0b4cffb949d73823 b/fuzz/corpus/fuzz_write/016d7519fd8239fe0766d6ca0b4cffb949d73823 new file mode 100644 index 00000000..8d5af237 Binary files /dev/null and b/fuzz/corpus/fuzz_write/016d7519fd8239fe0766d6ca0b4cffb949d73823 differ diff --git a/fuzz/corpus/fuzz_write/0177c4ff3082f23cf900ff2a726f670a36332e01 b/fuzz/corpus/fuzz_write/0177c4ff3082f23cf900ff2a726f670a36332e01 new file mode 100644 index 00000000..0de0cc6f Binary files /dev/null and b/fuzz/corpus/fuzz_write/0177c4ff3082f23cf900ff2a726f670a36332e01 differ diff --git a/fuzz/corpus/fuzz_write/01810e781bbe624d472aff841d1ebf0ec34413fd b/fuzz/corpus/fuzz_write/01810e781bbe624d472aff841d1ebf0ec34413fd new file mode 100644 index 00000000..86012635 Binary files /dev/null and b/fuzz/corpus/fuzz_write/01810e781bbe624d472aff841d1ebf0ec34413fd differ diff --git a/fuzz/corpus/fuzz_write/018e9e85f1138c2ee954ffba75ef5e0c0e8c01d4 b/fuzz/corpus/fuzz_write/018e9e85f1138c2ee954ffba75ef5e0c0e8c01d4 new file mode 100644 index 00000000..5a8c1238 Binary files /dev/null and b/fuzz/corpus/fuzz_write/018e9e85f1138c2ee954ffba75ef5e0c0e8c01d4 differ diff --git a/fuzz/corpus/fuzz_write/01b5a9fc61c31a6bca97ed95f110272247aab697 b/fuzz/corpus/fuzz_write/01b5a9fc61c31a6bca97ed95f110272247aab697 new file mode 100644 index 00000000..d25ca03c Binary files /dev/null and b/fuzz/corpus/fuzz_write/01b5a9fc61c31a6bca97ed95f110272247aab697 differ diff --git a/fuzz/corpus/fuzz_write/01bd9615241fab008d9ec913b465312715d2b1d7 b/fuzz/corpus/fuzz_write/01bd9615241fab008d9ec913b465312715d2b1d7 new file mode 100644 index 00000000..2cae1123 Binary files /dev/null and b/fuzz/corpus/fuzz_write/01bd9615241fab008d9ec913b465312715d2b1d7 differ diff --git a/fuzz/corpus/fuzz_write/01eaeacd592bf8252ebd3f5fac11d74c4c4da66d b/fuzz/corpus/fuzz_write/01eaeacd592bf8252ebd3f5fac11d74c4c4da66d new file mode 100644 index 00000000..490477d3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/01eaeacd592bf8252ebd3f5fac11d74c4c4da66d differ diff --git a/fuzz/corpus/fuzz_write/01f696add1cf1e405028e83ccfa2db6389a95952 b/fuzz/corpus/fuzz_write/01f696add1cf1e405028e83ccfa2db6389a95952 new file mode 100644 index 00000000..51b22f75 Binary files /dev/null and b/fuzz/corpus/fuzz_write/01f696add1cf1e405028e83ccfa2db6389a95952 differ diff --git a/fuzz/corpus/fuzz_write/01fc3fc085706f9bd8e3a3b85c1865aedf951ec2 b/fuzz/corpus/fuzz_write/01fc3fc085706f9bd8e3a3b85c1865aedf951ec2 new file mode 100644 index 00000000..7d1ef98b Binary files /dev/null and b/fuzz/corpus/fuzz_write/01fc3fc085706f9bd8e3a3b85c1865aedf951ec2 differ diff --git a/fuzz/corpus/fuzz_write/0202561ddc3c83b52142bb8c0a71fb941b271076 b/fuzz/corpus/fuzz_write/0202561ddc3c83b52142bb8c0a71fb941b271076 new file mode 100644 index 00000000..a56cf7ea Binary files /dev/null and b/fuzz/corpus/fuzz_write/0202561ddc3c83b52142bb8c0a71fb941b271076 differ diff --git a/fuzz/corpus/fuzz_write/0211359a20f31c802a526242ff48fdc1f2ea6f59 b/fuzz/corpus/fuzz_write/0211359a20f31c802a526242ff48fdc1f2ea6f59 new file mode 100644 index 00000000..94384c81 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0211359a20f31c802a526242ff48fdc1f2ea6f59 differ diff --git a/fuzz/corpus/fuzz_write/024b59fee2a03b32c118f9c8eb6b4b379b78bfaa b/fuzz/corpus/fuzz_write/024b59fee2a03b32c118f9c8eb6b4b379b78bfaa new file mode 100644 index 00000000..459f66d4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/024b59fee2a03b32c118f9c8eb6b4b379b78bfaa differ diff --git a/fuzz/corpus/fuzz_write/02562ba17411ca5363ead3d4b2f05e776039b2ab b/fuzz/corpus/fuzz_write/02562ba17411ca5363ead3d4b2f05e776039b2ab new file mode 100644 index 00000000..677f4664 Binary files /dev/null and b/fuzz/corpus/fuzz_write/02562ba17411ca5363ead3d4b2f05e776039b2ab differ diff --git a/fuzz/corpus/fuzz_write/026a30a75e31199b64f39c8ab2228926b78a055d b/fuzz/corpus/fuzz_write/026a30a75e31199b64f39c8ab2228926b78a055d new file mode 100644 index 00000000..96192298 Binary files /dev/null and b/fuzz/corpus/fuzz_write/026a30a75e31199b64f39c8ab2228926b78a055d differ diff --git a/fuzz/corpus/fuzz_write/026ad0e35b518b627c39567db3cf22acd1d1eee4 b/fuzz/corpus/fuzz_write/026ad0e35b518b627c39567db3cf22acd1d1eee4 new file mode 100644 index 00000000..5099da2e Binary files /dev/null and b/fuzz/corpus/fuzz_write/026ad0e35b518b627c39567db3cf22acd1d1eee4 differ diff --git a/fuzz/corpus/fuzz_write/0293cce213838cea9d007d7030ea63992d7b698b b/fuzz/corpus/fuzz_write/0293cce213838cea9d007d7030ea63992d7b698b new file mode 100644 index 00000000..e84099b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0293cce213838cea9d007d7030ea63992d7b698b differ diff --git a/fuzz/corpus/fuzz_write/02b155f21bba7d40c6e951e76def9ae96c41e570 b/fuzz/corpus/fuzz_write/02b155f21bba7d40c6e951e76def9ae96c41e570 new file mode 100644 index 00000000..f196a7cb Binary files /dev/null and b/fuzz/corpus/fuzz_write/02b155f21bba7d40c6e951e76def9ae96c41e570 differ diff --git a/fuzz/corpus/fuzz_write/02f7064d9091107d4171897dfaa87ba936abeb11 b/fuzz/corpus/fuzz_write/02f7064d9091107d4171897dfaa87ba936abeb11 new file mode 100644 index 00000000..bc3b7581 Binary files /dev/null and b/fuzz/corpus/fuzz_write/02f7064d9091107d4171897dfaa87ba936abeb11 differ diff --git a/fuzz/corpus/fuzz_write/0308e90067b408e7e32fa87731ae509d98d73987 b/fuzz/corpus/fuzz_write/0308e90067b408e7e32fa87731ae509d98d73987 new file mode 100644 index 00000000..4bd2a938 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0308e90067b408e7e32fa87731ae509d98d73987 differ diff --git a/fuzz/corpus/fuzz_write/031519efed9d0f8f7c0c04b24193b746a64299ff b/fuzz/corpus/fuzz_write/031519efed9d0f8f7c0c04b24193b746a64299ff new file mode 100644 index 00000000..471e60d0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/031519efed9d0f8f7c0c04b24193b746a64299ff differ diff --git a/fuzz/corpus/fuzz_write/0315723e389ee6570e0d762fa34f955cfa45c947 b/fuzz/corpus/fuzz_write/0315723e389ee6570e0d762fa34f955cfa45c947 new file mode 100644 index 00000000..5ee70e6f Binary files /dev/null and b/fuzz/corpus/fuzz_write/0315723e389ee6570e0d762fa34f955cfa45c947 differ diff --git a/fuzz/corpus/fuzz_write/031f152a430e31376c8a530f2b92d462e228a2cb b/fuzz/corpus/fuzz_write/031f152a430e31376c8a530f2b92d462e228a2cb new file mode 100644 index 00000000..b4c1a602 Binary files /dev/null and b/fuzz/corpus/fuzz_write/031f152a430e31376c8a530f2b92d462e228a2cb differ diff --git a/fuzz/corpus/fuzz_write/032c284aa68840f526e678a999e646d0373c9411 b/fuzz/corpus/fuzz_write/032c284aa68840f526e678a999e646d0373c9411 new file mode 100644 index 00000000..51ca3f2f Binary files /dev/null and b/fuzz/corpus/fuzz_write/032c284aa68840f526e678a999e646d0373c9411 differ diff --git a/fuzz/corpus/fuzz_write/0354ee078dead097102261c0ba845b98845738d6 b/fuzz/corpus/fuzz_write/0354ee078dead097102261c0ba845b98845738d6 new file mode 100644 index 00000000..7614a880 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0354ee078dead097102261c0ba845b98845738d6 differ diff --git a/fuzz/corpus/fuzz_write/038a6c090ed3ac4e55499ac31cbcd7199ff7fc35 b/fuzz/corpus/fuzz_write/038a6c090ed3ac4e55499ac31cbcd7199ff7fc35 new file mode 100644 index 00000000..7441f4ff Binary files /dev/null and b/fuzz/corpus/fuzz_write/038a6c090ed3ac4e55499ac31cbcd7199ff7fc35 differ diff --git a/fuzz/corpus/fuzz_write/03a9ff393911dbb41fdc87246b0e20ca6342c3dc b/fuzz/corpus/fuzz_write/03a9ff393911dbb41fdc87246b0e20ca6342c3dc new file mode 100644 index 00000000..9c58e87b Binary files /dev/null and b/fuzz/corpus/fuzz_write/03a9ff393911dbb41fdc87246b0e20ca6342c3dc differ diff --git a/fuzz/corpus/fuzz_write/03ace5a3f7700bca3d4a28fa00ce67dba7719e7e b/fuzz/corpus/fuzz_write/03ace5a3f7700bca3d4a28fa00ce67dba7719e7e new file mode 100644 index 00000000..55b28f2d Binary files /dev/null and b/fuzz/corpus/fuzz_write/03ace5a3f7700bca3d4a28fa00ce67dba7719e7e differ diff --git a/fuzz/corpus/fuzz_write/03acff7be4e0660550467a2e99913420ac414a06 b/fuzz/corpus/fuzz_write/03acff7be4e0660550467a2e99913420ac414a06 new file mode 100644 index 00000000..8c1aa038 Binary files /dev/null and b/fuzz/corpus/fuzz_write/03acff7be4e0660550467a2e99913420ac414a06 differ diff --git a/fuzz/corpus/fuzz_write/03ad16e4e4c07e08af0438fc4c8a8809f59a04c3 b/fuzz/corpus/fuzz_write/03ad16e4e4c07e08af0438fc4c8a8809f59a04c3 new file mode 100644 index 00000000..7b17ed48 Binary files /dev/null and b/fuzz/corpus/fuzz_write/03ad16e4e4c07e08af0438fc4c8a8809f59a04c3 differ diff --git a/fuzz/corpus/fuzz_write/03f2a9912fe069db2ecb18fb9be5d52e4aa261ad b/fuzz/corpus/fuzz_write/03f2a9912fe069db2ecb18fb9be5d52e4aa261ad new file mode 100644 index 00000000..d2206e59 Binary files /dev/null and b/fuzz/corpus/fuzz_write/03f2a9912fe069db2ecb18fb9be5d52e4aa261ad differ diff --git a/fuzz/corpus/fuzz_write/03f8fbab5251c3eb248f0bbee327146ef57d946b b/fuzz/corpus/fuzz_write/03f8fbab5251c3eb248f0bbee327146ef57d946b new file mode 100644 index 00000000..d474cf2c Binary files /dev/null and b/fuzz/corpus/fuzz_write/03f8fbab5251c3eb248f0bbee327146ef57d946b differ diff --git a/fuzz/corpus/fuzz_write/042d613804e5ec9b5719893999713a43bcd03a3e b/fuzz/corpus/fuzz_write/042d613804e5ec9b5719893999713a43bcd03a3e new file mode 100644 index 00000000..d6f914b7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/042d613804e5ec9b5719893999713a43bcd03a3e differ diff --git a/fuzz/corpus/fuzz_write/043cede796aaf8d7ed4f542e988d6af78fd7461f b/fuzz/corpus/fuzz_write/043cede796aaf8d7ed4f542e988d6af78fd7461f new file mode 100644 index 00000000..cad92e7b Binary files /dev/null and b/fuzz/corpus/fuzz_write/043cede796aaf8d7ed4f542e988d6af78fd7461f differ diff --git a/fuzz/corpus/fuzz_write/043ecadacb19d72bdbcdb250c6f4f962e074ab0e b/fuzz/corpus/fuzz_write/043ecadacb19d72bdbcdb250c6f4f962e074ab0e new file mode 100644 index 00000000..8afd5281 Binary files /dev/null and b/fuzz/corpus/fuzz_write/043ecadacb19d72bdbcdb250c6f4f962e074ab0e differ diff --git a/fuzz/corpus/fuzz_write/0469df332d923eb3248bf1b007e2beb80f048fc9 b/fuzz/corpus/fuzz_write/0469df332d923eb3248bf1b007e2beb80f048fc9 new file mode 100644 index 00000000..9e043013 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0469df332d923eb3248bf1b007e2beb80f048fc9 differ diff --git a/fuzz/corpus/fuzz_write/047e369946e489b80bef5e5742976ab47a8419ff b/fuzz/corpus/fuzz_write/047e369946e489b80bef5e5742976ab47a8419ff new file mode 100644 index 00000000..13f56f07 Binary files /dev/null and b/fuzz/corpus/fuzz_write/047e369946e489b80bef5e5742976ab47a8419ff differ diff --git a/fuzz/corpus/fuzz_write/047f9e25feab56bff41227b7ac8dfa579e03c547 b/fuzz/corpus/fuzz_write/047f9e25feab56bff41227b7ac8dfa579e03c547 new file mode 100644 index 00000000..d543f45b Binary files /dev/null and b/fuzz/corpus/fuzz_write/047f9e25feab56bff41227b7ac8dfa579e03c547 differ diff --git a/fuzz/corpus/fuzz_write/049d116ed20cf7d98db327eda1363b1ee4083f93 b/fuzz/corpus/fuzz_write/049d116ed20cf7d98db327eda1363b1ee4083f93 new file mode 100644 index 00000000..b18e7509 Binary files /dev/null and b/fuzz/corpus/fuzz_write/049d116ed20cf7d98db327eda1363b1ee4083f93 differ diff --git a/fuzz/corpus/fuzz_write/04abd3d357a46440ea28f057046586b80ed10f82 b/fuzz/corpus/fuzz_write/04abd3d357a46440ea28f057046586b80ed10f82 new file mode 100644 index 00000000..8a988189 Binary files /dev/null and b/fuzz/corpus/fuzz_write/04abd3d357a46440ea28f057046586b80ed10f82 differ diff --git a/fuzz/corpus/fuzz_write/04ad1b0ce17e9a101391c30ad0b36ed5ac6a5e8e b/fuzz/corpus/fuzz_write/04ad1b0ce17e9a101391c30ad0b36ed5ac6a5e8e new file mode 100644 index 00000000..30965a1e Binary files /dev/null and b/fuzz/corpus/fuzz_write/04ad1b0ce17e9a101391c30ad0b36ed5ac6a5e8e differ diff --git a/fuzz/corpus/fuzz_write/04bf9aaa3923744d348484cff3e434ae6538ce18 b/fuzz/corpus/fuzz_write/04bf9aaa3923744d348484cff3e434ae6538ce18 new file mode 100644 index 00000000..91d59797 Binary files /dev/null and b/fuzz/corpus/fuzz_write/04bf9aaa3923744d348484cff3e434ae6538ce18 differ diff --git a/fuzz/corpus/fuzz_write/04e1f67d616661d6780cc3857990ea5d82e92343 b/fuzz/corpus/fuzz_write/04e1f67d616661d6780cc3857990ea5d82e92343 new file mode 100644 index 00000000..ce59f359 Binary files /dev/null and b/fuzz/corpus/fuzz_write/04e1f67d616661d6780cc3857990ea5d82e92343 differ diff --git a/fuzz/corpus/fuzz_write/04e604b1896f0498a966993d51f360932605df1b b/fuzz/corpus/fuzz_write/04e604b1896f0498a966993d51f360932605df1b new file mode 100644 index 00000000..e2aa50dd Binary files /dev/null and b/fuzz/corpus/fuzz_write/04e604b1896f0498a966993d51f360932605df1b differ diff --git a/fuzz/corpus/fuzz_write/04f7e4e341fdfa1bb39102c8857dc3cd62fb651a b/fuzz/corpus/fuzz_write/04f7e4e341fdfa1bb39102c8857dc3cd62fb651a new file mode 100644 index 00000000..dca3182d Binary files /dev/null and b/fuzz/corpus/fuzz_write/04f7e4e341fdfa1bb39102c8857dc3cd62fb651a differ diff --git a/fuzz/corpus/fuzz_write/05215f83431c55fa84012f9e7ff4306da010186c b/fuzz/corpus/fuzz_write/05215f83431c55fa84012f9e7ff4306da010186c new file mode 100644 index 00000000..a490c156 Binary files /dev/null and b/fuzz/corpus/fuzz_write/05215f83431c55fa84012f9e7ff4306da010186c differ diff --git a/fuzz/corpus/fuzz_write/054398722e9ef4ec99b320b58431b2b2b3628a8b b/fuzz/corpus/fuzz_write/054398722e9ef4ec99b320b58431b2b2b3628a8b new file mode 100644 index 00000000..eb70caef Binary files /dev/null and b/fuzz/corpus/fuzz_write/054398722e9ef4ec99b320b58431b2b2b3628a8b differ diff --git a/fuzz/corpus/fuzz_write/058bfdec58dfc97f8a7a236957e79736951b553d b/fuzz/corpus/fuzz_write/058bfdec58dfc97f8a7a236957e79736951b553d new file mode 100644 index 00000000..f7509728 Binary files /dev/null and b/fuzz/corpus/fuzz_write/058bfdec58dfc97f8a7a236957e79736951b553d differ diff --git a/fuzz/corpus/fuzz_write/05912e5c2ad6d1e59a30e9c5f4258e89b77e1b3d b/fuzz/corpus/fuzz_write/05912e5c2ad6d1e59a30e9c5f4258e89b77e1b3d new file mode 100644 index 00000000..71e62b08 Binary files /dev/null and b/fuzz/corpus/fuzz_write/05912e5c2ad6d1e59a30e9c5f4258e89b77e1b3d differ diff --git a/fuzz/corpus/fuzz_write/05edfb1125e1d5133a53864a6438fb4c6f462fab b/fuzz/corpus/fuzz_write/05edfb1125e1d5133a53864a6438fb4c6f462fab new file mode 100644 index 00000000..2883a0ca Binary files /dev/null and b/fuzz/corpus/fuzz_write/05edfb1125e1d5133a53864a6438fb4c6f462fab differ diff --git a/fuzz/corpus/fuzz_write/0613e5bfe57d858df526ff59d283d34aedc0c472 b/fuzz/corpus/fuzz_write/0613e5bfe57d858df526ff59d283d34aedc0c472 new file mode 100644 index 00000000..53eaaf78 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0613e5bfe57d858df526ff59d283d34aedc0c472 differ diff --git a/fuzz/corpus/fuzz_write/061781184a6dba0551582e6ab2853d8fe01b9e85 b/fuzz/corpus/fuzz_write/061781184a6dba0551582e6ab2853d8fe01b9e85 new file mode 100644 index 00000000..fa91eca5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/061781184a6dba0551582e6ab2853d8fe01b9e85 differ diff --git a/fuzz/corpus/fuzz_write/0641c4da6ed766806ae7538295a18929a8ddcdcf b/fuzz/corpus/fuzz_write/0641c4da6ed766806ae7538295a18929a8ddcdcf new file mode 100644 index 00000000..985a342b Binary files /dev/null and b/fuzz/corpus/fuzz_write/0641c4da6ed766806ae7538295a18929a8ddcdcf differ diff --git a/fuzz/corpus/fuzz_write/064eb6453553471ce0baff13394403d581f90ba3 b/fuzz/corpus/fuzz_write/064eb6453553471ce0baff13394403d581f90ba3 new file mode 100644 index 00000000..a8c2243b Binary files /dev/null and b/fuzz/corpus/fuzz_write/064eb6453553471ce0baff13394403d581f90ba3 differ diff --git a/fuzz/corpus/fuzz_write/064fd7021232f69b632b19cf7a42a040d2cf24fb b/fuzz/corpus/fuzz_write/064fd7021232f69b632b19cf7a42a040d2cf24fb new file mode 100644 index 00000000..0b0720ee Binary files /dev/null and b/fuzz/corpus/fuzz_write/064fd7021232f69b632b19cf7a42a040d2cf24fb differ diff --git a/fuzz/corpus/fuzz_write/06b708d3e8888ecbb4d92186c31ee937d3addf81 b/fuzz/corpus/fuzz_write/06b708d3e8888ecbb4d92186c31ee937d3addf81 new file mode 100644 index 00000000..2fd4f7b3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/06b708d3e8888ecbb4d92186c31ee937d3addf81 differ diff --git a/fuzz/corpus/fuzz_write/06c3ee9400f47b61158040cacbbad5c24d6ff761 b/fuzz/corpus/fuzz_write/06c3ee9400f47b61158040cacbbad5c24d6ff761 new file mode 100644 index 00000000..d56eeb45 Binary files /dev/null and b/fuzz/corpus/fuzz_write/06c3ee9400f47b61158040cacbbad5c24d6ff761 differ diff --git a/fuzz/corpus/fuzz_write/0707be474a67e1967132c6321efc671cdf60136c b/fuzz/corpus/fuzz_write/0707be474a67e1967132c6321efc671cdf60136c new file mode 100644 index 00000000..161f72cd Binary files /dev/null and b/fuzz/corpus/fuzz_write/0707be474a67e1967132c6321efc671cdf60136c differ diff --git a/fuzz/corpus/fuzz_write/070c742edd34918d96e4e6ca82087057a587238b b/fuzz/corpus/fuzz_write/070c742edd34918d96e4e6ca82087057a587238b new file mode 100644 index 00000000..3b9914a8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/070c742edd34918d96e4e6ca82087057a587238b differ diff --git a/fuzz/corpus/fuzz_write/0716d18ca014844d13653484e99f18f7ae3c776a b/fuzz/corpus/fuzz_write/0716d18ca014844d13653484e99f18f7ae3c776a new file mode 100644 index 00000000..4fe821ce Binary files /dev/null and b/fuzz/corpus/fuzz_write/0716d18ca014844d13653484e99f18f7ae3c776a differ diff --git a/fuzz/corpus/fuzz_write/0719454af6c281decdba5c0406d3d7a084b121e1 b/fuzz/corpus/fuzz_write/0719454af6c281decdba5c0406d3d7a084b121e1 new file mode 100644 index 00000000..baca4df7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0719454af6c281decdba5c0406d3d7a084b121e1 differ diff --git a/fuzz/corpus/fuzz_write/071a6ea6d32129b79267c7edb28306716a9ca08e b/fuzz/corpus/fuzz_write/071a6ea6d32129b79267c7edb28306716a9ca08e new file mode 100644 index 00000000..2a58847e Binary files /dev/null and b/fuzz/corpus/fuzz_write/071a6ea6d32129b79267c7edb28306716a9ca08e differ diff --git a/fuzz/corpus/fuzz_write/0731efef183d6deb9b48802ea72342a4d2288505 b/fuzz/corpus/fuzz_write/0731efef183d6deb9b48802ea72342a4d2288505 new file mode 100644 index 00000000..d74c9052 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0731efef183d6deb9b48802ea72342a4d2288505 differ diff --git a/fuzz/corpus/fuzz_write/0732ee7410f7abaaeb9796b4d2b575bfbf61bd10 b/fuzz/corpus/fuzz_write/0732ee7410f7abaaeb9796b4d2b575bfbf61bd10 new file mode 100644 index 00000000..6813050f --- /dev/null +++ b/fuzz/corpus/fuzz_write/0732ee7410f7abaaeb9796b4d2b575bfbf61bd10 @@ -0,0 +1 @@ +3PKK 0P# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/073616d7110caafd420f1e9c05fa02b90ad1fedf b/fuzz/corpus/fuzz_write/073616d7110caafd420f1e9c05fa02b90ad1fedf new file mode 100644 index 00000000..13ee1a41 Binary files /dev/null and b/fuzz/corpus/fuzz_write/073616d7110caafd420f1e9c05fa02b90ad1fedf differ diff --git a/fuzz/corpus/fuzz_write/0737fc3fe4906663cf2d2d3fb2b1807380098720 b/fuzz/corpus/fuzz_write/0737fc3fe4906663cf2d2d3fb2b1807380098720 new file mode 100644 index 00000000..6232890f Binary files /dev/null and b/fuzz/corpus/fuzz_write/0737fc3fe4906663cf2d2d3fb2b1807380098720 differ diff --git a/fuzz/corpus/fuzz_write/073e879622d006326f8df5a34cc91543a67e50a5 b/fuzz/corpus/fuzz_write/073e879622d006326f8df5a34cc91543a67e50a5 new file mode 100644 index 00000000..7043b9da Binary files /dev/null and b/fuzz/corpus/fuzz_write/073e879622d006326f8df5a34cc91543a67e50a5 differ diff --git a/fuzz/corpus/fuzz_write/073e9c4e7668bb3672034975898a92533281278f b/fuzz/corpus/fuzz_write/073e9c4e7668bb3672034975898a92533281278f new file mode 100644 index 00000000..78498fbd Binary files /dev/null and b/fuzz/corpus/fuzz_write/073e9c4e7668bb3672034975898a92533281278f differ diff --git a/fuzz/corpus/fuzz_write/0764df5bbdb9cfbbb8b006ea7921f1234fc2416b b/fuzz/corpus/fuzz_write/0764df5bbdb9cfbbb8b006ea7921f1234fc2416b new file mode 100644 index 00000000..2256f825 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0764df5bbdb9cfbbb8b006ea7921f1234fc2416b differ diff --git a/fuzz/corpus/fuzz_write/0777cebce058fb29d7cdfcba613a2e0212897573 b/fuzz/corpus/fuzz_write/0777cebce058fb29d7cdfcba613a2e0212897573 new file mode 100644 index 00000000..cf06eacb Binary files /dev/null and b/fuzz/corpus/fuzz_write/0777cebce058fb29d7cdfcba613a2e0212897573 differ diff --git a/fuzz/corpus/fuzz_write/07b42da70ab63a0face63f5817e0f1788ee03b85 b/fuzz/corpus/fuzz_write/07b42da70ab63a0face63f5817e0f1788ee03b85 new file mode 100644 index 00000000..8509e625 Binary files /dev/null and b/fuzz/corpus/fuzz_write/07b42da70ab63a0face63f5817e0f1788ee03b85 differ diff --git a/fuzz/corpus/fuzz_write/07bbc2ecd705c0387bf7d67ddeb24a9579e727a9 b/fuzz/corpus/fuzz_write/07bbc2ecd705c0387bf7d67ddeb24a9579e727a9 new file mode 100644 index 00000000..e7b36578 Binary files /dev/null and b/fuzz/corpus/fuzz_write/07bbc2ecd705c0387bf7d67ddeb24a9579e727a9 differ diff --git a/fuzz/corpus/fuzz_write/07d593565f388722b1a84b61799e90b47331227e b/fuzz/corpus/fuzz_write/07d593565f388722b1a84b61799e90b47331227e new file mode 100644 index 00000000..eac2b16b Binary files /dev/null and b/fuzz/corpus/fuzz_write/07d593565f388722b1a84b61799e90b47331227e differ diff --git a/fuzz/corpus/fuzz_write/07e08b752efbb692a75144d1061358315aea7922 b/fuzz/corpus/fuzz_write/07e08b752efbb692a75144d1061358315aea7922 new file mode 100644 index 00000000..5d9bfcc8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/07e08b752efbb692a75144d1061358315aea7922 differ diff --git a/fuzz/corpus/fuzz_write/07e653a7b7875c47fdabc2bf32f619065f8f0739 b/fuzz/corpus/fuzz_write/07e653a7b7875c47fdabc2bf32f619065f8f0739 new file mode 100644 index 00000000..01d41164 Binary files /dev/null and b/fuzz/corpus/fuzz_write/07e653a7b7875c47fdabc2bf32f619065f8f0739 differ diff --git a/fuzz/corpus/fuzz_write/07f23f33d1e752d6d2ee8af93098d9902e16d38f b/fuzz/corpus/fuzz_write/07f23f33d1e752d6d2ee8af93098d9902e16d38f new file mode 100644 index 00000000..22b867fb --- /dev/null +++ b/fuzz/corpus/fuzz_write/07f23f33d1e752d6d2ee8af93098d9902e16d38f @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/080c67685eb7e2e500bbb8492c362606f5c3c90c b/fuzz/corpus/fuzz_write/080c67685eb7e2e500bbb8492c362606f5c3c90c new file mode 100644 index 00000000..84c8821e Binary files /dev/null and b/fuzz/corpus/fuzz_write/080c67685eb7e2e500bbb8492c362606f5c3c90c differ diff --git a/fuzz/corpus/fuzz_write/082032abdbf2e9859c94a9c4ffabf2ecfb08b601 b/fuzz/corpus/fuzz_write/082032abdbf2e9859c94a9c4ffabf2ecfb08b601 new file mode 100644 index 00000000..17374e30 Binary files /dev/null and b/fuzz/corpus/fuzz_write/082032abdbf2e9859c94a9c4ffabf2ecfb08b601 differ diff --git a/fuzz/corpus/fuzz_write/08220b2a54482ffc228446b9ee448c8943f6783e b/fuzz/corpus/fuzz_write/08220b2a54482ffc228446b9ee448c8943f6783e new file mode 100644 index 00000000..0c7d7daf Binary files /dev/null and b/fuzz/corpus/fuzz_write/08220b2a54482ffc228446b9ee448c8943f6783e differ diff --git a/fuzz/corpus/fuzz_write/083938f078ce81e2485151b54f4612fec7da471f b/fuzz/corpus/fuzz_write/083938f078ce81e2485151b54f4612fec7da471f new file mode 100644 index 00000000..5806d7f6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/083938f078ce81e2485151b54f4612fec7da471f differ diff --git a/fuzz/corpus/fuzz_write/086361a802bf6a4914e71eeca84dc35244875d8d b/fuzz/corpus/fuzz_write/086361a802bf6a4914e71eeca84dc35244875d8d new file mode 100644 index 00000000..cb8f7957 Binary files /dev/null and b/fuzz/corpus/fuzz_write/086361a802bf6a4914e71eeca84dc35244875d8d differ diff --git a/fuzz/corpus/fuzz_write/086be795fe1d57f02ad7c27ec5dfedfb5869770f b/fuzz/corpus/fuzz_write/086be795fe1d57f02ad7c27ec5dfedfb5869770f new file mode 100644 index 00000000..17e39801 Binary files /dev/null and b/fuzz/corpus/fuzz_write/086be795fe1d57f02ad7c27ec5dfedfb5869770f differ diff --git a/fuzz/corpus/fuzz_write/087168f7396dc181a771747ca21de4275cc83115 b/fuzz/corpus/fuzz_write/087168f7396dc181a771747ca21de4275cc83115 new file mode 100644 index 00000000..e5be2f48 Binary files /dev/null and b/fuzz/corpus/fuzz_write/087168f7396dc181a771747ca21de4275cc83115 differ diff --git a/fuzz/corpus/fuzz_write/088514c0869ee0f7bade36b4a9074d2a8ff877a0 b/fuzz/corpus/fuzz_write/088514c0869ee0f7bade36b4a9074d2a8ff877a0 new file mode 100644 index 00000000..5d3e61b6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/088514c0869ee0f7bade36b4a9074d2a8ff877a0 differ diff --git a/fuzz/corpus/fuzz_write/089f8a80f9b06d014887ee26ca655087b8d2f1e3 b/fuzz/corpus/fuzz_write/089f8a80f9b06d014887ee26ca655087b8d2f1e3 new file mode 100644 index 00000000..cd5449bf Binary files /dev/null and b/fuzz/corpus/fuzz_write/089f8a80f9b06d014887ee26ca655087b8d2f1e3 differ diff --git a/fuzz/corpus/fuzz_write/08ab5cd4aa9a9d90b8f93f3ec3272019be067ea9 b/fuzz/corpus/fuzz_write/08ab5cd4aa9a9d90b8f93f3ec3272019be067ea9 new file mode 100644 index 00000000..ae790159 Binary files /dev/null and b/fuzz/corpus/fuzz_write/08ab5cd4aa9a9d90b8f93f3ec3272019be067ea9 differ diff --git a/fuzz/corpus/fuzz_write/08de672175d79cfadb813b8241eb571c2fd4cf0a b/fuzz/corpus/fuzz_write/08de672175d79cfadb813b8241eb571c2fd4cf0a new file mode 100644 index 00000000..a7dc710e Binary files /dev/null and b/fuzz/corpus/fuzz_write/08de672175d79cfadb813b8241eb571c2fd4cf0a differ diff --git a/fuzz/corpus/fuzz_write/08e57d25f4e25666d3122d9b7d08debf709d7b04 b/fuzz/corpus/fuzz_write/08e57d25f4e25666d3122d9b7d08debf709d7b04 new file mode 100644 index 00000000..911aaf63 Binary files /dev/null and b/fuzz/corpus/fuzz_write/08e57d25f4e25666d3122d9b7d08debf709d7b04 differ diff --git a/fuzz/corpus/fuzz_write/08fc66871b6317c5115dd1efe2a6f7dd2bd5f9e3 b/fuzz/corpus/fuzz_write/08fc66871b6317c5115dd1efe2a6f7dd2bd5f9e3 new file mode 100644 index 00000000..1ff8766f Binary files /dev/null and b/fuzz/corpus/fuzz_write/08fc66871b6317c5115dd1efe2a6f7dd2bd5f9e3 differ diff --git a/fuzz/corpus/fuzz_write/08fd96eff00588a60e86c2e91878cc5ed0c197b4 b/fuzz/corpus/fuzz_write/08fd96eff00588a60e86c2e91878cc5ed0c197b4 new file mode 100644 index 00000000..939e0b55 Binary files /dev/null and b/fuzz/corpus/fuzz_write/08fd96eff00588a60e86c2e91878cc5ed0c197b4 differ diff --git a/fuzz/corpus/fuzz_write/09139d55d799bb57a51f570c428538de51dd398b b/fuzz/corpus/fuzz_write/09139d55d799bb57a51f570c428538de51dd398b new file mode 100644 index 00000000..59607be9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/09139d55d799bb57a51f570c428538de51dd398b differ diff --git a/fuzz/corpus/fuzz_write/094b1a1b84ab5c4079c1726e75d3146680433b7d b/fuzz/corpus/fuzz_write/094b1a1b84ab5c4079c1726e75d3146680433b7d new file mode 100644 index 00000000..0544d99d Binary files /dev/null and b/fuzz/corpus/fuzz_write/094b1a1b84ab5c4079c1726e75d3146680433b7d differ diff --git a/fuzz/corpus/fuzz_write/09544660f877ea01912f8cc4a64e017099db46b0 b/fuzz/corpus/fuzz_write/09544660f877ea01912f8cc4a64e017099db46b0 new file mode 100644 index 00000000..f5f8db2a --- /dev/null +++ b/fuzz/corpus/fuzz_write/09544660f877ea01912f8cc4a64e017099db46b0 @@ -0,0 +1 @@ +()V5)../.`''/ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/09971ffe920050fe3df09cd96d5a4e18d2c3c330 b/fuzz/corpus/fuzz_write/09971ffe920050fe3df09cd96d5a4e18d2c3c330 new file mode 100644 index 00000000..4378336c Binary files /dev/null and b/fuzz/corpus/fuzz_write/09971ffe920050fe3df09cd96d5a4e18d2c3c330 differ diff --git a/fuzz/corpus/fuzz_write/09abb19995459e4382444531a2fc11bdd6166ee8 b/fuzz/corpus/fuzz_write/09abb19995459e4382444531a2fc11bdd6166ee8 new file mode 100644 index 00000000..1f08e5a6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/09abb19995459e4382444531a2fc11bdd6166ee8 differ diff --git a/fuzz/corpus/fuzz_write/09c11e7c61902ff1656cabb0a65122034634c483 b/fuzz/corpus/fuzz_write/09c11e7c61902ff1656cabb0a65122034634c483 new file mode 100644 index 00000000..edb068ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/09c11e7c61902ff1656cabb0a65122034634c483 differ diff --git a/fuzz/corpus/fuzz_write/09de3fbe19e4d2e2f408f8e981628c9fd6148287 b/fuzz/corpus/fuzz_write/09de3fbe19e4d2e2f408f8e981628c9fd6148287 new file mode 100644 index 00000000..889c2f68 Binary files /dev/null and b/fuzz/corpus/fuzz_write/09de3fbe19e4d2e2f408f8e981628c9fd6148287 differ diff --git a/fuzz/corpus/fuzz_write/09fb8809f87fca76400c123763ef81d5870cfd99 b/fuzz/corpus/fuzz_write/09fb8809f87fca76400c123763ef81d5870cfd99 new file mode 100644 index 00000000..cee6d3e8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/09fb8809f87fca76400c123763ef81d5870cfd99 differ diff --git a/fuzz/corpus/fuzz_write/0a0e0992c17eba3990548800c3bd9ea7120e34c5 b/fuzz/corpus/fuzz_write/0a0e0992c17eba3990548800c3bd9ea7120e34c5 new file mode 100644 index 00000000..7b410b63 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0a0e0992c17eba3990548800c3bd9ea7120e34c5 differ diff --git a/fuzz/corpus/fuzz_write/0a4b12fb9c44f946fa98ae42f7d86703ae7883ab b/fuzz/corpus/fuzz_write/0a4b12fb9c44f946fa98ae42f7d86703ae7883ab new file mode 100644 index 00000000..c8dfbf83 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0a4b12fb9c44f946fa98ae42f7d86703ae7883ab differ diff --git a/fuzz/corpus/fuzz_write/0a7a03158e03531dfb1f0c94cef4fdfd4b687fc7 b/fuzz/corpus/fuzz_write/0a7a03158e03531dfb1f0c94cef4fdfd4b687fc7 new file mode 100644 index 00000000..5176bc75 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0a7a03158e03531dfb1f0c94cef4fdfd4b687fc7 differ diff --git a/fuzz/corpus/fuzz_write/0a8f239f627e512a2dff7a06f36e8a092f09f95e b/fuzz/corpus/fuzz_write/0a8f239f627e512a2dff7a06f36e8a092f09f95e new file mode 100644 index 00000000..5bc632a3 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0a8f239f627e512a2dff7a06f36e8a092f09f95e @@ -0,0 +1 @@ +PK1/; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0a903c2d2f6a3a5bfe37252169f0d0e78b8c096f b/fuzz/corpus/fuzz_write/0a903c2d2f6a3a5bfe37252169f0d0e78b8c096f new file mode 100644 index 00000000..1ee7708a Binary files /dev/null and b/fuzz/corpus/fuzz_write/0a903c2d2f6a3a5bfe37252169f0d0e78b8c096f differ diff --git a/fuzz/corpus/fuzz_write/0aabde569d2840719d793ac28940020d4828bb7c b/fuzz/corpus/fuzz_write/0aabde569d2840719d793ac28940020d4828bb7c new file mode 100644 index 00000000..c65a8365 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0aabde569d2840719d793ac28940020d4828bb7c differ diff --git a/fuzz/corpus/fuzz_write/0aaf141df2e1b2176e0e71627f13a0a107da91ea b/fuzz/corpus/fuzz_write/0aaf141df2e1b2176e0e71627f13a0a107da91ea new file mode 100644 index 00000000..2c2f955f Binary files /dev/null and b/fuzz/corpus/fuzz_write/0aaf141df2e1b2176e0e71627f13a0a107da91ea differ diff --git a/fuzz/corpus/fuzz_write/0ab5847854a9ccf4e576b8dfee0d41fb4639a1fc b/fuzz/corpus/fuzz_write/0ab5847854a9ccf4e576b8dfee0d41fb4639a1fc new file mode 100644 index 00000000..06881f20 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ab5847854a9ccf4e576b8dfee0d41fb4639a1fc differ diff --git a/fuzz/corpus/fuzz_write/0b0bc1bc1865fb3d00085eb7ee4d6fd84309b64c b/fuzz/corpus/fuzz_write/0b0bc1bc1865fb3d00085eb7ee4d6fd84309b64c new file mode 100644 index 00000000..00187394 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0b0bc1bc1865fb3d00085eb7ee4d6fd84309b64c @@ -0,0 +1 @@ +PK#K!#&c !KPKP+K# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0b2f591a45e0a704ae6d980b42d1663c85f8df9e b/fuzz/corpus/fuzz_write/0b2f591a45e0a704ae6d980b42d1663c85f8df9e new file mode 100644 index 00000000..9358255a Binary files /dev/null and b/fuzz/corpus/fuzz_write/0b2f591a45e0a704ae6d980b42d1663c85f8df9e differ diff --git a/fuzz/corpus/fuzz_write/0b487b14f903d14e01b564977ba9c96bf73677ae b/fuzz/corpus/fuzz_write/0b487b14f903d14e01b564977ba9c96bf73677ae new file mode 100644 index 00000000..49570f4e Binary files /dev/null and b/fuzz/corpus/fuzz_write/0b487b14f903d14e01b564977ba9c96bf73677ae differ diff --git a/fuzz/corpus/fuzz_write/0b55f0767a92901cc87f8cb6821bcf437c706394 b/fuzz/corpus/fuzz_write/0b55f0767a92901cc87f8cb6821bcf437c706394 new file mode 100644 index 00000000..91bade26 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0b55f0767a92901cc87f8cb6821bcf437c706394 differ diff --git a/fuzz/corpus/fuzz_write/0b5bdf41b2bdeb5e690f6a8dc74a432ba763b363 b/fuzz/corpus/fuzz_write/0b5bdf41b2bdeb5e690f6a8dc74a432ba763b363 new file mode 100644 index 00000000..73c1027b Binary files /dev/null and b/fuzz/corpus/fuzz_write/0b5bdf41b2bdeb5e690f6a8dc74a432ba763b363 differ diff --git a/fuzz/corpus/fuzz_write/0c80ab8d18b6f0e4203c977e21cf5dc1c9030ec7 b/fuzz/corpus/fuzz_write/0c80ab8d18b6f0e4203c977e21cf5dc1c9030ec7 new file mode 100644 index 00000000..8928ef5f Binary files /dev/null and b/fuzz/corpus/fuzz_write/0c80ab8d18b6f0e4203c977e21cf5dc1c9030ec7 differ diff --git a/fuzz/corpus/fuzz_write/0ca22d2e1accf2c641a259f3276e16137f4fb7c3 b/fuzz/corpus/fuzz_write/0ca22d2e1accf2c641a259f3276e16137f4fb7c3 new file mode 100644 index 00000000..a777a7d4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ca22d2e1accf2c641a259f3276e16137f4fb7c3 differ diff --git a/fuzz/corpus/fuzz_write/0ca4c04ef081431969d33f688b5fa3a7ce634a34 b/fuzz/corpus/fuzz_write/0ca4c04ef081431969d33f688b5fa3a7ce634a34 new file mode 100644 index 00000000..040b7348 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ca4c04ef081431969d33f688b5fa3a7ce634a34 differ diff --git a/fuzz/corpus/fuzz_write/0caf6be486f05ab37df519f92510489117e9d940 b/fuzz/corpus/fuzz_write/0caf6be486f05ab37df519f92510489117e9d940 new file mode 100644 index 00000000..7a1c6b58 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0caf6be486f05ab37df519f92510489117e9d940 differ diff --git a/fuzz/corpus/fuzz_write/0ced6771ac1089c734be7747d75301e2b5553a14 b/fuzz/corpus/fuzz_write/0ced6771ac1089c734be7747d75301e2b5553a14 new file mode 100644 index 00000000..687da572 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0ced6771ac1089c734be7747d75301e2b5553a14 @@ -0,0 +1 @@ +/../KP2 WPPK,5#[ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0cf64107a6eba11649e00984df90cd29fa71e5f7 b/fuzz/corpus/fuzz_write/0cf64107a6eba11649e00984df90cd29fa71e5f7 new file mode 100644 index 00000000..e059d159 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0cf64107a6eba11649e00984df90cd29fa71e5f7 differ diff --git a/fuzz/corpus/fuzz_write/0d10fe56df93094a4cc4a8ec737d9b034f88751f b/fuzz/corpus/fuzz_write/0d10fe56df93094a4cc4a8ec737d9b034f88751f new file mode 100644 index 00000000..4d540197 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d10fe56df93094a4cc4a8ec737d9b034f88751f differ diff --git a/fuzz/corpus/fuzz_write/0d17c363d165283f2809c28397ecf0cfc778b29a b/fuzz/corpus/fuzz_write/0d17c363d165283f2809c28397ecf0cfc778b29a new file mode 100644 index 00000000..e2b8ee7d Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d17c363d165283f2809c28397ecf0cfc778b29a differ diff --git a/fuzz/corpus/fuzz_write/0d2e8822b5e169aadfc497659c5ee5af8ceb8366 b/fuzz/corpus/fuzz_write/0d2e8822b5e169aadfc497659c5ee5af8ceb8366 new file mode 100644 index 00000000..e91e8409 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0d2e8822b5e169aadfc497659c5ee5af8ceb8366 @@ -0,0 +1 @@ +((WWWWWWWWWPWWW)WWWWWPK \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0d5135e7a79b9bf48c97623228c7742eb057cf40 b/fuzz/corpus/fuzz_write/0d5135e7a79b9bf48c97623228c7742eb057cf40 new file mode 100644 index 00000000..4687df9c Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d5135e7a79b9bf48c97623228c7742eb057cf40 differ diff --git a/fuzz/corpus/fuzz_write/0d5810b6231f49ba479bfed272307c5bbe2067d1 b/fuzz/corpus/fuzz_write/0d5810b6231f49ba479bfed272307c5bbe2067d1 new file mode 100644 index 00000000..5699bfd1 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0d5810b6231f49ba479bfed272307c5bbe2067d1 @@ -0,0 +1 @@ +)V ))..../V \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0d58132a918a1fce81a4eba68f999189e400f6cf b/fuzz/corpus/fuzz_write/0d58132a918a1fce81a4eba68f999189e400f6cf new file mode 100644 index 00000000..83a5478b Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d58132a918a1fce81a4eba68f999189e400f6cf differ diff --git a/fuzz/corpus/fuzz_write/0d5db8fca1b6da982903e6f116f20a24d0abc7e6 b/fuzz/corpus/fuzz_write/0d5db8fca1b6da982903e6f116f20a24d0abc7e6 new file mode 100644 index 00000000..3e39d9c9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d5db8fca1b6da982903e6f116f20a24d0abc7e6 differ diff --git a/fuzz/corpus/fuzz_write/0d9c10bd18db1c4094217c0023e069168183cb47 b/fuzz/corpus/fuzz_write/0d9c10bd18db1c4094217c0023e069168183cb47 new file mode 100644 index 00000000..18be183d Binary files /dev/null and b/fuzz/corpus/fuzz_write/0d9c10bd18db1c4094217c0023e069168183cb47 differ diff --git a/fuzz/corpus/fuzz_write/0da768c0e35e5f1da0c2be3fb2116d3979255a66 b/fuzz/corpus/fuzz_write/0da768c0e35e5f1da0c2be3fb2116d3979255a66 new file mode 100644 index 00000000..7b949429 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0da768c0e35e5f1da0c2be3fb2116d3979255a66 differ diff --git a/fuzz/corpus/fuzz_write/0dc0a3ce88b15e00582e064ed9c4fb8052273ee5 b/fuzz/corpus/fuzz_write/0dc0a3ce88b15e00582e064ed9c4fb8052273ee5 new file mode 100644 index 00000000..989de461 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0dc0a3ce88b15e00582e064ed9c4fb8052273ee5 differ diff --git a/fuzz/corpus/fuzz_write/0dd0515272b04d724f5a31a8bb640c22c2139fb6 b/fuzz/corpus/fuzz_write/0dd0515272b04d724f5a31a8bb640c22c2139fb6 new file mode 100644 index 00000000..c452cf84 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0dd0515272b04d724f5a31a8bb640c22c2139fb6 differ diff --git a/fuzz/corpus/fuzz_write/0ddfd6399b638dc84061756bf37405f7c5f4be39 b/fuzz/corpus/fuzz_write/0ddfd6399b638dc84061756bf37405f7c5f4be39 new file mode 100644 index 00000000..182f4367 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ddfd6399b638dc84061756bf37405f7c5f4be39 differ diff --git a/fuzz/corpus/fuzz_write/0e1038b580e063a37caeb2e8700492f161ab6376 b/fuzz/corpus/fuzz_write/0e1038b580e063a37caeb2e8700492f161ab6376 new file mode 100644 index 00000000..ca9e5f48 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0e1038b580e063a37caeb2e8700492f161ab6376 differ diff --git a/fuzz/corpus/fuzz_write/0e3effd28bc678c71bfe332197815899c25a98d0 b/fuzz/corpus/fuzz_write/0e3effd28bc678c71bfe332197815899c25a98d0 new file mode 100644 index 00000000..84cd8087 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0e3effd28bc678c71bfe332197815899c25a98d0 differ diff --git a/fuzz/corpus/fuzz_write/0e491b56fdb15a7a54adc19db23d9c90506e77da b/fuzz/corpus/fuzz_write/0e491b56fdb15a7a54adc19db23d9c90506e77da new file mode 100644 index 00000000..89f3078a Binary files /dev/null and b/fuzz/corpus/fuzz_write/0e491b56fdb15a7a54adc19db23d9c90506e77da differ diff --git a/fuzz/corpus/fuzz_write/0e492bb25c37b3c51c050e3be45a9b1035926e55 b/fuzz/corpus/fuzz_write/0e492bb25c37b3c51c050e3be45a9b1035926e55 new file mode 100644 index 00000000..bbb3c297 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0e492bb25c37b3c51c050e3be45a9b1035926e55 differ diff --git a/fuzz/corpus/fuzz_write/0e7ca710153f19569a1cb26f9c528e1ae26d3d5a b/fuzz/corpus/fuzz_write/0e7ca710153f19569a1cb26f9c528e1ae26d3d5a new file mode 100644 index 00000000..223b5e84 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0e7ca710153f19569a1cb26f9c528e1ae26d3d5a differ diff --git a/fuzz/corpus/fuzz_write/0eabde1680227e799be7bb7df9b7c59037714be3 b/fuzz/corpus/fuzz_write/0eabde1680227e799be7bb7df9b7c59037714be3 new file mode 100644 index 00000000..7d0643bf Binary files /dev/null and b/fuzz/corpus/fuzz_write/0eabde1680227e799be7bb7df9b7c59037714be3 differ diff --git a/fuzz/corpus/fuzz_write/0ee271387649251be40114992712d02058aab4df b/fuzz/corpus/fuzz_write/0ee271387649251be40114992712d02058aab4df new file mode 100644 index 00000000..3118371b Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ee271387649251be40114992712d02058aab4df differ diff --git a/fuzz/corpus/fuzz_write/0ee93ff555fac43aa3ded85894597c71a41cab00 b/fuzz/corpus/fuzz_write/0ee93ff555fac43aa3ded85894597c71a41cab00 new file mode 100644 index 00000000..998bba8d Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ee93ff555fac43aa3ded85894597c71a41cab00 differ diff --git a/fuzz/corpus/fuzz_write/0eeba39f288edc360c86f4293d84a9ea92badf28 b/fuzz/corpus/fuzz_write/0eeba39f288edc360c86f4293d84a9ea92badf28 new file mode 100644 index 00000000..eca8c894 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0eeba39f288edc360c86f4293d84a9ea92badf28 differ diff --git a/fuzz/corpus/fuzz_write/0f116aeb43e4f8152c6c0a2bd19b2c6914fc5bff b/fuzz/corpus/fuzz_write/0f116aeb43e4f8152c6c0a2bd19b2c6914fc5bff new file mode 100644 index 00000000..35b0ff88 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f116aeb43e4f8152c6c0a2bd19b2c6914fc5bff differ diff --git a/fuzz/corpus/fuzz_write/0f150f34d502d32f781972e1713f70a7551bbe73 b/fuzz/corpus/fuzz_write/0f150f34d502d32f781972e1713f70a7551bbe73 new file mode 100644 index 00000000..74312978 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f150f34d502d32f781972e1713f70a7551bbe73 differ diff --git a/fuzz/corpus/fuzz_write/0f203c1257efdf2a0bd2c6a5667c7a40c22eb5f4 b/fuzz/corpus/fuzz_write/0f203c1257efdf2a0bd2c6a5667c7a40c22eb5f4 new file mode 100644 index 00000000..83428e4c Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f203c1257efdf2a0bd2c6a5667c7a40c22eb5f4 differ diff --git a/fuzz/corpus/fuzz_write/0f2138e0233dd22c8713e8cf2ae83fd8fe499788 b/fuzz/corpus/fuzz_write/0f2138e0233dd22c8713e8cf2ae83fd8fe499788 new file mode 100644 index 00000000..cd92f22e Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f2138e0233dd22c8713e8cf2ae83fd8fe499788 differ diff --git a/fuzz/corpus/fuzz_write/0f8327c18c634105c0aead5f25f748a3db467892 b/fuzz/corpus/fuzz_write/0f8327c18c634105c0aead5f25f748a3db467892 new file mode 100644 index 00000000..6bce5893 --- /dev/null +++ b/fuzz/corpus/fuzz_write/0f8327c18c634105c0aead5f25f748a3db467892 @@ -0,0 +1,2 @@ + +O;,..7 \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/0f8814ef82ebeec52dcea0a84a14d8842e746bc9 b/fuzz/corpus/fuzz_write/0f8814ef82ebeec52dcea0a84a14d8842e746bc9 new file mode 100644 index 00000000..74879612 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f8814ef82ebeec52dcea0a84a14d8842e746bc9 differ diff --git a/fuzz/corpus/fuzz_write/0f8e710ed5a335b99ce9f1bd799c58707cf6ddcc b/fuzz/corpus/fuzz_write/0f8e710ed5a335b99ce9f1bd799c58707cf6ddcc new file mode 100644 index 00000000..2cf7f9e7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f8e710ed5a335b99ce9f1bd799c58707cf6ddcc differ diff --git a/fuzz/corpus/fuzz_write/0f8f0651c8f64630c1b325e0bfed83d1f366d25c b/fuzz/corpus/fuzz_write/0f8f0651c8f64630c1b325e0bfed83d1f366d25c new file mode 100644 index 00000000..839b086e Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f8f0651c8f64630c1b325e0bfed83d1f366d25c differ diff --git a/fuzz/corpus/fuzz_write/0f9d83614d98fd9698e9bb5e365da201fc99f6b7 b/fuzz/corpus/fuzz_write/0f9d83614d98fd9698e9bb5e365da201fc99f6b7 new file mode 100644 index 00000000..7bcf9c01 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0f9d83614d98fd9698e9bb5e365da201fc99f6b7 differ diff --git a/fuzz/corpus/fuzz_write/0fd29c738821edffc8dc82dcfc0388f5d7cbf60a b/fuzz/corpus/fuzz_write/0fd29c738821edffc8dc82dcfc0388f5d7cbf60a new file mode 100644 index 00000000..776078f6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0fd29c738821edffc8dc82dcfc0388f5d7cbf60a differ diff --git a/fuzz/corpus/fuzz_write/0fdc378b816d3e0dc2287da60ae13851e2c0cd99 b/fuzz/corpus/fuzz_write/0fdc378b816d3e0dc2287da60ae13851e2c0cd99 new file mode 100644 index 00000000..7ade7092 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0fdc378b816d3e0dc2287da60ae13851e2c0cd99 differ diff --git a/fuzz/corpus/fuzz_write/0ff82939c334d84be0269ea3395f796b4fcd57bf b/fuzz/corpus/fuzz_write/0ff82939c334d84be0269ea3395f796b4fcd57bf new file mode 100644 index 00000000..14f1b8a5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ff82939c334d84be0269ea3395f796b4fcd57bf differ diff --git a/fuzz/corpus/fuzz_write/0ffb743a2304e0d090707b3e322529d1e5c7835d b/fuzz/corpus/fuzz_write/0ffb743a2304e0d090707b3e322529d1e5c7835d new file mode 100644 index 00000000..948c857d Binary files /dev/null and b/fuzz/corpus/fuzz_write/0ffb743a2304e0d090707b3e322529d1e5c7835d differ diff --git a/fuzz/corpus/fuzz_write/10054456f90481600517a0353a47896870f21273 b/fuzz/corpus/fuzz_write/10054456f90481600517a0353a47896870f21273 new file mode 100644 index 00000000..dd6d902f Binary files /dev/null and b/fuzz/corpus/fuzz_write/10054456f90481600517a0353a47896870f21273 differ diff --git a/fuzz/corpus/fuzz_write/10125de7309e828ecc3dd052123dbb5c831c043f b/fuzz/corpus/fuzz_write/10125de7309e828ecc3dd052123dbb5c831c043f new file mode 100644 index 00000000..a4e5171e Binary files /dev/null and b/fuzz/corpus/fuzz_write/10125de7309e828ecc3dd052123dbb5c831c043f differ diff --git a/fuzz/corpus/fuzz_write/102516255e6a1feafef7bbdfdf0f16ec83a9278c b/fuzz/corpus/fuzz_write/102516255e6a1feafef7bbdfdf0f16ec83a9278c new file mode 100644 index 00000000..d11b4d2a Binary files /dev/null and b/fuzz/corpus/fuzz_write/102516255e6a1feafef7bbdfdf0f16ec83a9278c differ diff --git a/fuzz/corpus/fuzz_write/105739f06cd04aae00468f213813f4d766ef8a3b b/fuzz/corpus/fuzz_write/105739f06cd04aae00468f213813f4d766ef8a3b new file mode 100644 index 00000000..f348fccc Binary files /dev/null and b/fuzz/corpus/fuzz_write/105739f06cd04aae00468f213813f4d766ef8a3b differ diff --git a/fuzz/corpus/fuzz_write/107b70d2033af0505dcff696bbed45d1d444437c b/fuzz/corpus/fuzz_write/107b70d2033af0505dcff696bbed45d1d444437c new file mode 100644 index 00000000..218bffbf Binary files /dev/null and b/fuzz/corpus/fuzz_write/107b70d2033af0505dcff696bbed45d1d444437c differ diff --git a/fuzz/corpus/fuzz_write/10c4e3bbeba5dadc0235cc1e3aa1536be94f3ab2 b/fuzz/corpus/fuzz_write/10c4e3bbeba5dadc0235cc1e3aa1536be94f3ab2 new file mode 100644 index 00000000..c9c0d320 Binary files /dev/null and b/fuzz/corpus/fuzz_write/10c4e3bbeba5dadc0235cc1e3aa1536be94f3ab2 differ diff --git a/fuzz/corpus/fuzz_write/11135546fa9fbd415b659926f4425da76942528e b/fuzz/corpus/fuzz_write/11135546fa9fbd415b659926f4425da76942528e new file mode 100644 index 00000000..f2ce2f13 Binary files /dev/null and b/fuzz/corpus/fuzz_write/11135546fa9fbd415b659926f4425da76942528e differ diff --git a/fuzz/corpus/fuzz_write/112349d405d8360a3c99f1ddeb1899a148ba7e9d b/fuzz/corpus/fuzz_write/112349d405d8360a3c99f1ddeb1899a148ba7e9d new file mode 100644 index 00000000..7b4fc431 Binary files /dev/null and b/fuzz/corpus/fuzz_write/112349d405d8360a3c99f1ddeb1899a148ba7e9d differ diff --git a/fuzz/corpus/fuzz_write/1146705e747116ff6757a1ba8377eaf38da33ae7 b/fuzz/corpus/fuzz_write/1146705e747116ff6757a1ba8377eaf38da33ae7 new file mode 100644 index 00000000..c4c45f6e Binary files /dev/null and b/fuzz/corpus/fuzz_write/1146705e747116ff6757a1ba8377eaf38da33ae7 differ diff --git a/fuzz/corpus/fuzz_write/116862711935dba99c745bf4f44610cdb69964f1 b/fuzz/corpus/fuzz_write/116862711935dba99c745bf4f44610cdb69964f1 new file mode 100644 index 00000000..beb1438f Binary files /dev/null and b/fuzz/corpus/fuzz_write/116862711935dba99c745bf4f44610cdb69964f1 differ diff --git a/fuzz/corpus/fuzz_write/119d57144eee7067bc052cc2c65af191d737692c b/fuzz/corpus/fuzz_write/119d57144eee7067bc052cc2c65af191d737692c new file mode 100644 index 00000000..6067e9ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/119d57144eee7067bc052cc2c65af191d737692c differ diff --git a/fuzz/corpus/fuzz_write/11a549edbc3b74be242dcb80fbe3a12befbf80ae b/fuzz/corpus/fuzz_write/11a549edbc3b74be242dcb80fbe3a12befbf80ae new file mode 100644 index 00000000..746b2fb7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/11a549edbc3b74be242dcb80fbe3a12befbf80ae differ diff --git a/fuzz/corpus/fuzz_write/11f0415d958f9eab449c39076a82388c99ab2a78 b/fuzz/corpus/fuzz_write/11f0415d958f9eab449c39076a82388c99ab2a78 new file mode 100644 index 00000000..984c6822 Binary files /dev/null and b/fuzz/corpus/fuzz_write/11f0415d958f9eab449c39076a82388c99ab2a78 differ diff --git a/fuzz/corpus/fuzz_write/11fbabd68efe6de0e73cafedd50c6a5752b9681b b/fuzz/corpus/fuzz_write/11fbabd68efe6de0e73cafedd50c6a5752b9681b new file mode 100644 index 00000000..e6672872 Binary files /dev/null and b/fuzz/corpus/fuzz_write/11fbabd68efe6de0e73cafedd50c6a5752b9681b differ diff --git a/fuzz/corpus/fuzz_write/120f63d77b1b74e3426e9d3a440e5df1104c91e3 b/fuzz/corpus/fuzz_write/120f63d77b1b74e3426e9d3a440e5df1104c91e3 new file mode 100644 index 00000000..c259545f Binary files /dev/null and b/fuzz/corpus/fuzz_write/120f63d77b1b74e3426e9d3a440e5df1104c91e3 differ diff --git a/fuzz/corpus/fuzz_write/1211ce50a41cfce556f8683bef04fa8be0c970e0 b/fuzz/corpus/fuzz_write/1211ce50a41cfce556f8683bef04fa8be0c970e0 new file mode 100644 index 00000000..89db200e Binary files /dev/null and b/fuzz/corpus/fuzz_write/1211ce50a41cfce556f8683bef04fa8be0c970e0 differ diff --git a/fuzz/corpus/fuzz_write/1236506c3cb8712511913ad4064c5eb866af1a06 b/fuzz/corpus/fuzz_write/1236506c3cb8712511913ad4064c5eb866af1a06 new file mode 100644 index 00000000..e27e3a05 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1236506c3cb8712511913ad4064c5eb866af1a06 differ diff --git a/fuzz/corpus/fuzz_write/1244ee6f4ecc0ef4498cb538717fe76a21a3e260 b/fuzz/corpus/fuzz_write/1244ee6f4ecc0ef4498cb538717fe76a21a3e260 new file mode 100644 index 00000000..eb71f2a1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1244ee6f4ecc0ef4498cb538717fe76a21a3e260 differ diff --git a/fuzz/corpus/fuzz_write/12a0bd572551b3c9694dd9c8efebce4059f0ed1b b/fuzz/corpus/fuzz_write/12a0bd572551b3c9694dd9c8efebce4059f0ed1b new file mode 100644 index 00000000..a715c851 Binary files /dev/null and b/fuzz/corpus/fuzz_write/12a0bd572551b3c9694dd9c8efebce4059f0ed1b differ diff --git a/fuzz/corpus/fuzz_write/12c35f8dfa79f73e22a7488abc850ce7dee903f5 b/fuzz/corpus/fuzz_write/12c35f8dfa79f73e22a7488abc850ce7dee903f5 new file mode 100644 index 00000000..871f740b Binary files /dev/null and b/fuzz/corpus/fuzz_write/12c35f8dfa79f73e22a7488abc850ce7dee903f5 differ diff --git a/fuzz/corpus/fuzz_write/12eac849f0a9e992dde0a7ad2127cc22c2c92fbe b/fuzz/corpus/fuzz_write/12eac849f0a9e992dde0a7ad2127cc22c2c92fbe new file mode 100644 index 00000000..16f3ecc7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/12eac849f0a9e992dde0a7ad2127cc22c2c92fbe differ diff --git a/fuzz/corpus/fuzz_write/13195ad7d24015ae5e2556114233ca1a8f08453e b/fuzz/corpus/fuzz_write/13195ad7d24015ae5e2556114233ca1a8f08453e new file mode 100644 index 00000000..515c4630 Binary files /dev/null and b/fuzz/corpus/fuzz_write/13195ad7d24015ae5e2556114233ca1a8f08453e differ diff --git a/fuzz/corpus/fuzz_write/1355c565b720098b4dc9184c16082682843d1731 b/fuzz/corpus/fuzz_write/1355c565b720098b4dc9184c16082682843d1731 new file mode 100644 index 00000000..b432a02c --- /dev/null +++ b/fuzz/corpus/fuzz_write/1355c565b720098b4dc9184c16082682843d1731 @@ -0,0 +1 @@ +;ĵ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/136205557083248dc607c03212a16b6fc840107e b/fuzz/corpus/fuzz_write/136205557083248dc607c03212a16b6fc840107e new file mode 100644 index 00000000..9b32b55a Binary files /dev/null and b/fuzz/corpus/fuzz_write/136205557083248dc607c03212a16b6fc840107e differ diff --git a/fuzz/corpus/fuzz_write/137216aabd34044c9c80723aa845ec1c11354ada b/fuzz/corpus/fuzz_write/137216aabd34044c9c80723aa845ec1c11354ada new file mode 100644 index 00000000..704e183c Binary files /dev/null and b/fuzz/corpus/fuzz_write/137216aabd34044c9c80723aa845ec1c11354ada differ diff --git a/fuzz/corpus/fuzz_write/137a094a580a18eb8d1eaf4355cc4ee57fa9cce7 b/fuzz/corpus/fuzz_write/137a094a580a18eb8d1eaf4355cc4ee57fa9cce7 new file mode 100644 index 00000000..7e3d71f3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/137a094a580a18eb8d1eaf4355cc4ee57fa9cce7 differ diff --git a/fuzz/corpus/fuzz_write/137f610915dc30163ef14bf4e398e5a991289832 b/fuzz/corpus/fuzz_write/137f610915dc30163ef14bf4e398e5a991289832 new file mode 100644 index 00000000..77a5eaff --- /dev/null +++ b/fuzz/corpus/fuzz_write/137f610915dc30163ef14bf4e398e5a991289832 @@ -0,0 +1 @@ +(E)V/../.' \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1397e00d04b4a4363e24935cdc0d24dc9be3f341 b/fuzz/corpus/fuzz_write/1397e00d04b4a4363e24935cdc0d24dc9be3f341 new file mode 100644 index 00000000..cbfc5cc0 --- /dev/null +++ b/fuzz/corpus/fuzz_write/1397e00d04b4a4363e24935cdc0d24dc9be3f341 @@ -0,0 +1 @@ +3  @-!3 ?-!../!# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/13b2b4c83977238beda2fc129237b3da50390c97 b/fuzz/corpus/fuzz_write/13b2b4c83977238beda2fc129237b3da50390c97 new file mode 100644 index 00000000..b9ae5e40 Binary files /dev/null and b/fuzz/corpus/fuzz_write/13b2b4c83977238beda2fc129237b3da50390c97 differ diff --git a/fuzz/corpus/fuzz_write/13c67615a8a6034b377e146ff6323fc766fa135d b/fuzz/corpus/fuzz_write/13c67615a8a6034b377e146ff6323fc766fa135d new file mode 100644 index 00000000..b6a60a56 Binary files /dev/null and b/fuzz/corpus/fuzz_write/13c67615a8a6034b377e146ff6323fc766fa135d differ diff --git a/fuzz/corpus/fuzz_write/13d9dd0f93a095fc88546eca2c1b2af0632a5966 b/fuzz/corpus/fuzz_write/13d9dd0f93a095fc88546eca2c1b2af0632a5966 new file mode 100644 index 00000000..4ad67c95 --- /dev/null +++ b/fuzz/corpus/fuzz_write/13d9dd0f93a095fc88546eca2c1b2af0632a5966 @@ -0,0 +1 @@ +ZPK;KKP+z; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1406d7d3baa48de9ec16fda10f22ef089488fdea b/fuzz/corpus/fuzz_write/1406d7d3baa48de9ec16fda10f22ef089488fdea new file mode 100644 index 00000000..16367ca1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1406d7d3baa48de9ec16fda10f22ef089488fdea differ diff --git a/fuzz/corpus/fuzz_write/140e63d1bff217d9b729b70a1d0778576b096fac b/fuzz/corpus/fuzz_write/140e63d1bff217d9b729b70a1d0778576b096fac new file mode 100644 index 00000000..a15442ce Binary files /dev/null and b/fuzz/corpus/fuzz_write/140e63d1bff217d9b729b70a1d0778576b096fac differ diff --git a/fuzz/corpus/fuzz_write/140f9ce52ccadc861e061119ef0b9e007104fc76 b/fuzz/corpus/fuzz_write/140f9ce52ccadc861e061119ef0b9e007104fc76 new file mode 100644 index 00000000..51a173fb Binary files /dev/null and b/fuzz/corpus/fuzz_write/140f9ce52ccadc861e061119ef0b9e007104fc76 differ diff --git a/fuzz/corpus/fuzz_write/14313570afe88f44050439a4483d70585d923094 b/fuzz/corpus/fuzz_write/14313570afe88f44050439a4483d70585d923094 new file mode 100644 index 00000000..2e7faa55 Binary files /dev/null and b/fuzz/corpus/fuzz_write/14313570afe88f44050439a4483d70585d923094 differ diff --git a/fuzz/corpus/fuzz_write/1442016cef04075ac82efd297866497c1f4c886f b/fuzz/corpus/fuzz_write/1442016cef04075ac82efd297866497c1f4c886f new file mode 100644 index 00000000..797b85e9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1442016cef04075ac82efd297866497c1f4c886f differ diff --git a/fuzz/corpus/fuzz_write/1464276add78f2e1262ebcbbb9f780b6a9b415a8 b/fuzz/corpus/fuzz_write/1464276add78f2e1262ebcbbb9f780b6a9b415a8 new file mode 100644 index 00000000..7314cde8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1464276add78f2e1262ebcbbb9f780b6a9b415a8 differ diff --git a/fuzz/corpus/fuzz_write/1465f6eebbd2fa6da40ce2617dfe51942be666f8 b/fuzz/corpus/fuzz_write/1465f6eebbd2fa6da40ce2617dfe51942be666f8 new file mode 100644 index 00000000..474b5496 --- /dev/null +++ b/fuzz/corpus/fuzz_write/1465f6eebbd2fa6da40ce2617dfe51942be666f8 @@ -0,0 +1 @@ +(EkNe.. \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1466707c8271b760e2178cc9210921eeeb73bc61 b/fuzz/corpus/fuzz_write/1466707c8271b760e2178cc9210921eeeb73bc61 new file mode 100644 index 00000000..4e3514fe Binary files /dev/null and b/fuzz/corpus/fuzz_write/1466707c8271b760e2178cc9210921eeeb73bc61 differ diff --git a/fuzz/corpus/fuzz_write/146b6b2dc2e86f4c98a42036bcb46a657fecb7e1 b/fuzz/corpus/fuzz_write/146b6b2dc2e86f4c98a42036bcb46a657fecb7e1 new file mode 100644 index 00000000..1448c139 Binary files /dev/null and b/fuzz/corpus/fuzz_write/146b6b2dc2e86f4c98a42036bcb46a657fecb7e1 differ diff --git a/fuzz/corpus/fuzz_write/14bcd92af8bd429b201ee69bae0b96f56e803084 b/fuzz/corpus/fuzz_write/14bcd92af8bd429b201ee69bae0b96f56e803084 new file mode 100644 index 00000000..9dfeaf8e --- /dev/null +++ b/fuzz/corpus/fuzz_write/14bcd92af8bd429b201ee69bae0b96f56e803084 @@ -0,0 +1 @@ +]!PK#mZ󠠠.mZ󠠠 \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/14cca7526c8f410f90d9eddc4bd4d941c0a7f953 b/fuzz/corpus/fuzz_write/14cca7526c8f410f90d9eddc4bd4d941c0a7f953 new file mode 100644 index 00000000..a4a7cca3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/14cca7526c8f410f90d9eddc4bd4d941c0a7f953 differ diff --git a/fuzz/corpus/fuzz_write/14ee0538de24c737c0e3c3843adbfad0c618ca83 b/fuzz/corpus/fuzz_write/14ee0538de24c737c0e3c3843adbfad0c618ca83 new file mode 100644 index 00000000..ffb10e71 Binary files /dev/null and b/fuzz/corpus/fuzz_write/14ee0538de24c737c0e3c3843adbfad0c618ca83 differ diff --git a/fuzz/corpus/fuzz_write/1517754125622b392925fa9001a16f121386f58a b/fuzz/corpus/fuzz_write/1517754125622b392925fa9001a16f121386f58a new file mode 100644 index 00000000..e696d332 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1517754125622b392925fa9001a16f121386f58a differ diff --git a/fuzz/corpus/fuzz_write/154e0ed488cac7e9ad08b2ad1dbabf6fff51b6b9 b/fuzz/corpus/fuzz_write/154e0ed488cac7e9ad08b2ad1dbabf6fff51b6b9 new file mode 100644 index 00000000..b31dfbf0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/154e0ed488cac7e9ad08b2ad1dbabf6fff51b6b9 differ diff --git a/fuzz/corpus/fuzz_write/15696b74cacf2fd52dc014352875bc8777a0ffed b/fuzz/corpus/fuzz_write/15696b74cacf2fd52dc014352875bc8777a0ffed new file mode 100644 index 00000000..9e7c88a2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/15696b74cacf2fd52dc014352875bc8777a0ffed differ diff --git a/fuzz/corpus/fuzz_write/15737a81377389f230477f5092dd8db425bbf1c9 b/fuzz/corpus/fuzz_write/15737a81377389f230477f5092dd8db425bbf1c9 new file mode 100644 index 00000000..4f4e682e Binary files /dev/null and b/fuzz/corpus/fuzz_write/15737a81377389f230477f5092dd8db425bbf1c9 differ diff --git a/fuzz/corpus/fuzz_write/15c1dcdc884f9e67240856f8161061a836fd7e25 b/fuzz/corpus/fuzz_write/15c1dcdc884f9e67240856f8161061a836fd7e25 new file mode 100644 index 00000000..8f4a943e Binary files /dev/null and b/fuzz/corpus/fuzz_write/15c1dcdc884f9e67240856f8161061a836fd7e25 differ diff --git a/fuzz/corpus/fuzz_write/15de9fca69cf0e2c6be30f976c94fde6ad06c040 b/fuzz/corpus/fuzz_write/15de9fca69cf0e2c6be30f976c94fde6ad06c040 new file mode 100644 index 00000000..3281bf62 Binary files /dev/null and b/fuzz/corpus/fuzz_write/15de9fca69cf0e2c6be30f976c94fde6ad06c040 differ diff --git a/fuzz/corpus/fuzz_write/15e889d2c1cfbd95d81a96a9186ba9b850e16ec4 b/fuzz/corpus/fuzz_write/15e889d2c1cfbd95d81a96a9186ba9b850e16ec4 new file mode 100644 index 00000000..cc7db99d Binary files /dev/null and b/fuzz/corpus/fuzz_write/15e889d2c1cfbd95d81a96a9186ba9b850e16ec4 differ diff --git a/fuzz/corpus/fuzz_write/16065e1fc30244504f2ba9d99f8f4a9aa9bb7252 b/fuzz/corpus/fuzz_write/16065e1fc30244504f2ba9d99f8f4a9aa9bb7252 new file mode 100644 index 00000000..b1090961 Binary files /dev/null and b/fuzz/corpus/fuzz_write/16065e1fc30244504f2ba9d99f8f4a9aa9bb7252 differ diff --git a/fuzz/corpus/fuzz_write/161fca94c35eae47ca9f2f8863b3ca88d2eca6ba b/fuzz/corpus/fuzz_write/161fca94c35eae47ca9f2f8863b3ca88d2eca6ba new file mode 100644 index 00000000..d32cdb25 Binary files /dev/null and b/fuzz/corpus/fuzz_write/161fca94c35eae47ca9f2f8863b3ca88d2eca6ba differ diff --git a/fuzz/corpus/fuzz_write/162ba238a9b76fa68b65c7f98905a6b850282a76 b/fuzz/corpus/fuzz_write/162ba238a9b76fa68b65c7f98905a6b850282a76 new file mode 100644 index 00000000..50b8e919 --- /dev/null +++ b/fuzz/corpus/fuzz_write/162ba238a9b76fa68b65c7f98905a6b850282a76 @@ -0,0 +1,3 @@ +JKTJKT +J +J \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1638bb7b26c38852dc84462c1808d35b94a10cbe b/fuzz/corpus/fuzz_write/1638bb7b26c38852dc84462c1808d35b94a10cbe new file mode 100644 index 00000000..db894d2a Binary files /dev/null and b/fuzz/corpus/fuzz_write/1638bb7b26c38852dc84462c1808d35b94a10cbe differ diff --git a/fuzz/corpus/fuzz_write/165b9ead518e11acdaf1d08d7686257ee67948bf b/fuzz/corpus/fuzz_write/165b9ead518e11acdaf1d08d7686257ee67948bf new file mode 100644 index 00000000..508d25a3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/165b9ead518e11acdaf1d08d7686257ee67948bf differ diff --git a/fuzz/corpus/fuzz_write/1678ac403657517abd8673166c797ccdd63919a0 b/fuzz/corpus/fuzz_write/1678ac403657517abd8673166c797ccdd63919a0 new file mode 100644 index 00000000..68395981 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1678ac403657517abd8673166c797ccdd63919a0 differ diff --git a/fuzz/corpus/fuzz_write/167f6fda02b631d8a45d0d591a51c3eb1f46cafa b/fuzz/corpus/fuzz_write/167f6fda02b631d8a45d0d591a51c3eb1f46cafa new file mode 100644 index 00000000..86ca702a Binary files /dev/null and b/fuzz/corpus/fuzz_write/167f6fda02b631d8a45d0d591a51c3eb1f46cafa differ diff --git a/fuzz/corpus/fuzz_write/1697a09f3f9ff74f02ba5e3bdd105ae01a2de124 b/fuzz/corpus/fuzz_write/1697a09f3f9ff74f02ba5e3bdd105ae01a2de124 new file mode 100644 index 00000000..030f989f Binary files /dev/null and b/fuzz/corpus/fuzz_write/1697a09f3f9ff74f02ba5e3bdd105ae01a2de124 differ diff --git a/fuzz/corpus/fuzz_write/169f2986a07304fb0f0e43d5384d7f0d745fa6d8 b/fuzz/corpus/fuzz_write/169f2986a07304fb0f0e43d5384d7f0d745fa6d8 new file mode 100644 index 00000000..b50e4fbc Binary files /dev/null and b/fuzz/corpus/fuzz_write/169f2986a07304fb0f0e43d5384d7f0d745fa6d8 differ diff --git a/fuzz/corpus/fuzz_write/16aa1666d249fe883136a097b0fcc9c9b6dc238b b/fuzz/corpus/fuzz_write/16aa1666d249fe883136a097b0fcc9c9b6dc238b new file mode 100644 index 00000000..f77deebb Binary files /dev/null and b/fuzz/corpus/fuzz_write/16aa1666d249fe883136a097b0fcc9c9b6dc238b differ diff --git a/fuzz/corpus/fuzz_write/16ecb86cf73d97526e789b06cbc004e81612b80e b/fuzz/corpus/fuzz_write/16ecb86cf73d97526e789b06cbc004e81612b80e new file mode 100644 index 00000000..31d6e11e Binary files /dev/null and b/fuzz/corpus/fuzz_write/16ecb86cf73d97526e789b06cbc004e81612b80e differ diff --git a/fuzz/corpus/fuzz_write/176ba365d0d1618ee1e824ab7c9929ec41ad5c0b b/fuzz/corpus/fuzz_write/176ba365d0d1618ee1e824ab7c9929ec41ad5c0b new file mode 100644 index 00000000..7f6eacee Binary files /dev/null and b/fuzz/corpus/fuzz_write/176ba365d0d1618ee1e824ab7c9929ec41ad5c0b differ diff --git a/fuzz/corpus/fuzz_write/178952fcb598145f6471e716d108d1ce3a7e17d4 b/fuzz/corpus/fuzz_write/178952fcb598145f6471e716d108d1ce3a7e17d4 new file mode 100644 index 00000000..5277d929 Binary files /dev/null and b/fuzz/corpus/fuzz_write/178952fcb598145f6471e716d108d1ce3a7e17d4 differ diff --git a/fuzz/corpus/fuzz_write/17bee091cf550a09d43e707b28465cadf9a3eb9c b/fuzz/corpus/fuzz_write/17bee091cf550a09d43e707b28465cadf9a3eb9c new file mode 100644 index 00000000..0b72b7fb Binary files /dev/null and b/fuzz/corpus/fuzz_write/17bee091cf550a09d43e707b28465cadf9a3eb9c differ diff --git a/fuzz/corpus/fuzz_write/17c026c8a01b88c9adc27ebadab72c0236e078ed b/fuzz/corpus/fuzz_write/17c026c8a01b88c9adc27ebadab72c0236e078ed new file mode 100644 index 00000000..5f1b0658 Binary files /dev/null and b/fuzz/corpus/fuzz_write/17c026c8a01b88c9adc27ebadab72c0236e078ed differ diff --git a/fuzz/corpus/fuzz_write/17c931b5e3feb5314c898e9bf883a390e7e31abd b/fuzz/corpus/fuzz_write/17c931b5e3feb5314c898e9bf883a390e7e31abd new file mode 100644 index 00000000..56274e64 Binary files /dev/null and b/fuzz/corpus/fuzz_write/17c931b5e3feb5314c898e9bf883a390e7e31abd differ diff --git a/fuzz/corpus/fuzz_write/17e6c318dbceca0986c22eb3d0c1b524ea055cad b/fuzz/corpus/fuzz_write/17e6c318dbceca0986c22eb3d0c1b524ea055cad new file mode 100644 index 00000000..c15e9acc Binary files /dev/null and b/fuzz/corpus/fuzz_write/17e6c318dbceca0986c22eb3d0c1b524ea055cad differ diff --git a/fuzz/corpus/fuzz_write/17e910ced38301db14af70bf4b76d82e105dda34 b/fuzz/corpus/fuzz_write/17e910ced38301db14af70bf4b76d82e105dda34 new file mode 100644 index 00000000..b1e71d66 Binary files /dev/null and b/fuzz/corpus/fuzz_write/17e910ced38301db14af70bf4b76d82e105dda34 differ diff --git a/fuzz/corpus/fuzz_write/17f570d9b229d50841f56142a6c8daedcdc9bc8b b/fuzz/corpus/fuzz_write/17f570d9b229d50841f56142a6c8daedcdc9bc8b new file mode 100644 index 00000000..ec79d92f Binary files /dev/null and b/fuzz/corpus/fuzz_write/17f570d9b229d50841f56142a6c8daedcdc9bc8b differ diff --git a/fuzz/corpus/fuzz_write/181a6c0ffe5f9ba05a4064b64a7a6883d788f213 b/fuzz/corpus/fuzz_write/181a6c0ffe5f9ba05a4064b64a7a6883d788f213 new file mode 100644 index 00000000..3e19e740 Binary files /dev/null and b/fuzz/corpus/fuzz_write/181a6c0ffe5f9ba05a4064b64a7a6883d788f213 differ diff --git a/fuzz/corpus/fuzz_write/182a69b15820db76a31c3f73bd660e584a1e2e0b b/fuzz/corpus/fuzz_write/182a69b15820db76a31c3f73bd660e584a1e2e0b new file mode 100644 index 00000000..48a22c7c Binary files /dev/null and b/fuzz/corpus/fuzz_write/182a69b15820db76a31c3f73bd660e584a1e2e0b differ diff --git a/fuzz/corpus/fuzz_write/182d3fa716e8b8df9c2c644872412c9a3c3c287b b/fuzz/corpus/fuzz_write/182d3fa716e8b8df9c2c644872412c9a3c3c287b new file mode 100644 index 00000000..e3853d53 Binary files /dev/null and b/fuzz/corpus/fuzz_write/182d3fa716e8b8df9c2c644872412c9a3c3c287b differ diff --git a/fuzz/corpus/fuzz_write/182e3773dbc2f1838bd5e563792fdb338afdaabc b/fuzz/corpus/fuzz_write/182e3773dbc2f1838bd5e563792fdb338afdaabc new file mode 100644 index 00000000..e36e15f5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/182e3773dbc2f1838bd5e563792fdb338afdaabc differ diff --git a/fuzz/corpus/fuzz_write/183bc506579d6418bf2e6a392ac56cc182ac2112 b/fuzz/corpus/fuzz_write/183bc506579d6418bf2e6a392ac56cc182ac2112 new file mode 100644 index 00000000..35ead7ca Binary files /dev/null and b/fuzz/corpus/fuzz_write/183bc506579d6418bf2e6a392ac56cc182ac2112 differ diff --git a/fuzz/corpus/fuzz_write/1861e2dae2a8b83292f45360d99e6bc507e18b47 b/fuzz/corpus/fuzz_write/1861e2dae2a8b83292f45360d99e6bc507e18b47 new file mode 100644 index 00000000..f2a3e2df Binary files /dev/null and b/fuzz/corpus/fuzz_write/1861e2dae2a8b83292f45360d99e6bc507e18b47 differ diff --git a/fuzz/corpus/fuzz_write/186e08a6d0adf2b578b3c5a444e9fc998a4d271e b/fuzz/corpus/fuzz_write/186e08a6d0adf2b578b3c5a444e9fc998a4d271e new file mode 100644 index 00000000..4186b5a7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/186e08a6d0adf2b578b3c5a444e9fc998a4d271e differ diff --git a/fuzz/corpus/fuzz_write/18982e02fc3bf6af40aeb51edf61b3d699bc411d b/fuzz/corpus/fuzz_write/18982e02fc3bf6af40aeb51edf61b3d699bc411d new file mode 100644 index 00000000..366a7b23 Binary files /dev/null and b/fuzz/corpus/fuzz_write/18982e02fc3bf6af40aeb51edf61b3d699bc411d differ diff --git a/fuzz/corpus/fuzz_write/18997f72484e7527a06f6fe357e29021b6f9190a b/fuzz/corpus/fuzz_write/18997f72484e7527a06f6fe357e29021b6f9190a new file mode 100644 index 00000000..10258e3b Binary files /dev/null and b/fuzz/corpus/fuzz_write/18997f72484e7527a06f6fe357e29021b6f9190a differ diff --git a/fuzz/corpus/fuzz_write/18bd09f961a9c84297b481f94e5918a6e0053977 b/fuzz/corpus/fuzz_write/18bd09f961a9c84297b481f94e5918a6e0053977 new file mode 100644 index 00000000..4d46d615 Binary files /dev/null and b/fuzz/corpus/fuzz_write/18bd09f961a9c84297b481f94e5918a6e0053977 differ diff --git a/fuzz/corpus/fuzz_write/18da18c25f738dd5e14775693d94701c581e854d b/fuzz/corpus/fuzz_write/18da18c25f738dd5e14775693d94701c581e854d new file mode 100644 index 00000000..c0c2c640 Binary files /dev/null and b/fuzz/corpus/fuzz_write/18da18c25f738dd5e14775693d94701c581e854d differ diff --git a/fuzz/corpus/fuzz_write/18ff758bc2f8891f798d569bdb1b7b727e3e4141 b/fuzz/corpus/fuzz_write/18ff758bc2f8891f798d569bdb1b7b727e3e4141 new file mode 100644 index 00000000..5e4942fb Binary files /dev/null and b/fuzz/corpus/fuzz_write/18ff758bc2f8891f798d569bdb1b7b727e3e4141 differ diff --git a/fuzz/corpus/fuzz_write/19263d464500b50f707da4a48a9dccaa385b52c8 b/fuzz/corpus/fuzz_write/19263d464500b50f707da4a48a9dccaa385b52c8 new file mode 100644 index 00000000..b5f6776a Binary files /dev/null and b/fuzz/corpus/fuzz_write/19263d464500b50f707da4a48a9dccaa385b52c8 differ diff --git a/fuzz/corpus/fuzz_write/193b7511433400a3a665f2c645afd70cb4dc6a83 b/fuzz/corpus/fuzz_write/193b7511433400a3a665f2c645afd70cb4dc6a83 new file mode 100644 index 00000000..7c4e1703 Binary files /dev/null and b/fuzz/corpus/fuzz_write/193b7511433400a3a665f2c645afd70cb4dc6a83 differ diff --git a/fuzz/corpus/fuzz_write/195024b69682ddd53c253d306aa1db39cc7d7fe4 b/fuzz/corpus/fuzz_write/195024b69682ddd53c253d306aa1db39cc7d7fe4 new file mode 100644 index 00000000..b648f1f6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/195024b69682ddd53c253d306aa1db39cc7d7fe4 differ diff --git a/fuzz/corpus/fuzz_write/196934c85bafa8bd7b840c754e73ee6d687bed31 b/fuzz/corpus/fuzz_write/196934c85bafa8bd7b840c754e73ee6d687bed31 new file mode 100644 index 00000000..27d9ccc2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/196934c85bafa8bd7b840c754e73ee6d687bed31 differ diff --git a/fuzz/corpus/fuzz_write/196a3a15d1526c5020b2e3d02bb0a5f870e24f92 b/fuzz/corpus/fuzz_write/196a3a15d1526c5020b2e3d02bb0a5f870e24f92 new file mode 100644 index 00000000..20cae6b3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/196a3a15d1526c5020b2e3d02bb0a5f870e24f92 differ diff --git a/fuzz/corpus/fuzz_write/1988bdff78c4f27c28bb8455b0a06db814ad72d4 b/fuzz/corpus/fuzz_write/1988bdff78c4f27c28bb8455b0a06db814ad72d4 new file mode 100644 index 00000000..7c850d11 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1988bdff78c4f27c28bb8455b0a06db814ad72d4 differ diff --git a/fuzz/corpus/fuzz_write/19a75fc118f2a293feefa383cc8b164da076f754 b/fuzz/corpus/fuzz_write/19a75fc118f2a293feefa383cc8b164da076f754 new file mode 100644 index 00000000..972510d6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/19a75fc118f2a293feefa383cc8b164da076f754 differ diff --git a/fuzz/corpus/fuzz_write/19acd90c1e095edad771a978b3f82fd087810e44 b/fuzz/corpus/fuzz_write/19acd90c1e095edad771a978b3f82fd087810e44 new file mode 100644 index 00000000..a7e70b41 --- /dev/null +++ b/fuzz/corpus/fuzz_write/19acd90c1e095edad771a978b3f82fd087810e44 @@ -0,0 +1 @@ +$+$`/`/ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/19c2acf17f9a92a5a0af8c1b35f66a72e0f36024 b/fuzz/corpus/fuzz_write/19c2acf17f9a92a5a0af8c1b35f66a72e0f36024 new file mode 100644 index 00000000..68e50fe9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/19c2acf17f9a92a5a0af8c1b35f66a72e0f36024 differ diff --git a/fuzz/corpus/fuzz_write/19fd0e9e554494f6c090725769571bb754b6d13a b/fuzz/corpus/fuzz_write/19fd0e9e554494f6c090725769571bb754b6d13a new file mode 100644 index 00000000..0ad30e02 Binary files /dev/null and b/fuzz/corpus/fuzz_write/19fd0e9e554494f6c090725769571bb754b6d13a differ diff --git a/fuzz/corpus/fuzz_write/1a01b743bcdb7c2f41784a1dd874708645063790 b/fuzz/corpus/fuzz_write/1a01b743bcdb7c2f41784a1dd874708645063790 new file mode 100644 index 00000000..99e3f4bb --- /dev/null +++ b/fuzz/corpus/fuzz_write/1a01b743bcdb7c2f41784a1dd874708645063790 @@ -0,0 +1 @@ +CCzA@ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1a19175f0bac8c6d0fb73197c6c6ab8db043c987 b/fuzz/corpus/fuzz_write/1a19175f0bac8c6d0fb73197c6c6ab8db043c987 new file mode 100644 index 00000000..1edc8e99 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a19175f0bac8c6d0fb73197c6c6ab8db043c987 differ diff --git a/fuzz/corpus/fuzz_write/1a36ef164e8ea86d0cdd3bb12e2561234542bc46 b/fuzz/corpus/fuzz_write/1a36ef164e8ea86d0cdd3bb12e2561234542bc46 new file mode 100644 index 00000000..50b491a4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a36ef164e8ea86d0cdd3bb12e2561234542bc46 differ diff --git a/fuzz/corpus/fuzz_write/1a7d2d81321b77cf764189858e08562d07c94af1 b/fuzz/corpus/fuzz_write/1a7d2d81321b77cf764189858e08562d07c94af1 new file mode 100644 index 00000000..3523efe4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a7d2d81321b77cf764189858e08562d07c94af1 differ diff --git a/fuzz/corpus/fuzz_write/1a8a3b486fceef0996902adbd08b1293cfe37c55 b/fuzz/corpus/fuzz_write/1a8a3b486fceef0996902adbd08b1293cfe37c55 new file mode 100644 index 00000000..12bd0e5d Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a8a3b486fceef0996902adbd08b1293cfe37c55 differ diff --git a/fuzz/corpus/fuzz_write/1a8abbf15781e9334e9ef9babbe726bbce663bd5 b/fuzz/corpus/fuzz_write/1a8abbf15781e9334e9ef9babbe726bbce663bd5 new file mode 100644 index 00000000..d84cda20 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a8abbf15781e9334e9ef9babbe726bbce663bd5 differ diff --git a/fuzz/corpus/fuzz_write/1a9343487027244ef69cddd1cdf6d228e001abe8 b/fuzz/corpus/fuzz_write/1a9343487027244ef69cddd1cdf6d228e001abe8 new file mode 100644 index 00000000..8fa97d0b Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a9343487027244ef69cddd1cdf6d228e001abe8 differ diff --git a/fuzz/corpus/fuzz_write/1a94aa3a9105bd38624efb8d121cb76c53d85f26 b/fuzz/corpus/fuzz_write/1a94aa3a9105bd38624efb8d121cb76c53d85f26 new file mode 100644 index 00000000..9c540f4e Binary files /dev/null and b/fuzz/corpus/fuzz_write/1a94aa3a9105bd38624efb8d121cb76c53d85f26 differ diff --git a/fuzz/corpus/fuzz_write/1aa697de4fe68b6d27a4caa03e5e091634ca812d b/fuzz/corpus/fuzz_write/1aa697de4fe68b6d27a4caa03e5e091634ca812d new file mode 100644 index 00000000..8fbc15f4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1aa697de4fe68b6d27a4caa03e5e091634ca812d differ diff --git a/fuzz/corpus/fuzz_write/1ad41b413e1ffb0c82a87e91d3274b53c7eb34e6 b/fuzz/corpus/fuzz_write/1ad41b413e1ffb0c82a87e91d3274b53c7eb34e6 new file mode 100644 index 00000000..d23f97db Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ad41b413e1ffb0c82a87e91d3274b53c7eb34e6 differ diff --git a/fuzz/corpus/fuzz_write/1ae94e818d88c7bc22ed2c32fa14a867bb6f49a6 b/fuzz/corpus/fuzz_write/1ae94e818d88c7bc22ed2c32fa14a867bb6f49a6 new file mode 100644 index 00000000..2816c050 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ae94e818d88c7bc22ed2c32fa14a867bb6f49a6 differ diff --git a/fuzz/corpus/fuzz_write/1af2dcc6f66634dc0c10edfcbf63161e8a5894d7 b/fuzz/corpus/fuzz_write/1af2dcc6f66634dc0c10edfcbf63161e8a5894d7 new file mode 100644 index 00000000..a82a0a3c Binary files /dev/null and b/fuzz/corpus/fuzz_write/1af2dcc6f66634dc0c10edfcbf63161e8a5894d7 differ diff --git a/fuzz/corpus/fuzz_write/1b6218e5dead6c9d7a26b37a00666e094eec193b b/fuzz/corpus/fuzz_write/1b6218e5dead6c9d7a26b37a00666e094eec193b new file mode 100644 index 00000000..4c2e6c4b Binary files /dev/null and b/fuzz/corpus/fuzz_write/1b6218e5dead6c9d7a26b37a00666e094eec193b differ diff --git a/fuzz/corpus/fuzz_write/1b7823f29b71b998ec75bdf8da65f9e5f40dede2 b/fuzz/corpus/fuzz_write/1b7823f29b71b998ec75bdf8da65f9e5f40dede2 new file mode 100644 index 00000000..b4414812 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1b7823f29b71b998ec75bdf8da65f9e5f40dede2 differ diff --git a/fuzz/corpus/fuzz_write/1bc4a73174d8d7707858068716663685bb95e5ac b/fuzz/corpus/fuzz_write/1bc4a73174d8d7707858068716663685bb95e5ac new file mode 100644 index 00000000..a0b1f8b3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1bc4a73174d8d7707858068716663685bb95e5ac differ diff --git a/fuzz/corpus/fuzz_write/1c65941ea964e945c452f5d1da605c8435cb4569 b/fuzz/corpus/fuzz_write/1c65941ea964e945c452f5d1da605c8435cb4569 new file mode 100644 index 00000000..eada14d0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1c65941ea964e945c452f5d1da605c8435cb4569 differ diff --git a/fuzz/corpus/fuzz_write/1c707bbf47175067e856c6acabbe51caa1bc0020 b/fuzz/corpus/fuzz_write/1c707bbf47175067e856c6acabbe51caa1bc0020 new file mode 100644 index 00000000..024aa027 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1c707bbf47175067e856c6acabbe51caa1bc0020 differ diff --git a/fuzz/corpus/fuzz_write/1c83e110a4aa2882a5e85e09a96bbab88d182805 b/fuzz/corpus/fuzz_write/1c83e110a4aa2882a5e85e09a96bbab88d182805 new file mode 100644 index 00000000..cfa97aee Binary files /dev/null and b/fuzz/corpus/fuzz_write/1c83e110a4aa2882a5e85e09a96bbab88d182805 differ diff --git a/fuzz/corpus/fuzz_write/1c908b834d5933efc95f3ead10ed79cd481e8fcd b/fuzz/corpus/fuzz_write/1c908b834d5933efc95f3ead10ed79cd481e8fcd new file mode 100644 index 00000000..df9e75d2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1c908b834d5933efc95f3ead10ed79cd481e8fcd differ diff --git a/fuzz/corpus/fuzz_write/1cb9f08ae7ea9e11beb713093212f9fb32dd71b8 b/fuzz/corpus/fuzz_write/1cb9f08ae7ea9e11beb713093212f9fb32dd71b8 new file mode 100644 index 00000000..e9d255a0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1cb9f08ae7ea9e11beb713093212f9fb32dd71b8 differ diff --git a/fuzz/corpus/fuzz_write/1cbcb4502b12116ce5d49ac5511076d02d02407f b/fuzz/corpus/fuzz_write/1cbcb4502b12116ce5d49ac5511076d02d02407f new file mode 100644 index 00000000..3551a13d Binary files /dev/null and b/fuzz/corpus/fuzz_write/1cbcb4502b12116ce5d49ac5511076d02d02407f differ diff --git a/fuzz/corpus/fuzz_write/1cbe9644e2f91d2f8f1c2cc02cd9a8a72c2f55e9 b/fuzz/corpus/fuzz_write/1cbe9644e2f91d2f8f1c2cc02cd9a8a72c2f55e9 new file mode 100644 index 00000000..fd4b8335 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1cbe9644e2f91d2f8f1c2cc02cd9a8a72c2f55e9 differ diff --git a/fuzz/corpus/fuzz_write/1cda6b52ad8f8409fe2d38f7910a29b5d32e8fac b/fuzz/corpus/fuzz_write/1cda6b52ad8f8409fe2d38f7910a29b5d32e8fac new file mode 100644 index 00000000..604a3c20 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1cda6b52ad8f8409fe2d38f7910a29b5d32e8fac differ diff --git a/fuzz/corpus/fuzz_write/1cfb26f60bf2c6b315fb5f6a053bd16a331cee24 b/fuzz/corpus/fuzz_write/1cfb26f60bf2c6b315fb5f6a053bd16a331cee24 new file mode 100644 index 00000000..a1a9f54c Binary files /dev/null and b/fuzz/corpus/fuzz_write/1cfb26f60bf2c6b315fb5f6a053bd16a331cee24 differ diff --git a/fuzz/corpus/fuzz_write/1d01559a510f94d95e28bb4ed65d44b51b5ea458 b/fuzz/corpus/fuzz_write/1d01559a510f94d95e28bb4ed65d44b51b5ea458 new file mode 100644 index 00000000..a7b521e2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d01559a510f94d95e28bb4ed65d44b51b5ea458 differ diff --git a/fuzz/corpus/fuzz_write/1d0dcc39f368bbd7f9f20634d9db7c13ae7ca9a5 b/fuzz/corpus/fuzz_write/1d0dcc39f368bbd7f9f20634d9db7c13ae7ca9a5 new file mode 100644 index 00000000..d433a42d Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d0dcc39f368bbd7f9f20634d9db7c13ae7ca9a5 differ diff --git a/fuzz/corpus/fuzz_write/1d180aa29d77c72b088f144435ca725169a8a8c7 b/fuzz/corpus/fuzz_write/1d180aa29d77c72b088f144435ca725169a8a8c7 new file mode 100644 index 00000000..ec4e50b8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d180aa29d77c72b088f144435ca725169a8a8c7 differ diff --git a/fuzz/corpus/fuzz_write/1d218aea72c1b929cafd869e9f21a0d78f8271cc b/fuzz/corpus/fuzz_write/1d218aea72c1b929cafd869e9f21a0d78f8271cc new file mode 100644 index 00000000..3f0880eb Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d218aea72c1b929cafd869e9f21a0d78f8271cc differ diff --git a/fuzz/corpus/fuzz_write/1d4d535fea8e60a5d53d1ffb3cf4d386aa223423 b/fuzz/corpus/fuzz_write/1d4d535fea8e60a5d53d1ffb3cf4d386aa223423 new file mode 100644 index 00000000..58528d81 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d4d535fea8e60a5d53d1ffb3cf4d386aa223423 differ diff --git a/fuzz/corpus/fuzz_write/1d5bc19ac1149da4fdcc07588d8533e099534134 b/fuzz/corpus/fuzz_write/1d5bc19ac1149da4fdcc07588d8533e099534134 new file mode 100644 index 00000000..5ce0f513 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d5bc19ac1149da4fdcc07588d8533e099534134 differ diff --git a/fuzz/corpus/fuzz_write/1d67c539ab8aad2c3de06f6b61622a6755e37c8c b/fuzz/corpus/fuzz_write/1d67c539ab8aad2c3de06f6b61622a6755e37c8c new file mode 100644 index 00000000..e7bababd Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d67c539ab8aad2c3de06f6b61622a6755e37c8c differ diff --git a/fuzz/corpus/fuzz_write/1d7319425f344ebe805929b36b3007db51fd24d9 b/fuzz/corpus/fuzz_write/1d7319425f344ebe805929b36b3007db51fd24d9 new file mode 100644 index 00000000..4686da45 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d7319425f344ebe805929b36b3007db51fd24d9 differ diff --git a/fuzz/corpus/fuzz_write/1d88c13d46995f05698bd6102653d30dcc5435a8 b/fuzz/corpus/fuzz_write/1d88c13d46995f05698bd6102653d30dcc5435a8 new file mode 100644 index 00000000..fa79f019 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1d88c13d46995f05698bd6102653d30dcc5435a8 differ diff --git a/fuzz/corpus/fuzz_write/1dae961448e74c73567e686dfacec88c1df4cb90 b/fuzz/corpus/fuzz_write/1dae961448e74c73567e686dfacec88c1df4cb90 new file mode 100644 index 00000000..6438c2c7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1dae961448e74c73567e686dfacec88c1df4cb90 differ diff --git a/fuzz/corpus/fuzz_write/1dcc190069ede4636913094610f9ced23dc168cc b/fuzz/corpus/fuzz_write/1dcc190069ede4636913094610f9ced23dc168cc new file mode 100644 index 00000000..f6f10e58 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1dcc190069ede4636913094610f9ced23dc168cc differ diff --git a/fuzz/corpus/fuzz_write/1def52a002490e5e148c973df906b7e0daa09c68 b/fuzz/corpus/fuzz_write/1def52a002490e5e148c973df906b7e0daa09c68 new file mode 100644 index 00000000..968919a3 --- /dev/null +++ b/fuzz/corpus/fuzz_write/1def52a002490e5e148c973df906b7e0daa09c68 @@ -0,0 +1 @@ +PK#CXP;K+ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/1df4eb41b0caf30df68f1cd5600d461be1d4e5bc b/fuzz/corpus/fuzz_write/1df4eb41b0caf30df68f1cd5600d461be1d4e5bc new file mode 100644 index 00000000..9af1e9b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1df4eb41b0caf30df68f1cd5600d461be1d4e5bc differ diff --git a/fuzz/corpus/fuzz_write/1e1db88b9881163bf621c1d0d2ee913fcf6fded6 b/fuzz/corpus/fuzz_write/1e1db88b9881163bf621c1d0d2ee913fcf6fded6 new file mode 100644 index 00000000..4e0598e7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e1db88b9881163bf621c1d0d2ee913fcf6fded6 differ diff --git a/fuzz/corpus/fuzz_write/1e22e841465dad421155105fb2c6045f11a9dcb7 b/fuzz/corpus/fuzz_write/1e22e841465dad421155105fb2c6045f11a9dcb7 new file mode 100644 index 00000000..fa1c7bd6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e22e841465dad421155105fb2c6045f11a9dcb7 differ diff --git a/fuzz/corpus/fuzz_write/1e26a72e2e0fbf6e70ab9a623e5b228345e74068 b/fuzz/corpus/fuzz_write/1e26a72e2e0fbf6e70ab9a623e5b228345e74068 new file mode 100644 index 00000000..afd6c5b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e26a72e2e0fbf6e70ab9a623e5b228345e74068 differ diff --git a/fuzz/corpus/fuzz_write/1e3741354b78b8261e12e33002902067e1fa5e90 b/fuzz/corpus/fuzz_write/1e3741354b78b8261e12e33002902067e1fa5e90 new file mode 100644 index 00000000..0e0e5494 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e3741354b78b8261e12e33002902067e1fa5e90 differ diff --git a/fuzz/corpus/fuzz_write/1e438262bdff190c1b7b1865aae0df444af871cd b/fuzz/corpus/fuzz_write/1e438262bdff190c1b7b1865aae0df444af871cd new file mode 100644 index 00000000..2ee210e2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e438262bdff190c1b7b1865aae0df444af871cd differ diff --git a/fuzz/corpus/fuzz_write/1e747fea96e976d77b31a6bf002f8a6206f7ae05 b/fuzz/corpus/fuzz_write/1e747fea96e976d77b31a6bf002f8a6206f7ae05 new file mode 100644 index 00000000..1980e952 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1e747fea96e976d77b31a6bf002f8a6206f7ae05 differ diff --git a/fuzz/corpus/fuzz_write/1ea3c1fe4e0e663ad222e7b366f955e2226889f8 b/fuzz/corpus/fuzz_write/1ea3c1fe4e0e663ad222e7b366f955e2226889f8 new file mode 100644 index 00000000..a1180e37 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ea3c1fe4e0e663ad222e7b366f955e2226889f8 differ diff --git a/fuzz/corpus/fuzz_write/1ea58cf188ae3ce47f7440adc4e87404285cf527 b/fuzz/corpus/fuzz_write/1ea58cf188ae3ce47f7440adc4e87404285cf527 new file mode 100644 index 00000000..13a65114 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ea58cf188ae3ce47f7440adc4e87404285cf527 differ diff --git a/fuzz/corpus/fuzz_write/1ec6b0836d3162a7c50ee2afe60af3b0ae373481 b/fuzz/corpus/fuzz_write/1ec6b0836d3162a7c50ee2afe60af3b0ae373481 new file mode 100644 index 00000000..27fbdc5d Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ec6b0836d3162a7c50ee2afe60af3b0ae373481 differ diff --git a/fuzz/corpus/fuzz_write/1ef8c7b96a281146b24f06cc7a46fd8ca0a92969 b/fuzz/corpus/fuzz_write/1ef8c7b96a281146b24f06cc7a46fd8ca0a92969 new file mode 100644 index 00000000..1454c090 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1ef8c7b96a281146b24f06cc7a46fd8ca0a92969 differ diff --git a/fuzz/corpus/fuzz_write/1f2975ac48b02842f58f6fba0e3ce58cb474b3ce b/fuzz/corpus/fuzz_write/1f2975ac48b02842f58f6fba0e3ce58cb474b3ce new file mode 100644 index 00000000..c77c584f Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f2975ac48b02842f58f6fba0e3ce58cb474b3ce differ diff --git a/fuzz/corpus/fuzz_write/1f3fc81badbad3368a96e432dd07f82e1c45a035 b/fuzz/corpus/fuzz_write/1f3fc81badbad3368a96e432dd07f82e1c45a035 new file mode 100644 index 00000000..765c152a Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f3fc81badbad3368a96e432dd07f82e1c45a035 differ diff --git a/fuzz/corpus/fuzz_write/1f483f302130a0340abc516a4f5961cd05f7c7b3 b/fuzz/corpus/fuzz_write/1f483f302130a0340abc516a4f5961cd05f7c7b3 new file mode 100644 index 00000000..3a93f0a5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f483f302130a0340abc516a4f5961cd05f7c7b3 differ diff --git a/fuzz/corpus/fuzz_write/1f709abb0ef1470d44df04da05abedc0355ebfec b/fuzz/corpus/fuzz_write/1f709abb0ef1470d44df04da05abedc0355ebfec new file mode 100644 index 00000000..a2820d34 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f709abb0ef1470d44df04da05abedc0355ebfec differ diff --git a/fuzz/corpus/fuzz_write/1f8f6cd2a9454ac33a397c7cd4f7b1edb1fe1e25 b/fuzz/corpus/fuzz_write/1f8f6cd2a9454ac33a397c7cd4f7b1edb1fe1e25 new file mode 100644 index 00000000..8d5425af Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f8f6cd2a9454ac33a397c7cd4f7b1edb1fe1e25 differ diff --git a/fuzz/corpus/fuzz_write/1f9c2fff14d1fc36a08cd89039724f37ecb393eb b/fuzz/corpus/fuzz_write/1f9c2fff14d1fc36a08cd89039724f37ecb393eb new file mode 100644 index 00000000..6a8e848e Binary files /dev/null and b/fuzz/corpus/fuzz_write/1f9c2fff14d1fc36a08cd89039724f37ecb393eb differ diff --git a/fuzz/corpus/fuzz_write/1fc50a47a6a619ccc9b8cf2a03255cb3b4e30e07 b/fuzz/corpus/fuzz_write/1fc50a47a6a619ccc9b8cf2a03255cb3b4e30e07 new file mode 100644 index 00000000..e3d73767 Binary files /dev/null and b/fuzz/corpus/fuzz_write/1fc50a47a6a619ccc9b8cf2a03255cb3b4e30e07 differ diff --git a/fuzz/corpus/fuzz_write/1fcb16ed06d45ffe5930676e4aa8fca55137e6b5 b/fuzz/corpus/fuzz_write/1fcb16ed06d45ffe5930676e4aa8fca55137e6b5 new file mode 100644 index 00000000..83a29a6e Binary files /dev/null and b/fuzz/corpus/fuzz_write/1fcb16ed06d45ffe5930676e4aa8fca55137e6b5 differ diff --git a/fuzz/corpus/fuzz_write/1fec4983aa990f9ee3324689fd0ceff0eb3e3e38 b/fuzz/corpus/fuzz_write/1fec4983aa990f9ee3324689fd0ceff0eb3e3e38 new file mode 100644 index 00000000..7dcf21ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/1fec4983aa990f9ee3324689fd0ceff0eb3e3e38 differ diff --git a/fuzz/corpus/fuzz_write/2009e37780c06327c3cd1b4bce24206eff62a3cd b/fuzz/corpus/fuzz_write/2009e37780c06327c3cd1b4bce24206eff62a3cd new file mode 100644 index 00000000..8c6e47c1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2009e37780c06327c3cd1b4bce24206eff62a3cd differ diff --git a/fuzz/corpus/fuzz_write/201bab957820a80cef6c24cf8d10caa44b83b984 b/fuzz/corpus/fuzz_write/201bab957820a80cef6c24cf8d10caa44b83b984 new file mode 100644 index 00000000..4c210694 Binary files /dev/null and b/fuzz/corpus/fuzz_write/201bab957820a80cef6c24cf8d10caa44b83b984 differ diff --git a/fuzz/corpus/fuzz_write/2025d1149ab40ae00261eca91a3f46a866dbc43c b/fuzz/corpus/fuzz_write/2025d1149ab40ae00261eca91a3f46a866dbc43c new file mode 100644 index 00000000..c73946b6 --- /dev/null +++ b/fuzz/corpus/fuzz_write/2025d1149ab40ae00261eca91a3f46a866dbc43c @@ -0,0 +1 @@ +N.y;KP@^/; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/20358970533d16d31d0134e37a4cbf0e6a121028 b/fuzz/corpus/fuzz_write/20358970533d16d31d0134e37a4cbf0e6a121028 new file mode 100644 index 00000000..a140ae91 Binary files /dev/null and b/fuzz/corpus/fuzz_write/20358970533d16d31d0134e37a4cbf0e6a121028 differ diff --git a/fuzz/corpus/fuzz_write/20402d6d7e1287f0f1bb42c7a66899902b6bee79 b/fuzz/corpus/fuzz_write/20402d6d7e1287f0f1bb42c7a66899902b6bee79 new file mode 100644 index 00000000..54a4197f Binary files /dev/null and b/fuzz/corpus/fuzz_write/20402d6d7e1287f0f1bb42c7a66899902b6bee79 differ diff --git a/fuzz/corpus/fuzz_write/205292e00cc446bae4633f4763c681d1f881b4d3 b/fuzz/corpus/fuzz_write/205292e00cc446bae4633f4763c681d1f881b4d3 new file mode 100644 index 00000000..ce873f98 Binary files /dev/null and b/fuzz/corpus/fuzz_write/205292e00cc446bae4633f4763c681d1f881b4d3 differ diff --git a/fuzz/corpus/fuzz_write/208bd1585f2344d546d7a0273b540b019755eecd b/fuzz/corpus/fuzz_write/208bd1585f2344d546d7a0273b540b019755eecd new file mode 100644 index 00000000..28a7aee9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/208bd1585f2344d546d7a0273b540b019755eecd differ diff --git a/fuzz/corpus/fuzz_write/209c5f984446a036e88b42154f179d76567536e6 b/fuzz/corpus/fuzz_write/209c5f984446a036e88b42154f179d76567536e6 new file mode 100644 index 00000000..40e5f194 Binary files /dev/null and b/fuzz/corpus/fuzz_write/209c5f984446a036e88b42154f179d76567536e6 differ diff --git a/fuzz/corpus/fuzz_write/20c7173e5202033f3aa5d578948d262759e1417f b/fuzz/corpus/fuzz_write/20c7173e5202033f3aa5d578948d262759e1417f new file mode 100644 index 00000000..365e7fdf Binary files /dev/null and b/fuzz/corpus/fuzz_write/20c7173e5202033f3aa5d578948d262759e1417f differ diff --git a/fuzz/corpus/fuzz_write/20c86877f4b52aa708e0fa10eec97ec1a11f344f b/fuzz/corpus/fuzz_write/20c86877f4b52aa708e0fa10eec97ec1a11f344f new file mode 100644 index 00000000..ce36d2a5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/20c86877f4b52aa708e0fa10eec97ec1a11f344f differ diff --git a/fuzz/corpus/fuzz_write/20cebeaaa1d140db07e566bf4719ecbec04a6447 b/fuzz/corpus/fuzz_write/20cebeaaa1d140db07e566bf4719ecbec04a6447 new file mode 100644 index 00000000..e0935337 Binary files /dev/null and b/fuzz/corpus/fuzz_write/20cebeaaa1d140db07e566bf4719ecbec04a6447 differ diff --git a/fuzz/corpus/fuzz_write/20ea32688da8f1023f72fa6870b0f51e0c70fff3 b/fuzz/corpus/fuzz_write/20ea32688da8f1023f72fa6870b0f51e0c70fff3 new file mode 100644 index 00000000..5c6b5414 --- /dev/null +++ b/fuzz/corpus/fuzz_write/20ea32688da8f1023f72fa6870b0f51e0c70fff3 @@ -0,0 +1 @@ +K,P \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/212f728d62e832ca5e667f6803e8d8aa7ec7c52b b/fuzz/corpus/fuzz_write/212f728d62e832ca5e667f6803e8d8aa7ec7c52b new file mode 100644 index 00000000..8da5630c Binary files /dev/null and b/fuzz/corpus/fuzz_write/212f728d62e832ca5e667f6803e8d8aa7ec7c52b differ diff --git a/fuzz/corpus/fuzz_write/213e53dfe262f55ac9967f2143906edeebeca891 b/fuzz/corpus/fuzz_write/213e53dfe262f55ac9967f2143906edeebeca891 new file mode 100644 index 00000000..1b2097f3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/213e53dfe262f55ac9967f2143906edeebeca891 differ diff --git a/fuzz/corpus/fuzz_write/2186ff7e8b79997a2a58f26ffea1e7b3ea94ff16 b/fuzz/corpus/fuzz_write/2186ff7e8b79997a2a58f26ffea1e7b3ea94ff16 new file mode 100644 index 00000000..0bbb0280 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2186ff7e8b79997a2a58f26ffea1e7b3ea94ff16 differ diff --git a/fuzz/corpus/fuzz_write/21a82a7c802a1344ed5ce8ed02e78ad001007b79 b/fuzz/corpus/fuzz_write/21a82a7c802a1344ed5ce8ed02e78ad001007b79 new file mode 100644 index 00000000..e997785c Binary files /dev/null and b/fuzz/corpus/fuzz_write/21a82a7c802a1344ed5ce8ed02e78ad001007b79 differ diff --git a/fuzz/corpus/fuzz_write/21e83d471750bcd9c1b978c70c77027ceb58c2be b/fuzz/corpus/fuzz_write/21e83d471750bcd9c1b978c70c77027ceb58c2be new file mode 100644 index 00000000..e8d21075 Binary files /dev/null and b/fuzz/corpus/fuzz_write/21e83d471750bcd9c1b978c70c77027ceb58c2be differ diff --git a/fuzz/corpus/fuzz_write/2203f1e84c25610de38c3817c38f67d36d177086 b/fuzz/corpus/fuzz_write/2203f1e84c25610de38c3817c38f67d36d177086 new file mode 100644 index 00000000..31813bd6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2203f1e84c25610de38c3817c38f67d36d177086 differ diff --git a/fuzz/corpus/fuzz_write/220927ca13664cac6d2c905526a33a0c0e4df902 b/fuzz/corpus/fuzz_write/220927ca13664cac6d2c905526a33a0c0e4df902 new file mode 100644 index 00000000..6a32dc29 --- /dev/null +++ b/fuzz/corpus/fuzz_write/220927ca13664cac6d2c905526a33a0c0e4df902 @@ -0,0 +1,2 @@ + +\lZZPK#)EEA \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/2217642e5c4b71a6884532068fd4a64151af6ca4 b/fuzz/corpus/fuzz_write/2217642e5c4b71a6884532068fd4a64151af6ca4 new file mode 100644 index 00000000..c26cfa0c --- /dev/null +++ b/fuzz/corpus/fuzz_write/2217642e5c4b71a6884532068fd4a64151af6ca4 @@ -0,0 +1 @@ +PK#K!,cPK !KPKP+K# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/22282a01bb3195b52bb9da1d86d5cebff45afc7d b/fuzz/corpus/fuzz_write/22282a01bb3195b52bb9da1d86d5cebff45afc7d new file mode 100644 index 00000000..08aebadb Binary files /dev/null and b/fuzz/corpus/fuzz_write/22282a01bb3195b52bb9da1d86d5cebff45afc7d differ diff --git a/fuzz/corpus/fuzz_write/223f4f04eda4eca2154c5523cc544f0d538634bc b/fuzz/corpus/fuzz_write/223f4f04eda4eca2154c5523cc544f0d538634bc new file mode 100644 index 00000000..a0ae56a1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/223f4f04eda4eca2154c5523cc544f0d538634bc differ diff --git a/fuzz/corpus/fuzz_write/22534c11f6e3e38884a6a8d938bd48663bccd54c b/fuzz/corpus/fuzz_write/22534c11f6e3e38884a6a8d938bd48663bccd54c new file mode 100644 index 00000000..1defc91c Binary files /dev/null and b/fuzz/corpus/fuzz_write/22534c11f6e3e38884a6a8d938bd48663bccd54c differ diff --git a/fuzz/corpus/fuzz_write/2269fe904338d4e00830eb1fee8ae6b3b242520f b/fuzz/corpus/fuzz_write/2269fe904338d4e00830eb1fee8ae6b3b242520f new file mode 100644 index 00000000..bed54085 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2269fe904338d4e00830eb1fee8ae6b3b242520f differ diff --git a/fuzz/corpus/fuzz_write/2279653d9af990b96824b513782f99e6e3d30035 b/fuzz/corpus/fuzz_write/2279653d9af990b96824b513782f99e6e3d30035 new file mode 100644 index 00000000..02d5f228 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2279653d9af990b96824b513782f99e6e3d30035 differ diff --git a/fuzz/corpus/fuzz_write/227cfa5ec499ff787a8204577b6b87de13184cb2 b/fuzz/corpus/fuzz_write/227cfa5ec499ff787a8204577b6b87de13184cb2 new file mode 100644 index 00000000..2485e1ec Binary files /dev/null and b/fuzz/corpus/fuzz_write/227cfa5ec499ff787a8204577b6b87de13184cb2 differ diff --git a/fuzz/corpus/fuzz_write/22950aa797fa0c6aae5835ca08f135fb41f334a3 b/fuzz/corpus/fuzz_write/22950aa797fa0c6aae5835ca08f135fb41f334a3 new file mode 100644 index 00000000..4b3576d8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/22950aa797fa0c6aae5835ca08f135fb41f334a3 differ diff --git a/fuzz/corpus/fuzz_write/22bce6e741c9e75a034fbb7c23e7d6a6394f4cf8 b/fuzz/corpus/fuzz_write/22bce6e741c9e75a034fbb7c23e7d6a6394f4cf8 new file mode 100644 index 00000000..6e87c9ce --- /dev/null +++ b/fuzz/corpus/fuzz_write/22bce6e741c9e75a034fbb7c23e7d6a6394f4cf8 @@ -0,0 +1 @@ +PK1/ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/22d9c44352baf4742cf05bd69658b381c26a9d9c b/fuzz/corpus/fuzz_write/22d9c44352baf4742cf05bd69658b381c26a9d9c new file mode 100644 index 00000000..a849e336 Binary files /dev/null and b/fuzz/corpus/fuzz_write/22d9c44352baf4742cf05bd69658b381c26a9d9c differ diff --git a/fuzz/corpus/fuzz_write/22eaf94c9529091faa442e0e71b5cef56df68253 b/fuzz/corpus/fuzz_write/22eaf94c9529091faa442e0e71b5cef56df68253 new file mode 100644 index 00000000..ed68acec Binary files /dev/null and b/fuzz/corpus/fuzz_write/22eaf94c9529091faa442e0e71b5cef56df68253 differ diff --git a/fuzz/corpus/fuzz_write/22f724d8095c4d98d7606846c6df61dd9292a057 b/fuzz/corpus/fuzz_write/22f724d8095c4d98d7606846c6df61dd9292a057 new file mode 100644 index 00000000..85be2818 Binary files /dev/null and b/fuzz/corpus/fuzz_write/22f724d8095c4d98d7606846c6df61dd9292a057 differ diff --git a/fuzz/corpus/fuzz_write/23009d8cf031e7a27b0138d1b48863be094eacc2 b/fuzz/corpus/fuzz_write/23009d8cf031e7a27b0138d1b48863be094eacc2 new file mode 100644 index 00000000..6468b87a Binary files /dev/null and b/fuzz/corpus/fuzz_write/23009d8cf031e7a27b0138d1b48863be094eacc2 differ diff --git a/fuzz/corpus/fuzz_write/2306512e7410fe6f435d510358633d647ecb61b5 b/fuzz/corpus/fuzz_write/2306512e7410fe6f435d510358633d647ecb61b5 new file mode 100644 index 00000000..4a194c1a Binary files /dev/null and b/fuzz/corpus/fuzz_write/2306512e7410fe6f435d510358633d647ecb61b5 differ diff --git a/fuzz/corpus/fuzz_write/23153617ea929647344bb764952cceae89bab41d b/fuzz/corpus/fuzz_write/23153617ea929647344bb764952cceae89bab41d new file mode 100644 index 00000000..8828b066 Binary files /dev/null and b/fuzz/corpus/fuzz_write/23153617ea929647344bb764952cceae89bab41d differ diff --git a/fuzz/corpus/fuzz_write/23306ae05e121fe90d0882caf3a8b223b0f088b8 b/fuzz/corpus/fuzz_write/23306ae05e121fe90d0882caf3a8b223b0f088b8 new file mode 100644 index 00000000..ac871129 Binary files /dev/null and b/fuzz/corpus/fuzz_write/23306ae05e121fe90d0882caf3a8b223b0f088b8 differ diff --git a/fuzz/corpus/fuzz_write/23342f1cce25499b5652e049a3c7bd79e829e13a b/fuzz/corpus/fuzz_write/23342f1cce25499b5652e049a3c7bd79e829e13a new file mode 100644 index 00000000..b5c29677 Binary files /dev/null and b/fuzz/corpus/fuzz_write/23342f1cce25499b5652e049a3c7bd79e829e13a differ diff --git a/fuzz/corpus/fuzz_write/23714eda9eebc8929341cd63ea559d44ab0eacdd b/fuzz/corpus/fuzz_write/23714eda9eebc8929341cd63ea559d44ab0eacdd new file mode 100644 index 00000000..c35fd38e Binary files /dev/null and b/fuzz/corpus/fuzz_write/23714eda9eebc8929341cd63ea559d44ab0eacdd differ diff --git a/fuzz/corpus/fuzz_write/238841349a31c14647d1bf60cc5b7fe6912e327b b/fuzz/corpus/fuzz_write/238841349a31c14647d1bf60cc5b7fe6912e327b new file mode 100644 index 00000000..4f2e7574 Binary files /dev/null and b/fuzz/corpus/fuzz_write/238841349a31c14647d1bf60cc5b7fe6912e327b differ diff --git a/fuzz/corpus/fuzz_write/23b71ed8def2b92f09b4dc592477b22384fe12c9 b/fuzz/corpus/fuzz_write/23b71ed8def2b92f09b4dc592477b22384fe12c9 new file mode 100644 index 00000000..7cae573a Binary files /dev/null and b/fuzz/corpus/fuzz_write/23b71ed8def2b92f09b4dc592477b22384fe12c9 differ diff --git a/fuzz/corpus/fuzz_write/23c6ca2457588572c29906ebb3697e1e568b69c2 b/fuzz/corpus/fuzz_write/23c6ca2457588572c29906ebb3697e1e568b69c2 new file mode 100644 index 00000000..7857a5a7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/23c6ca2457588572c29906ebb3697e1e568b69c2 differ diff --git a/fuzz/corpus/fuzz_write/23c7005e510f609e7696433e10760a05641ade86 b/fuzz/corpus/fuzz_write/23c7005e510f609e7696433e10760a05641ade86 new file mode 100644 index 00000000..23f3c01d Binary files /dev/null and b/fuzz/corpus/fuzz_write/23c7005e510f609e7696433e10760a05641ade86 differ diff --git a/fuzz/corpus/fuzz_write/23d4f3b58f7a82cb4e8d957e6ca2971874369bfd b/fuzz/corpus/fuzz_write/23d4f3b58f7a82cb4e8d957e6ca2971874369bfd new file mode 100644 index 00000000..ae77664e --- /dev/null +++ b/fuzz/corpus/fuzz_write/23d4f3b58f7a82cb4e8d957e6ca2971874369bfd @@ -0,0 +1 @@ +AAA?-; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/23ffa623ee64c6dc36cba86d98991e71f080b85d b/fuzz/corpus/fuzz_write/23ffa623ee64c6dc36cba86d98991e71f080b85d new file mode 100644 index 00000000..9cf9b2b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/23ffa623ee64c6dc36cba86d98991e71f080b85d differ diff --git a/fuzz/corpus/fuzz_write/242e4645c9ec3eb475f3928502528ec5a39624c9 b/fuzz/corpus/fuzz_write/242e4645c9ec3eb475f3928502528ec5a39624c9 new file mode 100644 index 00000000..372057c2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/242e4645c9ec3eb475f3928502528ec5a39624c9 differ diff --git a/fuzz/corpus/fuzz_write/2433601ee52e476c825e798dc3d576d8aacbf3e2 b/fuzz/corpus/fuzz_write/2433601ee52e476c825e798dc3d576d8aacbf3e2 new file mode 100644 index 00000000..fbd7c931 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2433601ee52e476c825e798dc3d576d8aacbf3e2 differ diff --git a/fuzz/corpus/fuzz_write/24354c3ddb953aed3090cac1ba8a5f783f90cbfd b/fuzz/corpus/fuzz_write/24354c3ddb953aed3090cac1ba8a5f783f90cbfd new file mode 100644 index 00000000..9e553c47 Binary files /dev/null and b/fuzz/corpus/fuzz_write/24354c3ddb953aed3090cac1ba8a5f783f90cbfd differ diff --git a/fuzz/corpus/fuzz_write/244aa1f7ccb4f8e9340b4bcd61ff23589716ac36 b/fuzz/corpus/fuzz_write/244aa1f7ccb4f8e9340b4bcd61ff23589716ac36 new file mode 100644 index 00000000..5ea82851 Binary files /dev/null and b/fuzz/corpus/fuzz_write/244aa1f7ccb4f8e9340b4bcd61ff23589716ac36 differ diff --git a/fuzz/corpus/fuzz_write/244b003b68a9991aecbb41a998853e6c5ae2a9ed b/fuzz/corpus/fuzz_write/244b003b68a9991aecbb41a998853e6c5ae2a9ed new file mode 100644 index 00000000..63c9ecdb Binary files /dev/null and b/fuzz/corpus/fuzz_write/244b003b68a9991aecbb41a998853e6c5ae2a9ed differ diff --git a/fuzz/corpus/fuzz_write/247fbda3d4c60c9c092482b58b178e1da7ae34ce b/fuzz/corpus/fuzz_write/247fbda3d4c60c9c092482b58b178e1da7ae34ce new file mode 100644 index 00000000..0e0cf50d Binary files /dev/null and b/fuzz/corpus/fuzz_write/247fbda3d4c60c9c092482b58b178e1da7ae34ce differ diff --git a/fuzz/corpus/fuzz_write/2483ede2151de86b02b7b191f4c9d37b19338c47 b/fuzz/corpus/fuzz_write/2483ede2151de86b02b7b191f4c9d37b19338c47 new file mode 100644 index 00000000..e10ce26f Binary files /dev/null and b/fuzz/corpus/fuzz_write/2483ede2151de86b02b7b191f4c9d37b19338c47 differ diff --git a/fuzz/corpus/fuzz_write/2493064de8afd47789effc3e48929909e6d56c24 b/fuzz/corpus/fuzz_write/2493064de8afd47789effc3e48929909e6d56c24 new file mode 100644 index 00000000..c24e5d40 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2493064de8afd47789effc3e48929909e6d56c24 differ diff --git a/fuzz/corpus/fuzz_write/24b10eb7b8e2ed838255c9d449c4ecca22b8eb49 b/fuzz/corpus/fuzz_write/24b10eb7b8e2ed838255c9d449c4ecca22b8eb49 new file mode 100644 index 00000000..c7298467 Binary files /dev/null and b/fuzz/corpus/fuzz_write/24b10eb7b8e2ed838255c9d449c4ecca22b8eb49 differ diff --git a/fuzz/corpus/fuzz_write/24cf96e2b92929ec97c4e8105776fc329625e1f4 b/fuzz/corpus/fuzz_write/24cf96e2b92929ec97c4e8105776fc329625e1f4 new file mode 100644 index 00000000..92edb885 Binary files /dev/null and b/fuzz/corpus/fuzz_write/24cf96e2b92929ec97c4e8105776fc329625e1f4 differ diff --git a/fuzz/corpus/fuzz_write/24ed7160f87415e9300498d2c3d92fd5106e6521 b/fuzz/corpus/fuzz_write/24ed7160f87415e9300498d2c3d92fd5106e6521 new file mode 100644 index 00000000..8c706fa5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/24ed7160f87415e9300498d2c3d92fd5106e6521 differ diff --git a/fuzz/corpus/fuzz_write/24f45bbc8e2ddea89ab9a4f3fd8df8b3a26aa314 b/fuzz/corpus/fuzz_write/24f45bbc8e2ddea89ab9a4f3fd8df8b3a26aa314 new file mode 100644 index 00000000..b42c5e14 Binary files /dev/null and b/fuzz/corpus/fuzz_write/24f45bbc8e2ddea89ab9a4f3fd8df8b3a26aa314 differ diff --git a/fuzz/corpus/fuzz_write/24fb9094d1a18654cd31fa505d247594ca44b8d8 b/fuzz/corpus/fuzz_write/24fb9094d1a18654cd31fa505d247594ca44b8d8 new file mode 100644 index 00000000..75c9f96d Binary files /dev/null and b/fuzz/corpus/fuzz_write/24fb9094d1a18654cd31fa505d247594ca44b8d8 differ diff --git a/fuzz/corpus/fuzz_write/253b535da8a9439128739357c496394bd39b27b4 b/fuzz/corpus/fuzz_write/253b535da8a9439128739357c496394bd39b27b4 new file mode 100644 index 00000000..382743c3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/253b535da8a9439128739357c496394bd39b27b4 differ diff --git a/fuzz/corpus/fuzz_write/255b24ae1f93af7d33023c6a32aedb7b2c88d05c b/fuzz/corpus/fuzz_write/255b24ae1f93af7d33023c6a32aedb7b2c88d05c new file mode 100644 index 00000000..b095feb0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/255b24ae1f93af7d33023c6a32aedb7b2c88d05c differ diff --git a/fuzz/corpus/fuzz_write/255f41b40ab7c89ddc7e4979412c67f970ef3556 b/fuzz/corpus/fuzz_write/255f41b40ab7c89ddc7e4979412c67f970ef3556 new file mode 100644 index 00000000..7db49619 Binary files /dev/null and b/fuzz/corpus/fuzz_write/255f41b40ab7c89ddc7e4979412c67f970ef3556 differ diff --git a/fuzz/corpus/fuzz_write/256f40d0f0147056a301cff3b05076a9421a06b4 b/fuzz/corpus/fuzz_write/256f40d0f0147056a301cff3b05076a9421a06b4 new file mode 100644 index 00000000..5e13fe70 --- /dev/null +++ b/fuzz/corpus/fuzz_write/256f40d0f0147056a301cff3b05076a9421a06b4 @@ -0,0 +1 @@ +N.y;?KP^/; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/25804eed8a5ffecd30cd74fcba6971c8449a0bc5 b/fuzz/corpus/fuzz_write/25804eed8a5ffecd30cd74fcba6971c8449a0bc5 new file mode 100644 index 00000000..8280ccec Binary files /dev/null and b/fuzz/corpus/fuzz_write/25804eed8a5ffecd30cd74fcba6971c8449a0bc5 differ diff --git a/fuzz/corpus/fuzz_write/25828f4ca3fdc1e8ddc344317d2bc218400d793b b/fuzz/corpus/fuzz_write/25828f4ca3fdc1e8ddc344317d2bc218400d793b new file mode 100644 index 00000000..35952ca5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/25828f4ca3fdc1e8ddc344317d2bc218400d793b differ diff --git a/fuzz/corpus/fuzz_write/25c0d4b642e013b76f5f9a0c1305dc281dd1b8bc b/fuzz/corpus/fuzz_write/25c0d4b642e013b76f5f9a0c1305dc281dd1b8bc new file mode 100644 index 00000000..469203e3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/25c0d4b642e013b76f5f9a0c1305dc281dd1b8bc differ diff --git a/fuzz/corpus/fuzz_write/25c386a1e46b25629c1c8b62741fa310a12e08b7 b/fuzz/corpus/fuzz_write/25c386a1e46b25629c1c8b62741fa310a12e08b7 new file mode 100644 index 00000000..f4463de0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/25c386a1e46b25629c1c8b62741fa310a12e08b7 differ diff --git a/fuzz/corpus/fuzz_write/25e811672e7475b6d744e90eceab0a6b4532faa8 b/fuzz/corpus/fuzz_write/25e811672e7475b6d744e90eceab0a6b4532faa8 new file mode 100644 index 00000000..307883e5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/25e811672e7475b6d744e90eceab0a6b4532faa8 differ diff --git a/fuzz/corpus/fuzz_write/2662b0e3ef620aaa767eb895ae0d71e10a44badc b/fuzz/corpus/fuzz_write/2662b0e3ef620aaa767eb895ae0d71e10a44badc new file mode 100644 index 00000000..f146e913 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2662b0e3ef620aaa767eb895ae0d71e10a44badc differ diff --git a/fuzz/corpus/fuzz_write/266ce65339ae7c9a9ebb9bb0b1041247a9300fdf b/fuzz/corpus/fuzz_write/266ce65339ae7c9a9ebb9bb0b1041247a9300fdf new file mode 100644 index 00000000..0c673236 Binary files /dev/null and b/fuzz/corpus/fuzz_write/266ce65339ae7c9a9ebb9bb0b1041247a9300fdf differ diff --git a/fuzz/corpus/fuzz_write/267ff04c9b6723677fc2dc0b756b84ca6fdfa8f6 b/fuzz/corpus/fuzz_write/267ff04c9b6723677fc2dc0b756b84ca6fdfa8f6 new file mode 100644 index 00000000..9ac3da8e --- /dev/null +++ b/fuzz/corpus/fuzz_write/267ff04c9b6723677fc2dc0b756b84ca6fdfa8f6 @@ -0,0 +1 @@ +PK#CXP;K+ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/268e54856f49e5725d269203246cd613714cb66f b/fuzz/corpus/fuzz_write/268e54856f49e5725d269203246cd613714cb66f new file mode 100644 index 00000000..e7c45d10 Binary files /dev/null and b/fuzz/corpus/fuzz_write/268e54856f49e5725d269203246cd613714cb66f differ diff --git a/fuzz/corpus/fuzz_write/2692e6bd4e16fdbb56f7d2df2b1346b730dad456 b/fuzz/corpus/fuzz_write/2692e6bd4e16fdbb56f7d2df2b1346b730dad456 new file mode 100644 index 00000000..62d0c693 Binary files /dev/null and b/fuzz/corpus/fuzz_write/2692e6bd4e16fdbb56f7d2df2b1346b730dad456 differ diff --git a/fuzz/corpus/fuzz_write/26b39669b6753352260fe26a10f4faa7b90f08d4 b/fuzz/corpus/fuzz_write/26b39669b6753352260fe26a10f4faa7b90f08d4 new file mode 100644 index 00000000..78df7435 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26b39669b6753352260fe26a10f4faa7b90f08d4 differ diff --git a/fuzz/corpus/fuzz_write/26b731d2659ee2554f819cf3320901153d8a5f97 b/fuzz/corpus/fuzz_write/26b731d2659ee2554f819cf3320901153d8a5f97 new file mode 100644 index 00000000..13f2eb5c Binary files /dev/null and b/fuzz/corpus/fuzz_write/26b731d2659ee2554f819cf3320901153d8a5f97 differ diff --git a/fuzz/corpus/fuzz_write/26bf0751f408d15ed33b1ce93b5d4050a60099fb b/fuzz/corpus/fuzz_write/26bf0751f408d15ed33b1ce93b5d4050a60099fb new file mode 100644 index 00000000..85465e91 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26bf0751f408d15ed33b1ce93b5d4050a60099fb differ diff --git a/fuzz/corpus/fuzz_write/26c1202d8d23f70ae0114e3e9c043baa8c822aac b/fuzz/corpus/fuzz_write/26c1202d8d23f70ae0114e3e9c043baa8c822aac new file mode 100644 index 00000000..02f6a7c9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26c1202d8d23f70ae0114e3e9c043baa8c822aac differ diff --git a/fuzz/corpus/fuzz_write/26cde85b2454a8b05756d677c62ac46345903767 b/fuzz/corpus/fuzz_write/26cde85b2454a8b05756d677c62ac46345903767 new file mode 100644 index 00000000..057de196 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26cde85b2454a8b05756d677c62ac46345903767 differ diff --git a/fuzz/corpus/fuzz_write/26d7d254416b26cae16360ddcf99d3672eefefaa b/fuzz/corpus/fuzz_write/26d7d254416b26cae16360ddcf99d3672eefefaa new file mode 100644 index 00000000..ac532be2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26d7d254416b26cae16360ddcf99d3672eefefaa differ diff --git a/fuzz/corpus/fuzz_write/26ec317d97db6a1601a9fc0bdd458f505183ea05 b/fuzz/corpus/fuzz_write/26ec317d97db6a1601a9fc0bdd458f505183ea05 new file mode 100644 index 00000000..1681a290 Binary files /dev/null and b/fuzz/corpus/fuzz_write/26ec317d97db6a1601a9fc0bdd458f505183ea05 differ diff --git a/fuzz/corpus/fuzz_write/270dafa0cab187c4ca5630309967181a0024c59e b/fuzz/corpus/fuzz_write/270dafa0cab187c4ca5630309967181a0024c59e new file mode 100644 index 00000000..ae684afc Binary files /dev/null and b/fuzz/corpus/fuzz_write/270dafa0cab187c4ca5630309967181a0024c59e differ diff --git a/fuzz/corpus/fuzz_write/273c530fb3b4c56c9d24a7cead6a71108f1c433a b/fuzz/corpus/fuzz_write/273c530fb3b4c56c9d24a7cead6a71108f1c433a new file mode 100644 index 00000000..644da089 Binary files /dev/null and b/fuzz/corpus/fuzz_write/273c530fb3b4c56c9d24a7cead6a71108f1c433a differ diff --git a/fuzz/corpus/fuzz_write/27500eb8996745f26f8d53a7ecf1c766a6250ed6 b/fuzz/corpus/fuzz_write/27500eb8996745f26f8d53a7ecf1c766a6250ed6 new file mode 100644 index 00000000..3036962c Binary files /dev/null and b/fuzz/corpus/fuzz_write/27500eb8996745f26f8d53a7ecf1c766a6250ed6 differ diff --git a/fuzz/corpus/fuzz_write/275365aa342a778b9ce9b9baec2d2b6002cd6b2c b/fuzz/corpus/fuzz_write/275365aa342a778b9ce9b9baec2d2b6002cd6b2c new file mode 100644 index 00000000..d94e2646 Binary files /dev/null and b/fuzz/corpus/fuzz_write/275365aa342a778b9ce9b9baec2d2b6002cd6b2c differ diff --git a/fuzz/corpus/fuzz_write/2775e45f018ef5446d5145b38e7605d9ca4205b3 b/fuzz/corpus/fuzz_write/2775e45f018ef5446d5145b38e7605d9ca4205b3 new file mode 100644 index 00000000..f06560e9 --- /dev/null +++ b/fuzz/corpus/fuzz_write/2775e45f018ef5446d5145b38e7605d9ca4205b3 @@ -0,0 +1 @@ +PK#K!c !KPKP+K# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/277f06d1164c46786e0b513e224cb98da70d4f1c b/fuzz/corpus/fuzz_write/277f06d1164c46786e0b513e224cb98da70d4f1c new file mode 100644 index 00000000..062f87a3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/277f06d1164c46786e0b513e224cb98da70d4f1c differ diff --git a/fuzz/corpus/fuzz_write/278483ec1daa31af34eb69c4b6603e7b4ecbe0ce b/fuzz/corpus/fuzz_write/278483ec1daa31af34eb69c4b6603e7b4ecbe0ce new file mode 100644 index 00000000..4ef66511 Binary files /dev/null and b/fuzz/corpus/fuzz_write/278483ec1daa31af34eb69c4b6603e7b4ecbe0ce differ diff --git a/fuzz/corpus/fuzz_write/284a8f6474b3110923f340cc01bf201cfd9bf9c8 b/fuzz/corpus/fuzz_write/284a8f6474b3110923f340cc01bf201cfd9bf9c8 new file mode 100644 index 00000000..f34c61c4 --- /dev/null +++ b/fuzz/corpus/fuzz_write/284a8f6474b3110923f340cc01bf201cfd9bf9c8 @@ -0,0 +1 @@ +A)(!=))`*`) \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/289d05ae92c49be579c98e0268b0d2cefacc4ed7 b/fuzz/corpus/fuzz_write/289d05ae92c49be579c98e0268b0d2cefacc4ed7 new file mode 100644 index 00000000..dcadb057 Binary files /dev/null and b/fuzz/corpus/fuzz_write/289d05ae92c49be579c98e0268b0d2cefacc4ed7 differ diff --git a/fuzz/corpus/fuzz_write/289ec9e3042d1f76ffc6e6c4460294528fda48f6 b/fuzz/corpus/fuzz_write/289ec9e3042d1f76ffc6e6c4460294528fda48f6 new file mode 100644 index 00000000..43433028 --- /dev/null +++ b/fuzz/corpus/fuzz_write/289ec9e3042d1f76ffc6e6c4460294528fda48f6 @@ -0,0 +1 @@ +`P) \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c4d65e9f18187ae64c7709f390a329e89b57c7b5 b/fuzz/corpus/fuzz_write/c4d65e9f18187ae64c7709f390a329e89b57c7b5 new file mode 100644 index 00000000..569f6aac --- /dev/null +++ b/fuzz/corpus/fuzz_write/c4d65e9f18187ae64c7709f390a329e89b57c7b5 @@ -0,0 +1,2 @@ + ++ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c4fda74112d8c84519c11aee330a05ce537e8ef6 b/fuzz/corpus/fuzz_write/c4fda74112d8c84519c11aee330a05ce537e8ef6 new file mode 100644 index 00000000..08e26aee Binary files /dev/null and b/fuzz/corpus/fuzz_write/c4fda74112d8c84519c11aee330a05ce537e8ef6 differ diff --git a/fuzz/corpus/fuzz_write/c51215b70f6188ebc5e461e06b8f00ee1817fd2c b/fuzz/corpus/fuzz_write/c51215b70f6188ebc5e461e06b8f00ee1817fd2c new file mode 100644 index 00000000..cccafc0e Binary files /dev/null and b/fuzz/corpus/fuzz_write/c51215b70f6188ebc5e461e06b8f00ee1817fd2c differ diff --git a/fuzz/corpus/fuzz_write/c51db98354c630ea79d1a93b83eaa0910aa04de0 b/fuzz/corpus/fuzz_write/c51db98354c630ea79d1a93b83eaa0910aa04de0 new file mode 100644 index 00000000..be71e4bd Binary files /dev/null and b/fuzz/corpus/fuzz_write/c51db98354c630ea79d1a93b83eaa0910aa04de0 differ diff --git a/fuzz/corpus/fuzz_write/c5225597a35ab317b222ff87cce393519f8fe8cf b/fuzz/corpus/fuzz_write/c5225597a35ab317b222ff87cce393519f8fe8cf new file mode 100644 index 00000000..f8ce57db Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5225597a35ab317b222ff87cce393519f8fe8cf differ diff --git a/fuzz/corpus/fuzz_write/c5377e9b57bfdc8d521361790884ae7375f1cb26 b/fuzz/corpus/fuzz_write/c5377e9b57bfdc8d521361790884ae7375f1cb26 new file mode 100644 index 00000000..c9252ac3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5377e9b57bfdc8d521361790884ae7375f1cb26 differ diff --git a/fuzz/corpus/fuzz_write/c541f11a1b116a2403669ed26ecffa0a350bf50e b/fuzz/corpus/fuzz_write/c541f11a1b116a2403669ed26ecffa0a350bf50e new file mode 100644 index 00000000..c3303fa2 --- /dev/null +++ b/fuzz/corpus/fuzz_write/c541f11a1b116a2403669ed26ecffa0a350bf50e @@ -0,0 +1 @@ +PI#! $## \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c550e9bb31647680d6a885ea7c467509e3bd0a85 b/fuzz/corpus/fuzz_write/c550e9bb31647680d6a885ea7c467509e3bd0a85 new file mode 100644 index 00000000..2f8ab614 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c550e9bb31647680d6a885ea7c467509e3bd0a85 differ diff --git a/fuzz/corpus/fuzz_write/c551316c6a7a6fd8ab055896a50bba8198ca80de b/fuzz/corpus/fuzz_write/c551316c6a7a6fd8ab055896a50bba8198ca80de new file mode 100644 index 00000000..fadd0b85 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c551316c6a7a6fd8ab055896a50bba8198ca80de differ diff --git a/fuzz/corpus/fuzz_write/c5559ad6fbcf9fdbd82b3b6d7d3ae6c1098c2677 b/fuzz/corpus/fuzz_write/c5559ad6fbcf9fdbd82b3b6d7d3ae6c1098c2677 new file mode 100644 index 00000000..ae20e444 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5559ad6fbcf9fdbd82b3b6d7d3ae6c1098c2677 differ diff --git a/fuzz/corpus/fuzz_write/c55e0070f7ec0fb31cade0c2328af87f3232f61a b/fuzz/corpus/fuzz_write/c55e0070f7ec0fb31cade0c2328af87f3232f61a new file mode 100644 index 00000000..82545f8c Binary files /dev/null and b/fuzz/corpus/fuzz_write/c55e0070f7ec0fb31cade0c2328af87f3232f61a differ diff --git a/fuzz/corpus/fuzz_write/c56d54bef6922777b93b97b67d3430fc82b61900 b/fuzz/corpus/fuzz_write/c56d54bef6922777b93b97b67d3430fc82b61900 new file mode 100644 index 00000000..afdc854f Binary files /dev/null and b/fuzz/corpus/fuzz_write/c56d54bef6922777b93b97b67d3430fc82b61900 differ diff --git a/fuzz/corpus/fuzz_write/c577851afd25e9ada6e878e19bac49d9e3b0fa85 b/fuzz/corpus/fuzz_write/c577851afd25e9ada6e878e19bac49d9e3b0fa85 new file mode 100644 index 00000000..a74f7998 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c577851afd25e9ada6e878e19bac49d9e3b0fa85 differ diff --git a/fuzz/corpus/fuzz_write/c58c4d9f7e447be2b9d4b20a62cb5136c2ad2d8d b/fuzz/corpus/fuzz_write/c58c4d9f7e447be2b9d4b20a62cb5136c2ad2d8d new file mode 100644 index 00000000..d3d165cf Binary files /dev/null and b/fuzz/corpus/fuzz_write/c58c4d9f7e447be2b9d4b20a62cb5136c2ad2d8d differ diff --git a/fuzz/corpus/fuzz_write/c58e11ca6d0472305c3a1f2b035ae6e1c9b8b62d b/fuzz/corpus/fuzz_write/c58e11ca6d0472305c3a1f2b035ae6e1c9b8b62d new file mode 100644 index 00000000..ffb3da44 --- /dev/null +++ b/fuzz/corpus/fuzz_write/c58e11ca6d0472305c3a1f2b035ae6e1c9b8b62d @@ -0,0 +1 @@ +ĵ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c5a552447fa8561180b53793c0766b891ecc7b37 b/fuzz/corpus/fuzz_write/c5a552447fa8561180b53793c0766b891ecc7b37 new file mode 100644 index 00000000..62d10b4a Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5a552447fa8561180b53793c0766b891ecc7b37 differ diff --git a/fuzz/corpus/fuzz_write/c5d40191c38e3639234535a68214a99402d05839 b/fuzz/corpus/fuzz_write/c5d40191c38e3639234535a68214a99402d05839 new file mode 100644 index 00000000..a4fd712a Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5d40191c38e3639234535a68214a99402d05839 differ diff --git a/fuzz/corpus/fuzz_write/c5e8dda326185d50f80c943af757c421af57ff97 b/fuzz/corpus/fuzz_write/c5e8dda326185d50f80c943af757c421af57ff97 new file mode 100644 index 00000000..09c7284d Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5e8dda326185d50f80c943af757c421af57ff97 differ diff --git a/fuzz/corpus/fuzz_write/c5ec022cd217847405ace81cb61bd052085dcaf7 b/fuzz/corpus/fuzz_write/c5ec022cd217847405ace81cb61bd052085dcaf7 new file mode 100644 index 00000000..ee3f60c4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5ec022cd217847405ace81cb61bd052085dcaf7 differ diff --git a/fuzz/corpus/fuzz_write/c5ec705de9b23b1dd56c64e8a6ee7afd44b76ba8 b/fuzz/corpus/fuzz_write/c5ec705de9b23b1dd56c64e8a6ee7afd44b76ba8 new file mode 100644 index 00000000..dc515a23 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c5ec705de9b23b1dd56c64e8a6ee7afd44b76ba8 differ diff --git a/fuzz/corpus/fuzz_write/c614d2ea945dccff384f51bf92c453cdf2095306 b/fuzz/corpus/fuzz_write/c614d2ea945dccff384f51bf92c453cdf2095306 new file mode 100644 index 00000000..3acd7ea4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c614d2ea945dccff384f51bf92c453cdf2095306 differ diff --git a/fuzz/corpus/fuzz_write/c63af44847687f6c82eeb43d48a4fcf53dc2ef34 b/fuzz/corpus/fuzz_write/c63af44847687f6c82eeb43d48a4fcf53dc2ef34 new file mode 100644 index 00000000..4d0133b6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c63af44847687f6c82eeb43d48a4fcf53dc2ef34 differ diff --git a/fuzz/corpus/fuzz_write/c666f4674a1b5175968c191e5fd8765bb75f2766 b/fuzz/corpus/fuzz_write/c666f4674a1b5175968c191e5fd8765bb75f2766 new file mode 100644 index 00000000..5fb4f278 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c666f4674a1b5175968c191e5fd8765bb75f2766 differ diff --git a/fuzz/corpus/fuzz_write/c6718753b0edc2382e216d2c0c16fcdf18c9d0c8 b/fuzz/corpus/fuzz_write/c6718753b0edc2382e216d2c0c16fcdf18c9d0c8 new file mode 100644 index 00000000..2dad0dfe Binary files /dev/null and b/fuzz/corpus/fuzz_write/c6718753b0edc2382e216d2c0c16fcdf18c9d0c8 differ diff --git a/fuzz/corpus/fuzz_write/c69452352510027383da8089980558eb931fc94b b/fuzz/corpus/fuzz_write/c69452352510027383da8089980558eb931fc94b new file mode 100644 index 00000000..b674b45c Binary files /dev/null and b/fuzz/corpus/fuzz_write/c69452352510027383da8089980558eb931fc94b differ diff --git a/fuzz/corpus/fuzz_write/c6a7df58d1966588ccca729bbcf8726f014c8a46 b/fuzz/corpus/fuzz_write/c6a7df58d1966588ccca729bbcf8726f014c8a46 new file mode 100644 index 00000000..deb43cda Binary files /dev/null and b/fuzz/corpus/fuzz_write/c6a7df58d1966588ccca729bbcf8726f014c8a46 differ diff --git a/fuzz/corpus/fuzz_write/c6c3229305c5aa165b06fc786f704b26f86f6d05 b/fuzz/corpus/fuzz_write/c6c3229305c5aa165b06fc786f704b26f86f6d05 new file mode 100644 index 00000000..4166beaf --- /dev/null +++ b/fuzz/corpus/fuzz_write/c6c3229305c5aa165b06fc786f704b26f86f6d05 @@ -0,0 +1 @@ +) \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c6ea19f09c2f2f0d9409256ee9d5dde19b74a836 b/fuzz/corpus/fuzz_write/c6ea19f09c2f2f0d9409256ee9d5dde19b74a836 new file mode 100644 index 00000000..dbd94e69 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c6ea19f09c2f2f0d9409256ee9d5dde19b74a836 differ diff --git a/fuzz/corpus/fuzz_write/c71feec1ec485b61976c04238435bf2f5bc89148 b/fuzz/corpus/fuzz_write/c71feec1ec485b61976c04238435bf2f5bc89148 new file mode 100644 index 00000000..a37749c1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c71feec1ec485b61976c04238435bf2f5bc89148 differ diff --git a/fuzz/corpus/fuzz_write/c757905acb1e42ce99e417045a1bc19920eaa777 b/fuzz/corpus/fuzz_write/c757905acb1e42ce99e417045a1bc19920eaa777 new file mode 100644 index 00000000..1e1c6014 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c757905acb1e42ce99e417045a1bc19920eaa777 differ diff --git a/fuzz/corpus/fuzz_write/c781108de506ee5665b04298246ff29088de89ab b/fuzz/corpus/fuzz_write/c781108de506ee5665b04298246ff29088de89ab new file mode 100644 index 00000000..432cb8da Binary files /dev/null and b/fuzz/corpus/fuzz_write/c781108de506ee5665b04298246ff29088de89ab differ diff --git a/fuzz/corpus/fuzz_write/c78b74aa10f224a7a871b5294b0f06db4c61ea98 b/fuzz/corpus/fuzz_write/c78b74aa10f224a7a871b5294b0f06db4c61ea98 new file mode 100644 index 00000000..e71ced60 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c78b74aa10f224a7a871b5294b0f06db4c61ea98 differ diff --git a/fuzz/corpus/fuzz_write/c79d879ad29497d3317e60ab41c50d63e246579e b/fuzz/corpus/fuzz_write/c79d879ad29497d3317e60ab41c50d63e246579e new file mode 100644 index 00000000..6cd90dfb Binary files /dev/null and b/fuzz/corpus/fuzz_write/c79d879ad29497d3317e60ab41c50d63e246579e differ diff --git a/fuzz/corpus/fuzz_write/c7a5f4d55378276ed6531773b86ff6e2a1b1e430 b/fuzz/corpus/fuzz_write/c7a5f4d55378276ed6531773b86ff6e2a1b1e430 new file mode 100644 index 00000000..f6aa20bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/c7a5f4d55378276ed6531773b86ff6e2a1b1e430 differ diff --git a/fuzz/corpus/fuzz_write/c7dd8c0344d495b322a45ee74eaeee97f1ec979b b/fuzz/corpus/fuzz_write/c7dd8c0344d495b322a45ee74eaeee97f1ec979b new file mode 100644 index 00000000..85775574 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c7dd8c0344d495b322a45ee74eaeee97f1ec979b differ diff --git a/fuzz/corpus/fuzz_write/c7e9902b6b9c2651bb6469a8435ffad8a23abf79 b/fuzz/corpus/fuzz_write/c7e9902b6b9c2651bb6469a8435ffad8a23abf79 new file mode 100644 index 00000000..9275176f Binary files /dev/null and b/fuzz/corpus/fuzz_write/c7e9902b6b9c2651bb6469a8435ffad8a23abf79 differ diff --git a/fuzz/corpus/fuzz_write/c84f37762a4242f14609739defb87c0db1970db4 b/fuzz/corpus/fuzz_write/c84f37762a4242f14609739defb87c0db1970db4 new file mode 100644 index 00000000..96bda13f Binary files /dev/null and b/fuzz/corpus/fuzz_write/c84f37762a4242f14609739defb87c0db1970db4 differ diff --git a/fuzz/corpus/fuzz_write/c869524cdacfeb3c287e804a0780d883f53070ba b/fuzz/corpus/fuzz_write/c869524cdacfeb3c287e804a0780d883f53070ba new file mode 100644 index 00000000..306f4499 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c869524cdacfeb3c287e804a0780d883f53070ba differ diff --git a/fuzz/corpus/fuzz_write/c86e9f103022bf814e192d83ee7ce04f2875b266 b/fuzz/corpus/fuzz_write/c86e9f103022bf814e192d83ee7ce04f2875b266 new file mode 100644 index 00000000..429b05b7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c86e9f103022bf814e192d83ee7ce04f2875b266 differ diff --git a/fuzz/corpus/fuzz_write/c8765ad0e0c245109fbf9e05c77e5cb886263dbc b/fuzz/corpus/fuzz_write/c8765ad0e0c245109fbf9e05c77e5cb886263dbc new file mode 100644 index 00000000..c344e79e Binary files /dev/null and b/fuzz/corpus/fuzz_write/c8765ad0e0c245109fbf9e05c77e5cb886263dbc differ diff --git a/fuzz/corpus/fuzz_write/c8b15374f2630f1ab715775e3cf3384f49a12623 b/fuzz/corpus/fuzz_write/c8b15374f2630f1ab715775e3cf3384f49a12623 new file mode 100644 index 00000000..a7632db4 --- /dev/null +++ b/fuzz/corpus/fuzz_write/c8b15374f2630f1ab715775e3cf3384f49a12623 @@ -0,0 +1 @@ +N.y;?KP^/; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/c8b97187c2bb2526b7e044fc9831bbf1f0d69938 b/fuzz/corpus/fuzz_write/c8b97187c2bb2526b7e044fc9831bbf1f0d69938 new file mode 100644 index 00000000..ba175849 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c8b97187c2bb2526b7e044fc9831bbf1f0d69938 differ diff --git a/fuzz/corpus/fuzz_write/c8d20808c8983f96e245ade7bd1ec49fa87a6e10 b/fuzz/corpus/fuzz_write/c8d20808c8983f96e245ade7bd1ec49fa87a6e10 new file mode 100644 index 00000000..c2d1a3a1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c8d20808c8983f96e245ade7bd1ec49fa87a6e10 differ diff --git a/fuzz/corpus/fuzz_write/c8e2fd4fe27a4df32db44fea97d0af3b6e07a694 b/fuzz/corpus/fuzz_write/c8e2fd4fe27a4df32db44fea97d0af3b6e07a694 new file mode 100644 index 00000000..4338c636 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c8e2fd4fe27a4df32db44fea97d0af3b6e07a694 differ diff --git a/fuzz/corpus/fuzz_write/c8f90e27a733ee8fb3f3c3a783f5f321904a150f b/fuzz/corpus/fuzz_write/c8f90e27a733ee8fb3f3c3a783f5f321904a150f new file mode 100644 index 00000000..b5b49ab8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c8f90e27a733ee8fb3f3c3a783f5f321904a150f differ diff --git a/fuzz/corpus/fuzz_write/c9114de39890c8487a98f3914833d6c529bc7e78 b/fuzz/corpus/fuzz_write/c9114de39890c8487a98f3914833d6c529bc7e78 new file mode 100644 index 00000000..224abeb6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c9114de39890c8487a98f3914833d6c529bc7e78 differ diff --git a/fuzz/corpus/fuzz_write/c93b45ed62a1b8cc8e788aef9430eb4b237bea91 b/fuzz/corpus/fuzz_write/c93b45ed62a1b8cc8e788aef9430eb4b237bea91 new file mode 100644 index 00000000..1efeae46 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c93b45ed62a1b8cc8e788aef9430eb4b237bea91 differ diff --git a/fuzz/corpus/fuzz_write/c971f8824841ce02e48c873733afcc6c6a9d7222 b/fuzz/corpus/fuzz_write/c971f8824841ce02e48c873733afcc6c6a9d7222 new file mode 100644 index 00000000..8ff632ec Binary files /dev/null and b/fuzz/corpus/fuzz_write/c971f8824841ce02e48c873733afcc6c6a9d7222 differ diff --git a/fuzz/corpus/fuzz_write/c98300c91184e05d0a7750abc374ff1f4f1996fd b/fuzz/corpus/fuzz_write/c98300c91184e05d0a7750abc374ff1f4f1996fd new file mode 100644 index 00000000..ce311dbe Binary files /dev/null and b/fuzz/corpus/fuzz_write/c98300c91184e05d0a7750abc374ff1f4f1996fd differ diff --git a/fuzz/corpus/fuzz_write/c99e96c1422bdfe02341c3ac4f9e2b814c1f5fb6 b/fuzz/corpus/fuzz_write/c99e96c1422bdfe02341c3ac4f9e2b814c1f5fb6 new file mode 100644 index 00000000..ebcbcc0c Binary files /dev/null and b/fuzz/corpus/fuzz_write/c99e96c1422bdfe02341c3ac4f9e2b814c1f5fb6 differ diff --git a/fuzz/corpus/fuzz_write/c99fb3a3bc5b377c28efb21573ce9c80bfa6d42d b/fuzz/corpus/fuzz_write/c99fb3a3bc5b377c28efb21573ce9c80bfa6d42d new file mode 100644 index 00000000..7c52e7e3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c99fb3a3bc5b377c28efb21573ce9c80bfa6d42d differ diff --git a/fuzz/corpus/fuzz_write/c9b09abcf16995f9eb8f82e0c21d16f25fc9acda b/fuzz/corpus/fuzz_write/c9b09abcf16995f9eb8f82e0c21d16f25fc9acda new file mode 100644 index 00000000..a39b790d Binary files /dev/null and b/fuzz/corpus/fuzz_write/c9b09abcf16995f9eb8f82e0c21d16f25fc9acda differ diff --git a/fuzz/corpus/fuzz_write/c9ce6f4bee8d21c9843f4e3efd201af3acf53fbd b/fuzz/corpus/fuzz_write/c9ce6f4bee8d21c9843f4e3efd201af3acf53fbd new file mode 100644 index 00000000..3f3ec440 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c9ce6f4bee8d21c9843f4e3efd201af3acf53fbd differ diff --git a/fuzz/corpus/fuzz_write/c9cf9aad66deebc6b572b58cb316650834738ec6 b/fuzz/corpus/fuzz_write/c9cf9aad66deebc6b572b58cb316650834738ec6 new file mode 100644 index 00000000..88747942 Binary files /dev/null and b/fuzz/corpus/fuzz_write/c9cf9aad66deebc6b572b58cb316650834738ec6 differ diff --git a/fuzz/corpus/fuzz_write/c9d4eb1c92b743fe9a082cdcd1ce8b037484138f b/fuzz/corpus/fuzz_write/c9d4eb1c92b743fe9a082cdcd1ce8b037484138f new file mode 100644 index 00000000..273aa85c --- /dev/null +++ b/fuzz/corpus/fuzz_write/c9d4eb1c92b743fe9a082cdcd1ce8b037484138f @@ -0,0 +1 @@ +)!Wc)!W)) \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/ca0b517c2321266f8495f40582d56eed55bf695b b/fuzz/corpus/fuzz_write/ca0b517c2321266f8495f40582d56eed55bf695b new file mode 100644 index 00000000..bd4d9733 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca0b517c2321266f8495f40582d56eed55bf695b differ diff --git a/fuzz/corpus/fuzz_write/ca105e2383f6daaaf95e41ddbdc3811eaceb39be b/fuzz/corpus/fuzz_write/ca105e2383f6daaaf95e41ddbdc3811eaceb39be new file mode 100644 index 00000000..7f0410e9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca105e2383f6daaaf95e41ddbdc3811eaceb39be differ diff --git a/fuzz/corpus/fuzz_write/ca3860e5482eb40867a058228e77b05024713273 b/fuzz/corpus/fuzz_write/ca3860e5482eb40867a058228e77b05024713273 new file mode 100644 index 00000000..0c72f637 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca3860e5482eb40867a058228e77b05024713273 differ diff --git a/fuzz/corpus/fuzz_write/ca439ed50d361e05bdcbdce17af078301c11da44 b/fuzz/corpus/fuzz_write/ca439ed50d361e05bdcbdce17af078301c11da44 new file mode 100644 index 00000000..58d3e978 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca439ed50d361e05bdcbdce17af078301c11da44 differ diff --git a/fuzz/corpus/fuzz_write/ca519a3c6a65ae0bce3e9911f67f383c4d6c1aaf b/fuzz/corpus/fuzz_write/ca519a3c6a65ae0bce3e9911f67f383c4d6c1aaf new file mode 100644 index 00000000..14888bb4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca519a3c6a65ae0bce3e9911f67f383c4d6c1aaf differ diff --git a/fuzz/corpus/fuzz_write/ca5c0f93ddbed7200ae0cdc9b381db35620460b1 b/fuzz/corpus/fuzz_write/ca5c0f93ddbed7200ae0cdc9b381db35620460b1 new file mode 100644 index 00000000..49038239 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca5c0f93ddbed7200ae0cdc9b381db35620460b1 differ diff --git a/fuzz/corpus/fuzz_write/ca62924266a94ab5e2ef1b36923f6375a08517e2 b/fuzz/corpus/fuzz_write/ca62924266a94ab5e2ef1b36923f6375a08517e2 new file mode 100644 index 00000000..3066699f Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca62924266a94ab5e2ef1b36923f6375a08517e2 differ diff --git a/fuzz/corpus/fuzz_write/ca68ab2cb83eb2a34119d65fcf6c02e54f462aca b/fuzz/corpus/fuzz_write/ca68ab2cb83eb2a34119d65fcf6c02e54f462aca new file mode 100644 index 00000000..230bd98c Binary files /dev/null and b/fuzz/corpus/fuzz_write/ca68ab2cb83eb2a34119d65fcf6c02e54f462aca differ diff --git a/fuzz/corpus/fuzz_write/cabd893c7daae607fc5c167eab2a98ddba66c699 b/fuzz/corpus/fuzz_write/cabd893c7daae607fc5c167eab2a98ddba66c699 new file mode 100644 index 00000000..9e11e788 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cabd893c7daae607fc5c167eab2a98ddba66c699 differ diff --git a/fuzz/corpus/fuzz_write/cabf3df1c5b2d768f59d6e176224997e9ae1d04a b/fuzz/corpus/fuzz_write/cabf3df1c5b2d768f59d6e176224997e9ae1d04a new file mode 100644 index 00000000..24ccfb4d Binary files /dev/null and b/fuzz/corpus/fuzz_write/cabf3df1c5b2d768f59d6e176224997e9ae1d04a differ diff --git a/fuzz/corpus/fuzz_write/caf5649cf0fd904ae81dc3cd5125822f2f0f3f5b b/fuzz/corpus/fuzz_write/caf5649cf0fd904ae81dc3cd5125822f2f0f3f5b new file mode 100644 index 00000000..05d37a50 Binary files /dev/null and b/fuzz/corpus/fuzz_write/caf5649cf0fd904ae81dc3cd5125822f2f0f3f5b differ diff --git a/fuzz/corpus/fuzz_write/cb1821d4ffb1cf643f4d84c1a8e99e63395a584d b/fuzz/corpus/fuzz_write/cb1821d4ffb1cf643f4d84c1a8e99e63395a584d new file mode 100644 index 00000000..dbce66dd Binary files /dev/null and b/fuzz/corpus/fuzz_write/cb1821d4ffb1cf643f4d84c1a8e99e63395a584d differ diff --git a/fuzz/corpus/fuzz_write/cb1ed7e9c469c18996750b86df33d32d837d6acc b/fuzz/corpus/fuzz_write/cb1ed7e9c469c18996750b86df33d32d837d6acc new file mode 100644 index 00000000..2d4af6b5 --- /dev/null +++ b/fuzz/corpus/fuzz_write/cb1ed7e9c469c18996750b86df33d32d837d6acc @@ -0,0 +1 @@ +(/..///( \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/cb2f3eb9a3559c2005b9110a3d090fdd0852f3fa b/fuzz/corpus/fuzz_write/cb2f3eb9a3559c2005b9110a3d090fdd0852f3fa new file mode 100644 index 00000000..ea57f296 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cb2f3eb9a3559c2005b9110a3d090fdd0852f3fa differ diff --git a/fuzz/corpus/fuzz_write/cb3df1ea072e05e22e66af12a4054767a9d73212 b/fuzz/corpus/fuzz_write/cb3df1ea072e05e22e66af12a4054767a9d73212 new file mode 100644 index 00000000..ec40e381 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cb3df1ea072e05e22e66af12a4054767a9d73212 differ diff --git a/fuzz/corpus/fuzz_write/cb64a82ddea958c2c3fcd045c9eff8bd4a826e08 b/fuzz/corpus/fuzz_write/cb64a82ddea958c2c3fcd045c9eff8bd4a826e08 new file mode 100644 index 00000000..aa9c6e76 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cb64a82ddea958c2c3fcd045c9eff8bd4a826e08 differ diff --git a/fuzz/corpus/fuzz_write/cbf0d89e7f4dcf185e7e29a431ba14fcb9bb4705 b/fuzz/corpus/fuzz_write/cbf0d89e7f4dcf185e7e29a431ba14fcb9bb4705 new file mode 100644 index 00000000..57997336 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cbf0d89e7f4dcf185e7e29a431ba14fcb9bb4705 differ diff --git a/fuzz/corpus/fuzz_write/cbf57a71ad03e4c6f0fb6ad08b462bce56987006 b/fuzz/corpus/fuzz_write/cbf57a71ad03e4c6f0fb6ad08b462bce56987006 new file mode 100644 index 00000000..2ac1687f Binary files /dev/null and b/fuzz/corpus/fuzz_write/cbf57a71ad03e4c6f0fb6ad08b462bce56987006 differ diff --git a/fuzz/corpus/fuzz_write/cbfac70b391f36c4cbe30cdfb4927d0dcd4b1ee2 b/fuzz/corpus/fuzz_write/cbfac70b391f36c4cbe30cdfb4927d0dcd4b1ee2 new file mode 100644 index 00000000..214a7c54 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cbfac70b391f36c4cbe30cdfb4927d0dcd4b1ee2 differ diff --git a/fuzz/corpus/fuzz_write/cc13f0cb469850c4fd5de8ca9a427c11bba1be7d b/fuzz/corpus/fuzz_write/cc13f0cb469850c4fd5de8ca9a427c11bba1be7d new file mode 100644 index 00000000..d5ecea15 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc13f0cb469850c4fd5de8ca9a427c11bba1be7d differ diff --git a/fuzz/corpus/fuzz_write/cc14a50b5a6790c652efb2b6571a2f59bc2c5bb0 b/fuzz/corpus/fuzz_write/cc14a50b5a6790c652efb2b6571a2f59bc2c5bb0 new file mode 100644 index 00000000..a7d5308e Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc14a50b5a6790c652efb2b6571a2f59bc2c5bb0 differ diff --git a/fuzz/corpus/fuzz_write/cc18ec83764bdb7087a3a090104e4d974aca59dd b/fuzz/corpus/fuzz_write/cc18ec83764bdb7087a3a090104e4d974aca59dd new file mode 100644 index 00000000..649e9d81 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc18ec83764bdb7087a3a090104e4d974aca59dd differ diff --git a/fuzz/corpus/fuzz_write/cc23b0e51ba8872cc4103e83ee0f712079164e02 b/fuzz/corpus/fuzz_write/cc23b0e51ba8872cc4103e83ee0f712079164e02 new file mode 100644 index 00000000..590b1d85 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc23b0e51ba8872cc4103e83ee0f712079164e02 differ diff --git a/fuzz/corpus/fuzz_write/cc30bc544ef66e53417cef21218bd39de3b02e21 b/fuzz/corpus/fuzz_write/cc30bc544ef66e53417cef21218bd39de3b02e21 new file mode 100644 index 00000000..98e66d38 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc30bc544ef66e53417cef21218bd39de3b02e21 differ diff --git a/fuzz/corpus/fuzz_write/cc41d269d8c92679901ee8dd65ae7cd2137e5d6c b/fuzz/corpus/fuzz_write/cc41d269d8c92679901ee8dd65ae7cd2137e5d6c new file mode 100644 index 00000000..29717fda Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc41d269d8c92679901ee8dd65ae7cd2137e5d6c differ diff --git a/fuzz/corpus/fuzz_write/cc84da75b88d0da3e5fef5bfe401b483968d07e1 b/fuzz/corpus/fuzz_write/cc84da75b88d0da3e5fef5bfe401b483968d07e1 new file mode 100644 index 00000000..2185204e Binary files /dev/null and b/fuzz/corpus/fuzz_write/cc84da75b88d0da3e5fef5bfe401b483968d07e1 differ diff --git a/fuzz/corpus/fuzz_write/cca0847cf499987c201e20d5116ef33c58b3b8c9 b/fuzz/corpus/fuzz_write/cca0847cf499987c201e20d5116ef33c58b3b8c9 new file mode 100644 index 00000000..fa6b2721 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cca0847cf499987c201e20d5116ef33c58b3b8c9 differ diff --git a/fuzz/corpus/fuzz_write/cca5734b65684eef0dcb62c66adfad7dfeb6832c b/fuzz/corpus/fuzz_write/cca5734b65684eef0dcb62c66adfad7dfeb6832c new file mode 100644 index 00000000..ed879e01 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cca5734b65684eef0dcb62c66adfad7dfeb6832c differ diff --git a/fuzz/corpus/fuzz_write/ccad964040adb6bf0bfb78abd59d370910c8fe32 b/fuzz/corpus/fuzz_write/ccad964040adb6bf0bfb78abd59d370910c8fe32 new file mode 100644 index 00000000..5ee7ac46 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ccad964040adb6bf0bfb78abd59d370910c8fe32 differ diff --git a/fuzz/corpus/fuzz_write/cceb43349e64983e693a052ef7a9f8899912c9b4 b/fuzz/corpus/fuzz_write/cceb43349e64983e693a052ef7a9f8899912c9b4 new file mode 100644 index 00000000..cbde17b4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cceb43349e64983e693a052ef7a9f8899912c9b4 differ diff --git a/fuzz/corpus/fuzz_write/cceef931d9eea69642d82dd2107ee8deb5487ad9 b/fuzz/corpus/fuzz_write/cceef931d9eea69642d82dd2107ee8deb5487ad9 new file mode 100644 index 00000000..1e713cb4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cceef931d9eea69642d82dd2107ee8deb5487ad9 differ diff --git a/fuzz/corpus/fuzz_write/cd2f893f3e288583ff5ed7f3b183425d09cb2f07 b/fuzz/corpus/fuzz_write/cd2f893f3e288583ff5ed7f3b183425d09cb2f07 new file mode 100644 index 00000000..7ee5e9f0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cd2f893f3e288583ff5ed7f3b183425d09cb2f07 differ diff --git a/fuzz/corpus/fuzz_write/cd39dd9f04dda5aea3a5bc27c2b02cd46b3343d5 b/fuzz/corpus/fuzz_write/cd39dd9f04dda5aea3a5bc27c2b02cd46b3343d5 new file mode 100644 index 00000000..c1877501 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cd39dd9f04dda5aea3a5bc27c2b02cd46b3343d5 differ diff --git a/fuzz/corpus/fuzz_write/cd6c7ddaa5477e54958d43e28f5fef1010a6994c b/fuzz/corpus/fuzz_write/cd6c7ddaa5477e54958d43e28f5fef1010a6994c new file mode 100644 index 00000000..9f3c3ee0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cd6c7ddaa5477e54958d43e28f5fef1010a6994c differ diff --git a/fuzz/corpus/fuzz_write/cd9d9136fbb42eb8606a9a5acb9f4aa7ad031622 b/fuzz/corpus/fuzz_write/cd9d9136fbb42eb8606a9a5acb9f4aa7ad031622 new file mode 100644 index 00000000..e2483880 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cd9d9136fbb42eb8606a9a5acb9f4aa7ad031622 differ diff --git a/fuzz/corpus/fuzz_write/cdda72f0c786dcbfd617e8e07b60835be016ab55 b/fuzz/corpus/fuzz_write/cdda72f0c786dcbfd617e8e07b60835be016ab55 new file mode 100644 index 00000000..a082251a Binary files /dev/null and b/fuzz/corpus/fuzz_write/cdda72f0c786dcbfd617e8e07b60835be016ab55 differ diff --git a/fuzz/corpus/fuzz_write/cde193f6b796527ec365ccefd9a59c385bfeea3b b/fuzz/corpus/fuzz_write/cde193f6b796527ec365ccefd9a59c385bfeea3b new file mode 100644 index 00000000..a9bacc35 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cde193f6b796527ec365ccefd9a59c385bfeea3b differ diff --git a/fuzz/corpus/fuzz_write/cdeaa3c77e90070a4ccfa6150ef6f72eb4fbe707 b/fuzz/corpus/fuzz_write/cdeaa3c77e90070a4ccfa6150ef6f72eb4fbe707 new file mode 100644 index 00000000..aac27bd9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cdeaa3c77e90070a4ccfa6150ef6f72eb4fbe707 differ diff --git a/fuzz/corpus/fuzz_write/cdf971691ea1e1591290328464b4cb5dfe9c3087 b/fuzz/corpus/fuzz_write/cdf971691ea1e1591290328464b4cb5dfe9c3087 new file mode 100644 index 00000000..22231b0b Binary files /dev/null and b/fuzz/corpus/fuzz_write/cdf971691ea1e1591290328464b4cb5dfe9c3087 differ diff --git a/fuzz/corpus/fuzz_write/ce0d1ee1280c5bfc481bd16e26606ea0f47d4dcd b/fuzz/corpus/fuzz_write/ce0d1ee1280c5bfc481bd16e26606ea0f47d4dcd new file mode 100644 index 00000000..0c49bc17 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce0d1ee1280c5bfc481bd16e26606ea0f47d4dcd differ diff --git a/fuzz/corpus/fuzz_write/ce0df7efde7e6cb2a33f305143217a436638a394 b/fuzz/corpus/fuzz_write/ce0df7efde7e6cb2a33f305143217a436638a394 new file mode 100644 index 00000000..a8b44b3b Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce0df7efde7e6cb2a33f305143217a436638a394 differ diff --git a/fuzz/corpus/fuzz_write/ce10691445291f37f89ca10ed3a07d1007590458 b/fuzz/corpus/fuzz_write/ce10691445291f37f89ca10ed3a07d1007590458 new file mode 100644 index 00000000..8753bc6d Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce10691445291f37f89ca10ed3a07d1007590458 differ diff --git a/fuzz/corpus/fuzz_write/ce16cf6cf0c7e0fd1dd46629d5ff6c8d8d50b544 b/fuzz/corpus/fuzz_write/ce16cf6cf0c7e0fd1dd46629d5ff6c8d8d50b544 new file mode 100644 index 00000000..7d1d93d6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce16cf6cf0c7e0fd1dd46629d5ff6c8d8d50b544 differ diff --git a/fuzz/corpus/fuzz_write/ce2c5975bc097995a42e4cd2863f74794930e039 b/fuzz/corpus/fuzz_write/ce2c5975bc097995a42e4cd2863f74794930e039 new file mode 100644 index 00000000..021e22f3 --- /dev/null +++ b/fuzz/corpus/fuzz_write/ce2c5975bc097995a42e4cd2863f74794930e039 @@ -0,0 +1 @@ +JPP:::!z \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/ce5bed8783ebd327a1325b06dccc4f222fac5913 b/fuzz/corpus/fuzz_write/ce5bed8783ebd327a1325b06dccc4f222fac5913 new file mode 100644 index 00000000..acf844dd Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce5bed8783ebd327a1325b06dccc4f222fac5913 differ diff --git a/fuzz/corpus/fuzz_write/ce5c7807125ba0229b374eecc2bf8afeb86a92a4 b/fuzz/corpus/fuzz_write/ce5c7807125ba0229b374eecc2bf8afeb86a92a4 new file mode 100644 index 00000000..a472b25e Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce5c7807125ba0229b374eecc2bf8afeb86a92a4 differ diff --git a/fuzz/corpus/fuzz_write/ce78920b1fede5604888759f8f6b508c2f843258 b/fuzz/corpus/fuzz_write/ce78920b1fede5604888759f8f6b508c2f843258 new file mode 100644 index 00000000..7b726a1d Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce78920b1fede5604888759f8f6b508c2f843258 differ diff --git a/fuzz/corpus/fuzz_write/ce8fa031b7b60c6d40a1f6e6c94fb05144b0526e b/fuzz/corpus/fuzz_write/ce8fa031b7b60c6d40a1f6e6c94fb05144b0526e new file mode 100644 index 00000000..f6ed62d9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce8fa031b7b60c6d40a1f6e6c94fb05144b0526e differ diff --git a/fuzz/corpus/fuzz_write/ce9c227c097a3bdd7e73fa2e864529134f8b5f58 b/fuzz/corpus/fuzz_write/ce9c227c097a3bdd7e73fa2e864529134f8b5f58 new file mode 100644 index 00000000..53b68fdc Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce9c227c097a3bdd7e73fa2e864529134f8b5f58 differ diff --git a/fuzz/corpus/fuzz_write/ce9de0b2c5edbc07d5f08c859c8cd71946c5cb03 b/fuzz/corpus/fuzz_write/ce9de0b2c5edbc07d5f08c859c8cd71946c5cb03 new file mode 100644 index 00000000..7355b061 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ce9de0b2c5edbc07d5f08c859c8cd71946c5cb03 differ diff --git a/fuzz/corpus/fuzz_write/cea94dd6605580b97d9db7b9b5ffce4077093474 b/fuzz/corpus/fuzz_write/cea94dd6605580b97d9db7b9b5ffce4077093474 new file mode 100644 index 00000000..cf8c3381 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cea94dd6605580b97d9db7b9b5ffce4077093474 differ diff --git a/fuzz/corpus/fuzz_write/cec514ca262e0eb1019000474bd268e0cd0d6af0 b/fuzz/corpus/fuzz_write/cec514ca262e0eb1019000474bd268e0cd0d6af0 new file mode 100644 index 00000000..99e02ce8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cec514ca262e0eb1019000474bd268e0cd0d6af0 differ diff --git a/fuzz/corpus/fuzz_write/cf0ce86a27935fe71c61abb8ef93e52deb608523 b/fuzz/corpus/fuzz_write/cf0ce86a27935fe71c61abb8ef93e52deb608523 new file mode 100644 index 00000000..416c3ae0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf0ce86a27935fe71c61abb8ef93e52deb608523 differ diff --git a/fuzz/corpus/fuzz_write/cf1e539864695f913f4df17f60cf66a5246d5580 b/fuzz/corpus/fuzz_write/cf1e539864695f913f4df17f60cf66a5246d5580 new file mode 100644 index 00000000..2d0ae789 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf1e539864695f913f4df17f60cf66a5246d5580 differ diff --git a/fuzz/corpus/fuzz_write/cf29f20bb5cc1eccf4b8e9fc8f205b9ed9a17c10 b/fuzz/corpus/fuzz_write/cf29f20bb5cc1eccf4b8e9fc8f205b9ed9a17c10 new file mode 100644 index 00000000..be47fbce Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf29f20bb5cc1eccf4b8e9fc8f205b9ed9a17c10 differ diff --git a/fuzz/corpus/fuzz_write/cf3cad096ff4ec8f09237f32a0b4a527f7c86097 b/fuzz/corpus/fuzz_write/cf3cad096ff4ec8f09237f32a0b4a527f7c86097 new file mode 100644 index 00000000..af2a7c25 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf3cad096ff4ec8f09237f32a0b4a527f7c86097 differ diff --git a/fuzz/corpus/fuzz_write/cf4a8712aa82e758f8faebabaf44c2812cb01caf b/fuzz/corpus/fuzz_write/cf4a8712aa82e758f8faebabaf44c2812cb01caf new file mode 100644 index 00000000..235f745b --- /dev/null +++ b/fuzz/corpus/fuzz_write/cf4a8712aa82e758f8faebabaf44c2812cb01caf @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/cf6d35b2bd3a4fe030f12e12bb676b0c356e68e8 b/fuzz/corpus/fuzz_write/cf6d35b2bd3a4fe030f12e12bb676b0c356e68e8 new file mode 100644 index 00000000..5c1f6ad2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf6d35b2bd3a4fe030f12e12bb676b0c356e68e8 differ diff --git a/fuzz/corpus/fuzz_write/cf865150496b67d8b5e38ce8e46d14c0b99b0152 b/fuzz/corpus/fuzz_write/cf865150496b67d8b5e38ce8e46d14c0b99b0152 new file mode 100644 index 00000000..d169ab4e Binary files /dev/null and b/fuzz/corpus/fuzz_write/cf865150496b67d8b5e38ce8e46d14c0b99b0152 differ diff --git a/fuzz/corpus/fuzz_write/cfa6c2abbcbd7034aeae6bae4a3b8ad16003d8a4 b/fuzz/corpus/fuzz_write/cfa6c2abbcbd7034aeae6bae4a3b8ad16003d8a4 new file mode 100644 index 00000000..4a814bda Binary files /dev/null and b/fuzz/corpus/fuzz_write/cfa6c2abbcbd7034aeae6bae4a3b8ad16003d8a4 differ diff --git a/fuzz/corpus/fuzz_write/cfd0f00f18fb049c98f3d75163441946812cf762 b/fuzz/corpus/fuzz_write/cfd0f00f18fb049c98f3d75163441946812cf762 new file mode 100644 index 00000000..ea603d7d Binary files /dev/null and b/fuzz/corpus/fuzz_write/cfd0f00f18fb049c98f3d75163441946812cf762 differ diff --git a/fuzz/corpus/fuzz_write/cff312ab2d2f3eac387adc867816dd8a5cddf918 b/fuzz/corpus/fuzz_write/cff312ab2d2f3eac387adc867816dd8a5cddf918 new file mode 100644 index 00000000..01aa5d76 Binary files /dev/null and b/fuzz/corpus/fuzz_write/cff312ab2d2f3eac387adc867816dd8a5cddf918 differ diff --git a/fuzz/corpus/fuzz_write/d010cd588583e59f79596dc1dd671cdf1bc0d60f b/fuzz/corpus/fuzz_write/d010cd588583e59f79596dc1dd671cdf1bc0d60f new file mode 100644 index 00000000..4da3aba4 --- /dev/null +++ b/fuzz/corpus/fuzz_write/d010cd588583e59f79596dc1dd671cdf1bc0d60f @@ -0,0 +1,2 @@ + [ +K, \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d013f49b6611fd583d047a4cf0be40fd00434d0c b/fuzz/corpus/fuzz_write/d013f49b6611fd583d047a4cf0be40fd00434d0c new file mode 100644 index 00000000..f31a475e Binary files /dev/null and b/fuzz/corpus/fuzz_write/d013f49b6611fd583d047a4cf0be40fd00434d0c differ diff --git a/fuzz/corpus/fuzz_write/d0477aa2bf2b76d1d5595f20ade44c038034648c b/fuzz/corpus/fuzz_write/d0477aa2bf2b76d1d5595f20ade44c038034648c new file mode 100644 index 00000000..f9a22a8a Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0477aa2bf2b76d1d5595f20ade44c038034648c differ diff --git a/fuzz/corpus/fuzz_write/d06846fd2069101c113706d6d60ce654ddf46d0d b/fuzz/corpus/fuzz_write/d06846fd2069101c113706d6d60ce654ddf46d0d new file mode 100644 index 00000000..e50ee8d6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d06846fd2069101c113706d6d60ce654ddf46d0d differ diff --git a/fuzz/corpus/fuzz_write/d0736639c5ba128494788af893173ca58da9081a b/fuzz/corpus/fuzz_write/d0736639c5ba128494788af893173ca58da9081a new file mode 100644 index 00000000..07138d23 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0736639c5ba128494788af893173ca58da9081a differ diff --git a/fuzz/corpus/fuzz_write/d07ae5e61c972ebe1d58defc5f8a44ccdec65a02 b/fuzz/corpus/fuzz_write/d07ae5e61c972ebe1d58defc5f8a44ccdec65a02 new file mode 100644 index 00000000..881e1554 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d07ae5e61c972ebe1d58defc5f8a44ccdec65a02 differ diff --git a/fuzz/corpus/fuzz_write/d0886be7dedaba6ad1f4134ebb98eae1dda58882 b/fuzz/corpus/fuzz_write/d0886be7dedaba6ad1f4134ebb98eae1dda58882 new file mode 100644 index 00000000..9b23c543 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0886be7dedaba6ad1f4134ebb98eae1dda58882 differ diff --git a/fuzz/corpus/fuzz_write/d08d716671d30b9af0ab6fe6e8e1e719ed46dd4b b/fuzz/corpus/fuzz_write/d08d716671d30b9af0ab6fe6e8e1e719ed46dd4b new file mode 100644 index 00000000..ac2b4931 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d08d716671d30b9af0ab6fe6e8e1e719ed46dd4b differ diff --git a/fuzz/corpus/fuzz_write/d0a22786085cf9db02d62f961c980dcef43e4c2c b/fuzz/corpus/fuzz_write/d0a22786085cf9db02d62f961c980dcef43e4c2c new file mode 100644 index 00000000..d29b5cc1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0a22786085cf9db02d62f961c980dcef43e4c2c differ diff --git a/fuzz/corpus/fuzz_write/d0a322efa7db0e680033efadad275c88d40c99ff b/fuzz/corpus/fuzz_write/d0a322efa7db0e680033efadad275c88d40c99ff new file mode 100644 index 00000000..544baa0d --- /dev/null +++ b/fuzz/corpus/fuzz_write/d0a322efa7db0e680033efadad275c88d40c99ff @@ -0,0 +1 @@ +*wѥ`!Z.* \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d0ba981d90b5fbb9383eeaac6432ab4e18ef5cc4 b/fuzz/corpus/fuzz_write/d0ba981d90b5fbb9383eeaac6432ab4e18ef5cc4 new file mode 100644 index 00000000..5e6e1a17 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0ba981d90b5fbb9383eeaac6432ab4e18ef5cc4 differ diff --git a/fuzz/corpus/fuzz_write/d0bec10d033ad8ad5a429a008e67ce2f359b0902 b/fuzz/corpus/fuzz_write/d0bec10d033ad8ad5a429a008e67ce2f359b0902 new file mode 100644 index 00000000..40ba4092 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0bec10d033ad8ad5a429a008e67ce2f359b0902 differ diff --git a/fuzz/corpus/fuzz_write/d0bf3c6480a89540a11aead512a9c7da640ca4a6 b/fuzz/corpus/fuzz_write/d0bf3c6480a89540a11aead512a9c7da640ca4a6 new file mode 100644 index 00000000..814bde6a Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0bf3c6480a89540a11aead512a9c7da640ca4a6 differ diff --git a/fuzz/corpus/fuzz_write/d0cb6a4f641741d780feb55c6ef0057c03e38fd6 b/fuzz/corpus/fuzz_write/d0cb6a4f641741d780feb55c6ef0057c03e38fd6 new file mode 100644 index 00000000..556c993b Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0cb6a4f641741d780feb55c6ef0057c03e38fd6 differ diff --git a/fuzz/corpus/fuzz_write/d0e2de6c0de0d76dbb6fa0286eb454aa489a27c1 b/fuzz/corpus/fuzz_write/d0e2de6c0de0d76dbb6fa0286eb454aa489a27c1 new file mode 100644 index 00000000..1cf36db7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d0e2de6c0de0d76dbb6fa0286eb454aa489a27c1 differ diff --git a/fuzz/corpus/fuzz_write/d120d03230dfe36d81a23434e62208ca5723531d b/fuzz/corpus/fuzz_write/d120d03230dfe36d81a23434e62208ca5723531d new file mode 100644 index 00000000..c491db56 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d120d03230dfe36d81a23434e62208ca5723531d differ diff --git a/fuzz/corpus/fuzz_write/d13a20a59768afe0d953fe4e514782a283ac3851 b/fuzz/corpus/fuzz_write/d13a20a59768afe0d953fe4e514782a283ac3851 new file mode 100644 index 00000000..56902faa Binary files /dev/null and b/fuzz/corpus/fuzz_write/d13a20a59768afe0d953fe4e514782a283ac3851 differ diff --git a/fuzz/corpus/fuzz_write/d14139f9601ab58716fd039488bb06f4eb3d0e6b b/fuzz/corpus/fuzz_write/d14139f9601ab58716fd039488bb06f4eb3d0e6b new file mode 100644 index 00000000..462a6a60 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d14139f9601ab58716fd039488bb06f4eb3d0e6b differ diff --git a/fuzz/corpus/fuzz_write/d150abf058300f26e4696564c89ac241c4b8ec14 b/fuzz/corpus/fuzz_write/d150abf058300f26e4696564c89ac241c4b8ec14 new file mode 100644 index 00000000..74306284 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d150abf058300f26e4696564c89ac241c4b8ec14 differ diff --git a/fuzz/corpus/fuzz_write/d152787277fbd455c27102ad9d5f6188a327b445 b/fuzz/corpus/fuzz_write/d152787277fbd455c27102ad9d5f6188a327b445 new file mode 100644 index 00000000..c66b8966 --- /dev/null +++ b/fuzz/corpus/fuzz_write/d152787277fbd455c27102ad9d5f6188a327b445 @@ -0,0 +1 @@ +PK#K!KK!cKPK!cKP; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d15d9008cf03ebd8d9ea325d62b15dad26b1c8a3 b/fuzz/corpus/fuzz_write/d15d9008cf03ebd8d9ea325d62b15dad26b1c8a3 new file mode 100644 index 00000000..d092e0f2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d15d9008cf03ebd8d9ea325d62b15dad26b1c8a3 differ diff --git a/fuzz/corpus/fuzz_write/d182af84e0e1c8fececf9d7d34073f9fa6718dad b/fuzz/corpus/fuzz_write/d182af84e0e1c8fececf9d7d34073f9fa6718dad new file mode 100644 index 00000000..7d23968e Binary files /dev/null and b/fuzz/corpus/fuzz_write/d182af84e0e1c8fececf9d7d34073f9fa6718dad differ diff --git a/fuzz/corpus/fuzz_write/d1bccddb3c5a828e601c96987e07ac4f9cb382b7 b/fuzz/corpus/fuzz_write/d1bccddb3c5a828e601c96987e07ac4f9cb382b7 new file mode 100644 index 00000000..2207697e Binary files /dev/null and b/fuzz/corpus/fuzz_write/d1bccddb3c5a828e601c96987e07ac4f9cb382b7 differ diff --git a/fuzz/corpus/fuzz_write/d1ccb03f539457a522350f8edd0d6479513f109f b/fuzz/corpus/fuzz_write/d1ccb03f539457a522350f8edd0d6479513f109f new file mode 100644 index 00000000..f4159d0b Binary files /dev/null and b/fuzz/corpus/fuzz_write/d1ccb03f539457a522350f8edd0d6479513f109f differ diff --git a/fuzz/corpus/fuzz_write/d1cf68017aac91c97169aa0fac452fa1cb5953d4 b/fuzz/corpus/fuzz_write/d1cf68017aac91c97169aa0fac452fa1cb5953d4 new file mode 100644 index 00000000..b185fce9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d1cf68017aac91c97169aa0fac452fa1cb5953d4 differ diff --git a/fuzz/corpus/fuzz_write/d1dd41ed83a96b9f1bd075bbef5da05f80d00cd5 b/fuzz/corpus/fuzz_write/d1dd41ed83a96b9f1bd075bbef5da05f80d00cd5 new file mode 100644 index 00000000..cace5bfc Binary files /dev/null and b/fuzz/corpus/fuzz_write/d1dd41ed83a96b9f1bd075bbef5da05f80d00cd5 differ diff --git a/fuzz/corpus/fuzz_write/d1f67744821235bd7ee70243b977c71c1e43cecf b/fuzz/corpus/fuzz_write/d1f67744821235bd7ee70243b977c71c1e43cecf new file mode 100644 index 00000000..6c5788c1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d1f67744821235bd7ee70243b977c71c1e43cecf differ diff --git a/fuzz/corpus/fuzz_write/d206c4c063accdc67a2aaaee54bf00640b67f423 b/fuzz/corpus/fuzz_write/d206c4c063accdc67a2aaaee54bf00640b67f423 new file mode 100644 index 00000000..65a4fa61 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d206c4c063accdc67a2aaaee54bf00640b67f423 differ diff --git a/fuzz/corpus/fuzz_write/d22630d11cc026046120298ac0f0a52cfa0bf5ad b/fuzz/corpus/fuzz_write/d22630d11cc026046120298ac0f0a52cfa0bf5ad new file mode 100644 index 00000000..d0881d0a Binary files /dev/null and b/fuzz/corpus/fuzz_write/d22630d11cc026046120298ac0f0a52cfa0bf5ad differ diff --git a/fuzz/corpus/fuzz_write/d25572074da6e52638b59b4443c0f599b2445bf7 b/fuzz/corpus/fuzz_write/d25572074da6e52638b59b4443c0f599b2445bf7 new file mode 100644 index 00000000..7b40f8ae Binary files /dev/null and b/fuzz/corpus/fuzz_write/d25572074da6e52638b59b4443c0f599b2445bf7 differ diff --git a/fuzz/corpus/fuzz_write/d27c505b85c125227d3c17e1283ec16c0dc8b009 b/fuzz/corpus/fuzz_write/d27c505b85c125227d3c17e1283ec16c0dc8b009 new file mode 100644 index 00000000..e4e87ee8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d27c505b85c125227d3c17e1283ec16c0dc8b009 differ diff --git a/fuzz/corpus/fuzz_write/d27d5bb4d4be9cdd6ac8246f487ced69a3778559 b/fuzz/corpus/fuzz_write/d27d5bb4d4be9cdd6ac8246f487ced69a3778559 new file mode 100644 index 00000000..66a55c6e Binary files /dev/null and b/fuzz/corpus/fuzz_write/d27d5bb4d4be9cdd6ac8246f487ced69a3778559 differ diff --git a/fuzz/corpus/fuzz_write/d28c3c5de204f4dfe73498fb9d061dc744395386 b/fuzz/corpus/fuzz_write/d28c3c5de204f4dfe73498fb9d061dc744395386 new file mode 100644 index 00000000..ee6d5692 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d28c3c5de204f4dfe73498fb9d061dc744395386 differ diff --git a/fuzz/corpus/fuzz_write/d28cd7acb3b67fd56a8f55610b362602cf36a3dd b/fuzz/corpus/fuzz_write/d28cd7acb3b67fd56a8f55610b362602cf36a3dd new file mode 100644 index 00000000..8e6981f6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d28cd7acb3b67fd56a8f55610b362602cf36a3dd differ diff --git a/fuzz/corpus/fuzz_write/d28d77b37d0aae9ee3dceb8653400d202e6986e3 b/fuzz/corpus/fuzz_write/d28d77b37d0aae9ee3dceb8653400d202e6986e3 new file mode 100644 index 00000000..1128a04d Binary files /dev/null and b/fuzz/corpus/fuzz_write/d28d77b37d0aae9ee3dceb8653400d202e6986e3 differ diff --git a/fuzz/corpus/fuzz_write/d2a173fbde746a342fd1a07736139db9d0146ceb b/fuzz/corpus/fuzz_write/d2a173fbde746a342fd1a07736139db9d0146ceb new file mode 100644 index 00000000..494adc51 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d2a173fbde746a342fd1a07736139db9d0146ceb differ diff --git a/fuzz/corpus/fuzz_write/d2b6598f63623f5f1d2b3bc239f34a0b00fb1eb4 b/fuzz/corpus/fuzz_write/d2b6598f63623f5f1d2b3bc239f34a0b00fb1eb4 new file mode 100644 index 00000000..2173f082 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d2b6598f63623f5f1d2b3bc239f34a0b00fb1eb4 differ diff --git a/fuzz/corpus/fuzz_write/d2eb88d84cae79df8fa86475d5f4da44c0855332 b/fuzz/corpus/fuzz_write/d2eb88d84cae79df8fa86475d5f4da44c0855332 new file mode 100644 index 00000000..0cbdd850 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d2eb88d84cae79df8fa86475d5f4da44c0855332 differ diff --git a/fuzz/corpus/fuzz_write/d30e5a6f4d4ee6c67bbd24153913bb59183b6426 b/fuzz/corpus/fuzz_write/d30e5a6f4d4ee6c67bbd24153913bb59183b6426 new file mode 100644 index 00000000..ad12a5f8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d30e5a6f4d4ee6c67bbd24153913bb59183b6426 differ diff --git a/fuzz/corpus/fuzz_write/d32dda4c995238ae64197405fc5bd29f67e5d3b1 b/fuzz/corpus/fuzz_write/d32dda4c995238ae64197405fc5bd29f67e5d3b1 new file mode 100644 index 00000000..1e21451a --- /dev/null +++ b/fuzz/corpus/fuzz_write/d32dda4c995238ae64197405fc5bd29f67e5d3b1 @@ -0,0 +1 @@ +)iKP//..///...,0' \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d332525d26e40312110f821683e321e8107c1ddd b/fuzz/corpus/fuzz_write/d332525d26e40312110f821683e321e8107c1ddd new file mode 100644 index 00000000..c9d28c51 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d332525d26e40312110f821683e321e8107c1ddd differ diff --git a/fuzz/corpus/fuzz_write/d33b36f9afa7d9a3159aabaa4bc17cc395961e67 b/fuzz/corpus/fuzz_write/d33b36f9afa7d9a3159aabaa4bc17cc395961e67 new file mode 100644 index 00000000..923c3aaf Binary files /dev/null and b/fuzz/corpus/fuzz_write/d33b36f9afa7d9a3159aabaa4bc17cc395961e67 differ diff --git a/fuzz/corpus/fuzz_write/d34a8a528b88439774bab441e09ed2c95a8e6492 b/fuzz/corpus/fuzz_write/d34a8a528b88439774bab441e09ed2c95a8e6492 new file mode 100644 index 00000000..1fa6f79f Binary files /dev/null and b/fuzz/corpus/fuzz_write/d34a8a528b88439774bab441e09ed2c95a8e6492 differ diff --git a/fuzz/corpus/fuzz_write/d34f0beffc10e58956df9d894629c6c9cc73c6fa b/fuzz/corpus/fuzz_write/d34f0beffc10e58956df9d894629c6c9cc73c6fa new file mode 100644 index 00000000..d8b12dbc Binary files /dev/null and b/fuzz/corpus/fuzz_write/d34f0beffc10e58956df9d894629c6c9cc73c6fa differ diff --git a/fuzz/corpus/fuzz_write/d3604f81acaf02502ee56b8103821957ec174ce3 b/fuzz/corpus/fuzz_write/d3604f81acaf02502ee56b8103821957ec174ce3 new file mode 100644 index 00000000..e9b971bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/d3604f81acaf02502ee56b8103821957ec174ce3 differ diff --git a/fuzz/corpus/fuzz_write/d362011daab6656d4029afffdd6a05030e6fcbff b/fuzz/corpus/fuzz_write/d362011daab6656d4029afffdd6a05030e6fcbff new file mode 100644 index 00000000..a4ce6d59 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d362011daab6656d4029afffdd6a05030e6fcbff differ diff --git a/fuzz/corpus/fuzz_write/d38d636b559a1c1418d0b0320ae230be9f2af5a7 b/fuzz/corpus/fuzz_write/d38d636b559a1c1418d0b0320ae230be9f2af5a7 new file mode 100644 index 00000000..6e8a56b6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d38d636b559a1c1418d0b0320ae230be9f2af5a7 differ diff --git a/fuzz/corpus/fuzz_write/d392900a655485aeba2368c67b0a0a81daedaa7b b/fuzz/corpus/fuzz_write/d392900a655485aeba2368c67b0a0a81daedaa7b new file mode 100644 index 00000000..43793b89 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d392900a655485aeba2368c67b0a0a81daedaa7b differ diff --git a/fuzz/corpus/fuzz_write/d3a87bcf73bcfc3698758bd4d9e6d8c53286ec5f b/fuzz/corpus/fuzz_write/d3a87bcf73bcfc3698758bd4d9e6d8c53286ec5f new file mode 100644 index 00000000..17658a8e --- /dev/null +++ b/fuzz/corpus/fuzz_write/d3a87bcf73bcfc3698758bd4d9e6d8c53286ec5f @@ -0,0 +1 @@ +PK#PK#?KP?KPA#: \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d3afde7d26c6cbfcf3119c30f860968c2d2bda0d b/fuzz/corpus/fuzz_write/d3afde7d26c6cbfcf3119c30f860968c2d2bda0d new file mode 100644 index 00000000..2014dc57 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d3afde7d26c6cbfcf3119c30f860968c2d2bda0d differ diff --git a/fuzz/corpus/fuzz_write/d3b8c4120d00a9325d1cb34ad10572960ef0ddf6 b/fuzz/corpus/fuzz_write/d3b8c4120d00a9325d1cb34ad10572960ef0ddf6 new file mode 100644 index 00000000..e304e4fc Binary files /dev/null and b/fuzz/corpus/fuzz_write/d3b8c4120d00a9325d1cb34ad10572960ef0ddf6 differ diff --git a/fuzz/corpus/fuzz_write/d3df548c1d623c3d69c0ef71aa87eb50fb201471 b/fuzz/corpus/fuzz_write/d3df548c1d623c3d69c0ef71aa87eb50fb201471 new file mode 100644 index 00000000..5d86b413 --- /dev/null +++ b/fuzz/corpus/fuzz_write/d3df548c1d623c3d69c0ef71aa87eb50fb201471 @@ -0,0 +1,2 @@ + +; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d400d832dd9c121237ff8358649402913a58167e b/fuzz/corpus/fuzz_write/d400d832dd9c121237ff8358649402913a58167e new file mode 100644 index 00000000..35ae3256 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d400d832dd9c121237ff8358649402913a58167e differ diff --git a/fuzz/corpus/fuzz_write/d40a6c35ba674fd6c984ca9ff33ae58da0e853c2 b/fuzz/corpus/fuzz_write/d40a6c35ba674fd6c984ca9ff33ae58da0e853c2 new file mode 100644 index 00000000..35d6c100 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d40a6c35ba674fd6c984ca9ff33ae58da0e853c2 differ diff --git a/fuzz/corpus/fuzz_write/d4483744f2fee6511382caa7a31e1b861bf70fac b/fuzz/corpus/fuzz_write/d4483744f2fee6511382caa7a31e1b861bf70fac new file mode 100644 index 00000000..ea08256e Binary files /dev/null and b/fuzz/corpus/fuzz_write/d4483744f2fee6511382caa7a31e1b861bf70fac differ diff --git a/fuzz/corpus/fuzz_write/d45085dced06072d47839af7564467f770f1e01d b/fuzz/corpus/fuzz_write/d45085dced06072d47839af7564467f770f1e01d new file mode 100644 index 00000000..733d7c03 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d45085dced06072d47839af7564467f770f1e01d differ diff --git a/fuzz/corpus/fuzz_write/d45c1afb5a12b69a3b62b3721fb7aae3844a122c b/fuzz/corpus/fuzz_write/d45c1afb5a12b69a3b62b3721fb7aae3844a122c new file mode 100644 index 00000000..a37ddb02 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d45c1afb5a12b69a3b62b3721fb7aae3844a122c differ diff --git a/fuzz/corpus/fuzz_write/d45e7ea19a0de77f6bf1f58f01751526f6184e01 b/fuzz/corpus/fuzz_write/d45e7ea19a0de77f6bf1f58f01751526f6184e01 new file mode 100644 index 00000000..a61d2ada Binary files /dev/null and b/fuzz/corpus/fuzz_write/d45e7ea19a0de77f6bf1f58f01751526f6184e01 differ diff --git a/fuzz/corpus/fuzz_write/d49a38d0a4cb2bf3103522cb0cf65d0fbb18a57c b/fuzz/corpus/fuzz_write/d49a38d0a4cb2bf3103522cb0cf65d0fbb18a57c new file mode 100644 index 00000000..d159244f Binary files /dev/null and b/fuzz/corpus/fuzz_write/d49a38d0a4cb2bf3103522cb0cf65d0fbb18a57c differ diff --git a/fuzz/corpus/fuzz_write/d4c74bfe4c3e002b1b15a4fc5bd6bafcf7b6b414 b/fuzz/corpus/fuzz_write/d4c74bfe4c3e002b1b15a4fc5bd6bafcf7b6b414 new file mode 100644 index 00000000..2db87e09 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d4c74bfe4c3e002b1b15a4fc5bd6bafcf7b6b414 differ diff --git a/fuzz/corpus/fuzz_write/d53b04c34570a8c788d712a8aa11976a6f42ec39 b/fuzz/corpus/fuzz_write/d53b04c34570a8c788d712a8aa11976a6f42ec39 new file mode 100644 index 00000000..98e615e1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d53b04c34570a8c788d712a8aa11976a6f42ec39 differ diff --git a/fuzz/corpus/fuzz_write/d5447d8592e341356c89798dd92f8dfbd626fa01 b/fuzz/corpus/fuzz_write/d5447d8592e341356c89798dd92f8dfbd626fa01 new file mode 100644 index 00000000..6088578b Binary files /dev/null and b/fuzz/corpus/fuzz_write/d5447d8592e341356c89798dd92f8dfbd626fa01 differ diff --git a/fuzz/corpus/fuzz_write/d565afc4438ab55b25b2aa1fcd3a73abb1672024 b/fuzz/corpus/fuzz_write/d565afc4438ab55b25b2aa1fcd3a73abb1672024 new file mode 100644 index 00000000..f52a1de7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d565afc4438ab55b25b2aa1fcd3a73abb1672024 differ diff --git a/fuzz/corpus/fuzz_write/d59c50ad8df10a151af44745288f8c1f544e00f7 b/fuzz/corpus/fuzz_write/d59c50ad8df10a151af44745288f8c1f544e00f7 new file mode 100644 index 00000000..1eb6e0b8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d59c50ad8df10a151af44745288f8c1f544e00f7 differ diff --git a/fuzz/corpus/fuzz_write/d5c9d7e92f28692e73dcf5326d5b79343b73de82 b/fuzz/corpus/fuzz_write/d5c9d7e92f28692e73dcf5326d5b79343b73de82 new file mode 100644 index 00000000..f32cd0aa Binary files /dev/null and b/fuzz/corpus/fuzz_write/d5c9d7e92f28692e73dcf5326d5b79343b73de82 differ diff --git a/fuzz/corpus/fuzz_write/d6088b2f12c975ab258c10785cca1f688ed6e589 b/fuzz/corpus/fuzz_write/d6088b2f12c975ab258c10785cca1f688ed6e589 new file mode 100644 index 00000000..fc50c334 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6088b2f12c975ab258c10785cca1f688ed6e589 differ diff --git a/fuzz/corpus/fuzz_write/d61174df462319e34f6bcb695a8ae8879ad49faf b/fuzz/corpus/fuzz_write/d61174df462319e34f6bcb695a8ae8879ad49faf new file mode 100644 index 00000000..0ee9c8bb Binary files /dev/null and b/fuzz/corpus/fuzz_write/d61174df462319e34f6bcb695a8ae8879ad49faf differ diff --git a/fuzz/corpus/fuzz_write/d6156d0f1252c18b23d11dac6a13875ffc73f85e b/fuzz/corpus/fuzz_write/d6156d0f1252c18b23d11dac6a13875ffc73f85e new file mode 100644 index 00000000..108ef1b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6156d0f1252c18b23d11dac6a13875ffc73f85e differ diff --git a/fuzz/corpus/fuzz_write/d638d4a1880b91333024a4eed417624e68623028 b/fuzz/corpus/fuzz_write/d638d4a1880b91333024a4eed417624e68623028 new file mode 100644 index 00000000..b961c95d Binary files /dev/null and b/fuzz/corpus/fuzz_write/d638d4a1880b91333024a4eed417624e68623028 differ diff --git a/fuzz/corpus/fuzz_write/d659766c804adc2648510c52b42c32232ad45b59 b/fuzz/corpus/fuzz_write/d659766c804adc2648510c52b42c32232ad45b59 new file mode 100644 index 00000000..fb2313fb Binary files /dev/null and b/fuzz/corpus/fuzz_write/d659766c804adc2648510c52b42c32232ad45b59 differ diff --git a/fuzz/corpus/fuzz_write/d67d45ee96bc945a97bc4aada970402d12fc2594 b/fuzz/corpus/fuzz_write/d67d45ee96bc945a97bc4aada970402d12fc2594 new file mode 100644 index 00000000..ba38931b Binary files /dev/null and b/fuzz/corpus/fuzz_write/d67d45ee96bc945a97bc4aada970402d12fc2594 differ diff --git a/fuzz/corpus/fuzz_write/d6843a1c0e7d73ee629cc1526a8e8f8383667447 b/fuzz/corpus/fuzz_write/d6843a1c0e7d73ee629cc1526a8e8f8383667447 new file mode 100644 index 00000000..7fad8757 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6843a1c0e7d73ee629cc1526a8e8f8383667447 differ diff --git a/fuzz/corpus/fuzz_write/d6986c02afcc06c65ce85e1b0bb80faadda401f8 b/fuzz/corpus/fuzz_write/d6986c02afcc06c65ce85e1b0bb80faadda401f8 new file mode 100644 index 00000000..991871b8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6986c02afcc06c65ce85e1b0bb80faadda401f8 differ diff --git a/fuzz/corpus/fuzz_write/d6a403f73f122ccb899185b231ff16e8c7a630a2 b/fuzz/corpus/fuzz_write/d6a403f73f122ccb899185b231ff16e8c7a630a2 new file mode 100644 index 00000000..ba0260b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6a403f73f122ccb899185b231ff16e8c7a630a2 differ diff --git a/fuzz/corpus/fuzz_write/d6bf1925674c9c5be187f6d8bc2fd45d875ae49c b/fuzz/corpus/fuzz_write/d6bf1925674c9c5be187f6d8bc2fd45d875ae49c new file mode 100644 index 00000000..2c66aa12 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6bf1925674c9c5be187f6d8bc2fd45d875ae49c differ diff --git a/fuzz/corpus/fuzz_write/d6c0703cdb5e2fce7fff368d71a8e34841f47a17 b/fuzz/corpus/fuzz_write/d6c0703cdb5e2fce7fff368d71a8e34841f47a17 new file mode 100644 index 00000000..74fb948c Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6c0703cdb5e2fce7fff368d71a8e34841f47a17 differ diff --git a/fuzz/corpus/fuzz_write/d6c2d3bfa535a528aa02b966277589c68c9ccd63 b/fuzz/corpus/fuzz_write/d6c2d3bfa535a528aa02b966277589c68c9ccd63 new file mode 100644 index 00000000..8c8a54d8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6c2d3bfa535a528aa02b966277589c68c9ccd63 differ diff --git a/fuzz/corpus/fuzz_write/d6de789f8398991a09d9af2c005abbd70e2b78df b/fuzz/corpus/fuzz_write/d6de789f8398991a09d9af2c005abbd70e2b78df new file mode 100644 index 00000000..f3e842cc Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6de789f8398991a09d9af2c005abbd70e2b78df differ diff --git a/fuzz/corpus/fuzz_write/d6dfe6f1bca122694534a11f932ad8354051ef47 b/fuzz/corpus/fuzz_write/d6dfe6f1bca122694534a11f932ad8354051ef47 new file mode 100644 index 00000000..a28db9e0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d6dfe6f1bca122694534a11f932ad8354051ef47 differ diff --git a/fuzz/corpus/fuzz_write/d7395ef7145024607766ccbda74695fd6e27c963 b/fuzz/corpus/fuzz_write/d7395ef7145024607766ccbda74695fd6e27c963 new file mode 100644 index 00000000..80260d0f Binary files /dev/null and b/fuzz/corpus/fuzz_write/d7395ef7145024607766ccbda74695fd6e27c963 differ diff --git a/fuzz/corpus/fuzz_write/d73ad3b604c26ca504e530151c90e485f419f070 b/fuzz/corpus/fuzz_write/d73ad3b604c26ca504e530151c90e485f419f070 new file mode 100644 index 00000000..cc257182 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d73ad3b604c26ca504e530151c90e485f419f070 differ diff --git a/fuzz/corpus/fuzz_write/d73ec8ccb98757981d2fd22d65e3b4d68ef92bfc b/fuzz/corpus/fuzz_write/d73ec8ccb98757981d2fd22d65e3b4d68ef92bfc new file mode 100644 index 00000000..62a39fa4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d73ec8ccb98757981d2fd22d65e3b4d68ef92bfc differ diff --git a/fuzz/corpus/fuzz_write/d755a7de4c96479a1cd5a8d7fc90e6ebf9347f11 b/fuzz/corpus/fuzz_write/d755a7de4c96479a1cd5a8d7fc90e6ebf9347f11 new file mode 100644 index 00000000..ce4e8b7f Binary files /dev/null and b/fuzz/corpus/fuzz_write/d755a7de4c96479a1cd5a8d7fc90e6ebf9347f11 differ diff --git a/fuzz/corpus/fuzz_write/d7758a7cf951588f2aa4704b502cc0c0af60a088 b/fuzz/corpus/fuzz_write/d7758a7cf951588f2aa4704b502cc0c0af60a088 new file mode 100644 index 00000000..e8854659 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d7758a7cf951588f2aa4704b502cc0c0af60a088 differ diff --git a/fuzz/corpus/fuzz_write/d7aef2c7ff5abd896c1efbc5c11105170471514f b/fuzz/corpus/fuzz_write/d7aef2c7ff5abd896c1efbc5c11105170471514f new file mode 100644 index 00000000..03f78829 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d7aef2c7ff5abd896c1efbc5c11105170471514f differ diff --git a/fuzz/corpus/fuzz_write/d7cb34d669e48af17c3961816f6c643731ea7214 b/fuzz/corpus/fuzz_write/d7cb34d669e48af17c3961816f6c643731ea7214 new file mode 100644 index 00000000..bbdd7297 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d7cb34d669e48af17c3961816f6c643731ea7214 differ diff --git a/fuzz/corpus/fuzz_write/d7e98f34b50cdc9576bbd3b43dd979aa22ff237e b/fuzz/corpus/fuzz_write/d7e98f34b50cdc9576bbd3b43dd979aa22ff237e new file mode 100644 index 00000000..2d3aec2c Binary files /dev/null and b/fuzz/corpus/fuzz_write/d7e98f34b50cdc9576bbd3b43dd979aa22ff237e differ diff --git a/fuzz/corpus/fuzz_write/d814790bb79197b4a437e4fc18768a50daa0b890 b/fuzz/corpus/fuzz_write/d814790bb79197b4a437e4fc18768a50daa0b890 new file mode 100644 index 00000000..265290f9 --- /dev/null +++ b/fuzz/corpus/fuzz_write/d814790bb79197b4a437e4fc18768a50daa0b890 @@ -0,0 +1 @@ +JKlPYYБܔ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/d81d51c6866b5539c4262a8095ae81b8f600c11b b/fuzz/corpus/fuzz_write/d81d51c6866b5539c4262a8095ae81b8f600c11b new file mode 100644 index 00000000..f9b9c73d Binary files /dev/null and b/fuzz/corpus/fuzz_write/d81d51c6866b5539c4262a8095ae81b8f600c11b differ diff --git a/fuzz/corpus/fuzz_write/d827ded7ff182d63a2cfb691aad863696864a436 b/fuzz/corpus/fuzz_write/d827ded7ff182d63a2cfb691aad863696864a436 new file mode 100644 index 00000000..965603a0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d827ded7ff182d63a2cfb691aad863696864a436 differ diff --git a/fuzz/corpus/fuzz_write/d84cbf1c590d8eb9c238186d5bbfb24812822d07 b/fuzz/corpus/fuzz_write/d84cbf1c590d8eb9c238186d5bbfb24812822d07 new file mode 100644 index 00000000..d7fe0926 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d84cbf1c590d8eb9c238186d5bbfb24812822d07 differ diff --git a/fuzz/corpus/fuzz_write/d8616355c23e393be4d410ea802a20378476ebdf b/fuzz/corpus/fuzz_write/d8616355c23e393be4d410ea802a20378476ebdf new file mode 100644 index 00000000..17d17e5f Binary files /dev/null and b/fuzz/corpus/fuzz_write/d8616355c23e393be4d410ea802a20378476ebdf differ diff --git a/fuzz/corpus/fuzz_write/d8a86c2ccc595de5a5b5fad270e386203bac3c89 b/fuzz/corpus/fuzz_write/d8a86c2ccc595de5a5b5fad270e386203bac3c89 new file mode 100644 index 00000000..4e1ebcf4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d8a86c2ccc595de5a5b5fad270e386203bac3c89 differ diff --git a/fuzz/corpus/fuzz_write/d8bbcaa454ab390754c41098245b55bec39be122 b/fuzz/corpus/fuzz_write/d8bbcaa454ab390754c41098245b55bec39be122 new file mode 100644 index 00000000..ae3a4f34 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d8bbcaa454ab390754c41098245b55bec39be122 differ diff --git a/fuzz/corpus/fuzz_write/d8f9bf4e293187ec4959c5e64d3245ed1a84cd37 b/fuzz/corpus/fuzz_write/d8f9bf4e293187ec4959c5e64d3245ed1a84cd37 new file mode 100644 index 00000000..01568cfe Binary files /dev/null and b/fuzz/corpus/fuzz_write/d8f9bf4e293187ec4959c5e64d3245ed1a84cd37 differ diff --git a/fuzz/corpus/fuzz_write/d915d5554985ac9ea89153e462fce5ffbc32d4c4 b/fuzz/corpus/fuzz_write/d915d5554985ac9ea89153e462fce5ffbc32d4c4 new file mode 100644 index 00000000..667f63c1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d915d5554985ac9ea89153e462fce5ffbc32d4c4 differ diff --git a/fuzz/corpus/fuzz_write/d925b63243c56251707074e5ce9ad978b762fcc1 b/fuzz/corpus/fuzz_write/d925b63243c56251707074e5ce9ad978b762fcc1 new file mode 100644 index 00000000..7d084ab9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d925b63243c56251707074e5ce9ad978b762fcc1 differ diff --git a/fuzz/corpus/fuzz_write/d94cdff1089a532beb5e59d88e6807c900428145 b/fuzz/corpus/fuzz_write/d94cdff1089a532beb5e59d88e6807c900428145 new file mode 100644 index 00000000..fc7753c5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d94cdff1089a532beb5e59d88e6807c900428145 differ diff --git a/fuzz/corpus/fuzz_write/d9baf3bedae4bdef6e5de3f5e6adb9a6b037133d b/fuzz/corpus/fuzz_write/d9baf3bedae4bdef6e5de3f5e6adb9a6b037133d new file mode 100644 index 00000000..4b6842a8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9baf3bedae4bdef6e5de3f5e6adb9a6b037133d differ diff --git a/fuzz/corpus/fuzz_write/d9ca5d0a23d3842303dce70e76e03983690fa1cd b/fuzz/corpus/fuzz_write/d9ca5d0a23d3842303dce70e76e03983690fa1cd new file mode 100644 index 00000000..1a6baa95 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9ca5d0a23d3842303dce70e76e03983690fa1cd differ diff --git a/fuzz/corpus/fuzz_write/d9ccf6f34395062fbf08ad55b78a0872eada0aa8 b/fuzz/corpus/fuzz_write/d9ccf6f34395062fbf08ad55b78a0872eada0aa8 new file mode 100644 index 00000000..ea30883b Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9ccf6f34395062fbf08ad55b78a0872eada0aa8 differ diff --git a/fuzz/corpus/fuzz_write/d9d386d9370ed369bfbf1c7944371f9cf557a6f4 b/fuzz/corpus/fuzz_write/d9d386d9370ed369bfbf1c7944371f9cf557a6f4 new file mode 100644 index 00000000..f2f35d4c Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9d386d9370ed369bfbf1c7944371f9cf557a6f4 differ diff --git a/fuzz/corpus/fuzz_write/d9d9f8f8bda97608193d4625985dc4054b64b6fa b/fuzz/corpus/fuzz_write/d9d9f8f8bda97608193d4625985dc4054b64b6fa new file mode 100644 index 00000000..9353ef32 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9d9f8f8bda97608193d4625985dc4054b64b6fa differ diff --git a/fuzz/corpus/fuzz_write/d9f420930e4b5277d753a557e73e719781cd497b b/fuzz/corpus/fuzz_write/d9f420930e4b5277d753a557e73e719781cd497b new file mode 100644 index 00000000..ee043c01 Binary files /dev/null and b/fuzz/corpus/fuzz_write/d9f420930e4b5277d753a557e73e719781cd497b differ diff --git a/fuzz/corpus/fuzz_write/da17787182a190952d81a6195cc8de39938c484b b/fuzz/corpus/fuzz_write/da17787182a190952d81a6195cc8de39938c484b new file mode 100644 index 00000000..d43b7a41 Binary files /dev/null and b/fuzz/corpus/fuzz_write/da17787182a190952d81a6195cc8de39938c484b differ diff --git a/fuzz/corpus/fuzz_write/da1feb0cce4993edb50def0289472a8acfaa98b2 b/fuzz/corpus/fuzz_write/da1feb0cce4993edb50def0289472a8acfaa98b2 new file mode 100644 index 00000000..952fe7d5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/da1feb0cce4993edb50def0289472a8acfaa98b2 differ diff --git a/fuzz/corpus/fuzz_write/da243ae025c61de5771755a73af40b5b8c7fdc33 b/fuzz/corpus/fuzz_write/da243ae025c61de5771755a73af40b5b8c7fdc33 new file mode 100644 index 00000000..02667e01 Binary files /dev/null and b/fuzz/corpus/fuzz_write/da243ae025c61de5771755a73af40b5b8c7fdc33 differ diff --git a/fuzz/corpus/fuzz_write/da4eb7ec98c7bd477454fa7eb5cac3f2073ed335 b/fuzz/corpus/fuzz_write/da4eb7ec98c7bd477454fa7eb5cac3f2073ed335 new file mode 100644 index 00000000..708772a9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/da4eb7ec98c7bd477454fa7eb5cac3f2073ed335 differ diff --git a/fuzz/corpus/fuzz_write/da5257519b8826d77bba912e7b208bdf2e0e6363 b/fuzz/corpus/fuzz_write/da5257519b8826d77bba912e7b208bdf2e0e6363 new file mode 100644 index 00000000..24ddf4ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/da5257519b8826d77bba912e7b208bdf2e0e6363 differ diff --git a/fuzz/corpus/fuzz_write/daa705aa60444cb695a99ca54c1abd07cd2b9509 b/fuzz/corpus/fuzz_write/daa705aa60444cb695a99ca54c1abd07cd2b9509 new file mode 100644 index 00000000..2c37e74d Binary files /dev/null and b/fuzz/corpus/fuzz_write/daa705aa60444cb695a99ca54c1abd07cd2b9509 differ diff --git a/fuzz/corpus/fuzz_write/daaf855bba6fb8f5b0cc18445e5c7e7351dad662 b/fuzz/corpus/fuzz_write/daaf855bba6fb8f5b0cc18445e5c7e7351dad662 new file mode 100644 index 00000000..efbdd9df Binary files /dev/null and b/fuzz/corpus/fuzz_write/daaf855bba6fb8f5b0cc18445e5c7e7351dad662 differ diff --git a/fuzz/corpus/fuzz_write/dae02b9f66f5dbcb9ad831b40d221c259f797fbf b/fuzz/corpus/fuzz_write/dae02b9f66f5dbcb9ad831b40d221c259f797fbf new file mode 100644 index 00000000..dfda7d49 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dae02b9f66f5dbcb9ad831b40d221c259f797fbf differ diff --git a/fuzz/corpus/fuzz_write/daed2f8d22a0134e4bf410871108176fafa8e72c b/fuzz/corpus/fuzz_write/daed2f8d22a0134e4bf410871108176fafa8e72c new file mode 100644 index 00000000..d0a607df Binary files /dev/null and b/fuzz/corpus/fuzz_write/daed2f8d22a0134e4bf410871108176fafa8e72c differ diff --git a/fuzz/corpus/fuzz_write/db217eaf3053ed65502df6e5d464d90ebc364bb6 b/fuzz/corpus/fuzz_write/db217eaf3053ed65502df6e5d464d90ebc364bb6 new file mode 100644 index 00000000..b21ccb23 Binary files /dev/null and b/fuzz/corpus/fuzz_write/db217eaf3053ed65502df6e5d464d90ebc364bb6 differ diff --git a/fuzz/corpus/fuzz_write/db2dcf65c9c7cfc02b126ee046f55dcc2bf9db9c b/fuzz/corpus/fuzz_write/db2dcf65c9c7cfc02b126ee046f55dcc2bf9db9c new file mode 100644 index 00000000..5792b52c Binary files /dev/null and b/fuzz/corpus/fuzz_write/db2dcf65c9c7cfc02b126ee046f55dcc2bf9db9c differ diff --git a/fuzz/corpus/fuzz_write/db315b3070a2af366e603d699085ac4846164b19 b/fuzz/corpus/fuzz_write/db315b3070a2af366e603d699085ac4846164b19 new file mode 100644 index 00000000..d3fc382d Binary files /dev/null and b/fuzz/corpus/fuzz_write/db315b3070a2af366e603d699085ac4846164b19 differ diff --git a/fuzz/corpus/fuzz_write/db9a4b5d480a343c339c2cbd052f28745d50a1fc b/fuzz/corpus/fuzz_write/db9a4b5d480a343c339c2cbd052f28745d50a1fc new file mode 100644 index 00000000..2c6759bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/db9a4b5d480a343c339c2cbd052f28745d50a1fc differ diff --git a/fuzz/corpus/fuzz_write/dba6847d86f9801b0c483d8ae6c9d09f82169ccc b/fuzz/corpus/fuzz_write/dba6847d86f9801b0c483d8ae6c9d09f82169ccc new file mode 100644 index 00000000..aab38a2a --- /dev/null +++ b/fuzz/corpus/fuzz_write/dba6847d86f9801b0c483d8ae6c9d09f82169ccc @@ -0,0 +1,2 @@ +KP +;PK \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/dbb77720fceedbd8f6f66020a8ffbd81f5a21ae8 b/fuzz/corpus/fuzz_write/dbb77720fceedbd8f6f66020a8ffbd81f5a21ae8 new file mode 100644 index 00000000..7d31b764 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbb77720fceedbd8f6f66020a8ffbd81f5a21ae8 differ diff --git a/fuzz/corpus/fuzz_write/dbbf9f91d01b53bc121500fdebb42119ac15b95e b/fuzz/corpus/fuzz_write/dbbf9f91d01b53bc121500fdebb42119ac15b95e new file mode 100644 index 00000000..c5cacb15 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbbf9f91d01b53bc121500fdebb42119ac15b95e differ diff --git a/fuzz/corpus/fuzz_write/dbdcfaf31904ec2c0c8f7b0edec01a2a1da85799 b/fuzz/corpus/fuzz_write/dbdcfaf31904ec2c0c8f7b0edec01a2a1da85799 new file mode 100644 index 00000000..6ec0e8ba Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbdcfaf31904ec2c0c8f7b0edec01a2a1da85799 differ diff --git a/fuzz/corpus/fuzz_write/dbe25bde81b5b726ecee7ce1a02a8ea49b9010e9 b/fuzz/corpus/fuzz_write/dbe25bde81b5b726ecee7ce1a02a8ea49b9010e9 new file mode 100644 index 00000000..0624c3e7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbe25bde81b5b726ecee7ce1a02a8ea49b9010e9 differ diff --git a/fuzz/corpus/fuzz_write/dbe63963c21ecee21aa43e4aaab13604a34513c0 b/fuzz/corpus/fuzz_write/dbe63963c21ecee21aa43e4aaab13604a34513c0 new file mode 100644 index 00000000..75caed19 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbe63963c21ecee21aa43e4aaab13604a34513c0 differ diff --git a/fuzz/corpus/fuzz_write/dbe8c3f73f2e0e5145dd83f26913298782009e69 b/fuzz/corpus/fuzz_write/dbe8c3f73f2e0e5145dd83f26913298782009e69 new file mode 100644 index 00000000..63f28ad5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbe8c3f73f2e0e5145dd83f26913298782009e69 differ diff --git a/fuzz/corpus/fuzz_write/dbeb2cf57f2cf58535d77b06097ed5561b067274 b/fuzz/corpus/fuzz_write/dbeb2cf57f2cf58535d77b06097ed5561b067274 new file mode 100644 index 00000000..d4a16d91 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbeb2cf57f2cf58535d77b06097ed5561b067274 differ diff --git a/fuzz/corpus/fuzz_write/dbec269fc0e2123ef3bf7d5386834726a51cefaa b/fuzz/corpus/fuzz_write/dbec269fc0e2123ef3bf7d5386834726a51cefaa new file mode 100644 index 00000000..5ae5c91d Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbec269fc0e2123ef3bf7d5386834726a51cefaa differ diff --git a/fuzz/corpus/fuzz_write/dbec8a1dc5ef20ae1d93988b784dee26225f886b b/fuzz/corpus/fuzz_write/dbec8a1dc5ef20ae1d93988b784dee26225f886b new file mode 100644 index 00000000..f1f3d291 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dbec8a1dc5ef20ae1d93988b784dee26225f886b differ diff --git a/fuzz/corpus/fuzz_write/dc06c4b770879db3366638f984737e6b7dda11be b/fuzz/corpus/fuzz_write/dc06c4b770879db3366638f984737e6b7dda11be new file mode 100644 index 00000000..7d2cbd1e Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc06c4b770879db3366638f984737e6b7dda11be differ diff --git a/fuzz/corpus/fuzz_write/dc11b606a289155fd0527fec99c6cf7a8bee88b6 b/fuzz/corpus/fuzz_write/dc11b606a289155fd0527fec99c6cf7a8bee88b6 new file mode 100644 index 00000000..a704eeaf Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc11b606a289155fd0527fec99c6cf7a8bee88b6 differ diff --git a/fuzz/corpus/fuzz_write/dc27e0b391f8f0e26789f3447dfd2856ab3633e9 b/fuzz/corpus/fuzz_write/dc27e0b391f8f0e26789f3447dfd2856ab3633e9 new file mode 100644 index 00000000..55b0cc9e Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc27e0b391f8f0e26789f3447dfd2856ab3633e9 differ diff --git a/fuzz/corpus/fuzz_write/dc2966dc3d2ab593bf27b767148be4d42d0471fd b/fuzz/corpus/fuzz_write/dc2966dc3d2ab593bf27b767148be4d42d0471fd new file mode 100644 index 00000000..14a58bc5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc2966dc3d2ab593bf27b767148be4d42d0471fd differ diff --git a/fuzz/corpus/fuzz_write/dc38da8ca1e0ba96e4818fdb29e638263d36e31a b/fuzz/corpus/fuzz_write/dc38da8ca1e0ba96e4818fdb29e638263d36e31a new file mode 100644 index 00000000..4806d1a7 --- /dev/null +++ b/fuzz/corpus/fuzz_write/dc38da8ca1e0ba96e4818fdb29e638263d36e31a @@ -0,0 +1 @@ +3 ?-!3 ?-!../!# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/dc43968308e9dd67fbf596c036f0d90168fd3fcf b/fuzz/corpus/fuzz_write/dc43968308e9dd67fbf596c036f0d90168fd3fcf new file mode 100644 index 00000000..5dd4768d Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc43968308e9dd67fbf596c036f0d90168fd3fcf differ diff --git a/fuzz/corpus/fuzz_write/dc8be66aeb8bfd1e9b5820628f5b17c4708d38a9 b/fuzz/corpus/fuzz_write/dc8be66aeb8bfd1e9b5820628f5b17c4708d38a9 new file mode 100644 index 00000000..322ef75e Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc8be66aeb8bfd1e9b5820628f5b17c4708d38a9 differ diff --git a/fuzz/corpus/fuzz_write/dc9763d577f6e94f7b394fb5ca90b03b9ce85263 b/fuzz/corpus/fuzz_write/dc9763d577f6e94f7b394fb5ca90b03b9ce85263 new file mode 100644 index 00000000..3bbfd6ad Binary files /dev/null and b/fuzz/corpus/fuzz_write/dc9763d577f6e94f7b394fb5ca90b03b9ce85263 differ diff --git a/fuzz/corpus/fuzz_write/dca6fefd994360feded7b62013c6cf2a013600db b/fuzz/corpus/fuzz_write/dca6fefd994360feded7b62013c6cf2a013600db new file mode 100644 index 00000000..cc9ef2ad Binary files /dev/null and b/fuzz/corpus/fuzz_write/dca6fefd994360feded7b62013c6cf2a013600db differ diff --git a/fuzz/corpus/fuzz_write/dca919e91247ce518ff943c7209d62d2b601d354 b/fuzz/corpus/fuzz_write/dca919e91247ce518ff943c7209d62d2b601d354 new file mode 100644 index 00000000..bdabeddb Binary files /dev/null and b/fuzz/corpus/fuzz_write/dca919e91247ce518ff943c7209d62d2b601d354 differ diff --git a/fuzz/corpus/fuzz_write/dcacbae3acbce39dc2f04bcd29030d54d54b9168 b/fuzz/corpus/fuzz_write/dcacbae3acbce39dc2f04bcd29030d54d54b9168 new file mode 100644 index 00000000..755e1986 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dcacbae3acbce39dc2f04bcd29030d54d54b9168 differ diff --git a/fuzz/corpus/fuzz_write/dcb8c251140c3c4ab70e9b8d1874d64ad46a6ad7 b/fuzz/corpus/fuzz_write/dcb8c251140c3c4ab70e9b8d1874d64ad46a6ad7 new file mode 100644 index 00000000..6d02a5bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/dcb8c251140c3c4ab70e9b8d1874d64ad46a6ad7 differ diff --git a/fuzz/corpus/fuzz_write/dcb8ec3501e2ebb748f5909cd1949cb6eec37843 b/fuzz/corpus/fuzz_write/dcb8ec3501e2ebb748f5909cd1949cb6eec37843 new file mode 100644 index 00000000..e8ade183 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dcb8ec3501e2ebb748f5909cd1949cb6eec37843 differ diff --git a/fuzz/corpus/fuzz_write/dcf3f817941c920352b883dfff29a2661b2a30f9 b/fuzz/corpus/fuzz_write/dcf3f817941c920352b883dfff29a2661b2a30f9 new file mode 100644 index 00000000..723facf0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dcf3f817941c920352b883dfff29a2661b2a30f9 differ diff --git a/fuzz/corpus/fuzz_write/dcfdaa303d54f3152def35d9ba0d21d9b19e5422 b/fuzz/corpus/fuzz_write/dcfdaa303d54f3152def35d9ba0d21d9b19e5422 new file mode 100644 index 00000000..33ec1484 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dcfdaa303d54f3152def35d9ba0d21d9b19e5422 differ diff --git a/fuzz/corpus/fuzz_write/dd16d0fc8cf5e656752a515caa065444330e29ec b/fuzz/corpus/fuzz_write/dd16d0fc8cf5e656752a515caa065444330e29ec new file mode 100644 index 00000000..3cd3ac6e Binary files /dev/null and b/fuzz/corpus/fuzz_write/dd16d0fc8cf5e656752a515caa065444330e29ec differ diff --git a/fuzz/corpus/fuzz_write/dd34cfb503c6570fe5122ec640911926f96d969e b/fuzz/corpus/fuzz_write/dd34cfb503c6570fe5122ec640911926f96d969e new file mode 100644 index 00000000..be5efb39 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dd34cfb503c6570fe5122ec640911926f96d969e differ diff --git a/fuzz/corpus/fuzz_write/dd7d825cd022af4f83eaabc710f89c8bcf7ae492 b/fuzz/corpus/fuzz_write/dd7d825cd022af4f83eaabc710f89c8bcf7ae492 new file mode 100644 index 00000000..75f1b8a6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dd7d825cd022af4f83eaabc710f89c8bcf7ae492 differ diff --git a/fuzz/corpus/fuzz_write/dd84d4c5523d50595845d9ba84296fe5236a50b8 b/fuzz/corpus/fuzz_write/dd84d4c5523d50595845d9ba84296fe5236a50b8 new file mode 100644 index 00000000..6fc40dad Binary files /dev/null and b/fuzz/corpus/fuzz_write/dd84d4c5523d50595845d9ba84296fe5236a50b8 differ diff --git a/fuzz/corpus/fuzz_write/dda078ba11b07bcb9ef4d0c5d436c4511ba2f855 b/fuzz/corpus/fuzz_write/dda078ba11b07bcb9ef4d0c5d436c4511ba2f855 new file mode 100644 index 00000000..9d62dd45 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dda078ba11b07bcb9ef4d0c5d436c4511ba2f855 differ diff --git a/fuzz/corpus/fuzz_write/dda29b0a17ef4da5a20f3d6a61f533a8b7e2a892 b/fuzz/corpus/fuzz_write/dda29b0a17ef4da5a20f3d6a61f533a8b7e2a892 new file mode 100644 index 00000000..4bf17d85 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dda29b0a17ef4da5a20f3d6a61f533a8b7e2a892 differ diff --git a/fuzz/corpus/fuzz_write/ddb2d9dd9631d24ceb8a81e5e2937556543da661 b/fuzz/corpus/fuzz_write/ddb2d9dd9631d24ceb8a81e5e2937556543da661 new file mode 100644 index 00000000..3f7bb491 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddb2d9dd9631d24ceb8a81e5e2937556543da661 differ diff --git a/fuzz/corpus/fuzz_write/ddbe5adb88b7767d11b6c02f62a7f228b4f32b9a b/fuzz/corpus/fuzz_write/ddbe5adb88b7767d11b6c02f62a7f228b4f32b9a new file mode 100644 index 00000000..698999d5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddbe5adb88b7767d11b6c02f62a7f228b4f32b9a differ diff --git a/fuzz/corpus/fuzz_write/ddc1aeee23eeeefd4904eab491f05e36dbfbbf15 b/fuzz/corpus/fuzz_write/ddc1aeee23eeeefd4904eab491f05e36dbfbbf15 new file mode 100644 index 00000000..ecdbff82 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddc1aeee23eeeefd4904eab491f05e36dbfbbf15 differ diff --git a/fuzz/corpus/fuzz_write/ddd1748c1797c4206f36a7f13206fab9f44def47 b/fuzz/corpus/fuzz_write/ddd1748c1797c4206f36a7f13206fab9f44def47 new file mode 100644 index 00000000..9e64ad49 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddd1748c1797c4206f36a7f13206fab9f44def47 differ diff --git a/fuzz/corpus/fuzz_write/ddd957bbb386914abfc5088e203bfa1b3d869abc b/fuzz/corpus/fuzz_write/ddd957bbb386914abfc5088e203bfa1b3d869abc new file mode 100644 index 00000000..19ff6cf6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddd957bbb386914abfc5088e203bfa1b3d869abc differ diff --git a/fuzz/corpus/fuzz_write/ddec12f1d938fc5ffd2ce694e58c510304230e4f b/fuzz/corpus/fuzz_write/ddec12f1d938fc5ffd2ce694e58c510304230e4f new file mode 100644 index 00000000..61f91277 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ddec12f1d938fc5ffd2ce694e58c510304230e4f differ diff --git a/fuzz/corpus/fuzz_write/de0ab343859467585d36cc418e9488a96a1eb239 b/fuzz/corpus/fuzz_write/de0ab343859467585d36cc418e9488a96a1eb239 new file mode 100644 index 00000000..eb17a9da Binary files /dev/null and b/fuzz/corpus/fuzz_write/de0ab343859467585d36cc418e9488a96a1eb239 differ diff --git a/fuzz/corpus/fuzz_write/de53cacfd5bc5d73c9d6b3eedd968afbfc29516c b/fuzz/corpus/fuzz_write/de53cacfd5bc5d73c9d6b3eedd968afbfc29516c new file mode 100644 index 00000000..cf972a48 Binary files /dev/null and b/fuzz/corpus/fuzz_write/de53cacfd5bc5d73c9d6b3eedd968afbfc29516c differ diff --git a/fuzz/corpus/fuzz_write/de549c6717ed7b720e09873781ddab0eb6a68210 b/fuzz/corpus/fuzz_write/de549c6717ed7b720e09873781ddab0eb6a68210 new file mode 100644 index 00000000..8fd27e7a Binary files /dev/null and b/fuzz/corpus/fuzz_write/de549c6717ed7b720e09873781ddab0eb6a68210 differ diff --git a/fuzz/corpus/fuzz_write/de61d3043a153345d48f23639381f0ac8d82d9da b/fuzz/corpus/fuzz_write/de61d3043a153345d48f23639381f0ac8d82d9da new file mode 100644 index 00000000..fc336368 Binary files /dev/null and b/fuzz/corpus/fuzz_write/de61d3043a153345d48f23639381f0ac8d82d9da differ diff --git a/fuzz/corpus/fuzz_write/de6c9d0643af76e5a31c279858aab6479dad80e7 b/fuzz/corpus/fuzz_write/de6c9d0643af76e5a31c279858aab6479dad80e7 new file mode 100644 index 00000000..0b791d18 Binary files /dev/null and b/fuzz/corpus/fuzz_write/de6c9d0643af76e5a31c279858aab6479dad80e7 differ diff --git a/fuzz/corpus/fuzz_write/de7b0cc7fd8840d4aeb4bace4bb77452fdaa2824 b/fuzz/corpus/fuzz_write/de7b0cc7fd8840d4aeb4bace4bb77452fdaa2824 new file mode 100644 index 00000000..c31a08fd Binary files /dev/null and b/fuzz/corpus/fuzz_write/de7b0cc7fd8840d4aeb4bace4bb77452fdaa2824 differ diff --git a/fuzz/corpus/fuzz_write/de80c3c6032c3972e7ebf66060d191a132b9589c b/fuzz/corpus/fuzz_write/de80c3c6032c3972e7ebf66060d191a132b9589c new file mode 100644 index 00000000..0d20596b Binary files /dev/null and b/fuzz/corpus/fuzz_write/de80c3c6032c3972e7ebf66060d191a132b9589c differ diff --git a/fuzz/corpus/fuzz_write/de9bfdb8365e6d40a29038dd4a64e899708948c8 b/fuzz/corpus/fuzz_write/de9bfdb8365e6d40a29038dd4a64e899708948c8 new file mode 100644 index 00000000..08531e29 Binary files /dev/null and b/fuzz/corpus/fuzz_write/de9bfdb8365e6d40a29038dd4a64e899708948c8 differ diff --git a/fuzz/corpus/fuzz_write/deba6103bb92759119cc901d296d2036c1d40f33 b/fuzz/corpus/fuzz_write/deba6103bb92759119cc901d296d2036c1d40f33 new file mode 100644 index 00000000..9300d530 Binary files /dev/null and b/fuzz/corpus/fuzz_write/deba6103bb92759119cc901d296d2036c1d40f33 differ diff --git a/fuzz/corpus/fuzz_write/df16e49e097b6fefa68a4b10dbea5939f47f44a9 b/fuzz/corpus/fuzz_write/df16e49e097b6fefa68a4b10dbea5939f47f44a9 new file mode 100644 index 00000000..7f69ffb2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/df16e49e097b6fefa68a4b10dbea5939f47f44a9 differ diff --git a/fuzz/corpus/fuzz_write/df1b2c73138f56dd3f97da609dc2a798937797fd b/fuzz/corpus/fuzz_write/df1b2c73138f56dd3f97da609dc2a798937797fd new file mode 100644 index 00000000..5eb7cfe0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/df1b2c73138f56dd3f97da609dc2a798937797fd differ diff --git a/fuzz/corpus/fuzz_write/df50ec33f5209b324026c7a7dd5b1d1529721224 b/fuzz/corpus/fuzz_write/df50ec33f5209b324026c7a7dd5b1d1529721224 new file mode 100644 index 00000000..dc88db13 Binary files /dev/null and b/fuzz/corpus/fuzz_write/df50ec33f5209b324026c7a7dd5b1d1529721224 differ diff --git a/fuzz/corpus/fuzz_write/df77817d2ccc17f8fd8e0a085085cc89b8976e37 b/fuzz/corpus/fuzz_write/df77817d2ccc17f8fd8e0a085085cc89b8976e37 new file mode 100644 index 00000000..f9a496d4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/df77817d2ccc17f8fd8e0a085085cc89b8976e37 differ diff --git a/fuzz/corpus/fuzz_write/df7e9ea65fae33163af6d9cd2e6396c738ae6289 b/fuzz/corpus/fuzz_write/df7e9ea65fae33163af6d9cd2e6396c738ae6289 new file mode 100644 index 00000000..0c0bbfef Binary files /dev/null and b/fuzz/corpus/fuzz_write/df7e9ea65fae33163af6d9cd2e6396c738ae6289 differ diff --git a/fuzz/corpus/fuzz_write/df84faebdfa82a543f44d718f0bf340474831f50 b/fuzz/corpus/fuzz_write/df84faebdfa82a543f44d718f0bf340474831f50 new file mode 100644 index 00000000..24c40d33 Binary files /dev/null and b/fuzz/corpus/fuzz_write/df84faebdfa82a543f44d718f0bf340474831f50 differ diff --git a/fuzz/corpus/fuzz_write/df8739d1a42cda4f1f4744a99db7cc75ca18d389 b/fuzz/corpus/fuzz_write/df8739d1a42cda4f1f4744a99db7cc75ca18d389 new file mode 100644 index 00000000..9297d520 --- /dev/null +++ b/fuzz/corpus/fuzz_write/df8739d1a42cda4f1f4744a99db7cc75ca18d389 @@ -0,0 +1 @@ +Z*(K/../58nnnnnnn! \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/dfa4013ba7908732c9b30bc2dc417c82d2fcd71d b/fuzz/corpus/fuzz_write/dfa4013ba7908732c9b30bc2dc417c82d2fcd71d new file mode 100644 index 00000000..6c359199 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dfa4013ba7908732c9b30bc2dc417c82d2fcd71d differ diff --git a/fuzz/corpus/fuzz_write/dfae7746a15b3bcf72aad2190fffa522a2459f2e b/fuzz/corpus/fuzz_write/dfae7746a15b3bcf72aad2190fffa522a2459f2e new file mode 100644 index 00000000..cc99049e --- /dev/null +++ b/fuzz/corpus/fuzz_write/dfae7746a15b3bcf72aad2190fffa522a2459f2e @@ -0,0 +1 @@ +)cK!1 P;KPcI'&)/./#) \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/dfe57fd2a6d8fe63a9c9771af8f99667484c39db b/fuzz/corpus/fuzz_write/dfe57fd2a6d8fe63a9c9771af8f99667484c39db new file mode 100644 index 00000000..7fe20849 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dfe57fd2a6d8fe63a9c9771af8f99667484c39db differ diff --git a/fuzz/corpus/fuzz_write/dfec641dc27ac1d4ceea2b5f06b3d18ac7c8d3d4 b/fuzz/corpus/fuzz_write/dfec641dc27ac1d4ceea2b5f06b3d18ac7c8d3d4 new file mode 100644 index 00000000..b2fdf251 Binary files /dev/null and b/fuzz/corpus/fuzz_write/dfec641dc27ac1d4ceea2b5f06b3d18ac7c8d3d4 differ diff --git a/fuzz/corpus/fuzz_write/e0069c386363d09ad14b3261f31f8458d3109355 b/fuzz/corpus/fuzz_write/e0069c386363d09ad14b3261f31f8458d3109355 new file mode 100644 index 00000000..99e5ac73 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e0069c386363d09ad14b3261f31f8458d3109355 differ diff --git a/fuzz/corpus/fuzz_write/e00823e3202540e8d5983f32266645d426e71d1b b/fuzz/corpus/fuzz_write/e00823e3202540e8d5983f32266645d426e71d1b new file mode 100644 index 00000000..ee37e3dc Binary files /dev/null and b/fuzz/corpus/fuzz_write/e00823e3202540e8d5983f32266645d426e71d1b differ diff --git a/fuzz/corpus/fuzz_write/e012f3d994bb983b9f6cdb080b4cc10e3b4678cd b/fuzz/corpus/fuzz_write/e012f3d994bb983b9f6cdb080b4cc10e3b4678cd new file mode 100644 index 00000000..207a23bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/e012f3d994bb983b9f6cdb080b4cc10e3b4678cd differ diff --git a/fuzz/corpus/fuzz_write/e016c8af9194845b3392981b81a6d30017581a11 b/fuzz/corpus/fuzz_write/e016c8af9194845b3392981b81a6d30017581a11 new file mode 100644 index 00000000..afeabb91 --- /dev/null +++ b/fuzz/corpus/fuzz_write/e016c8af9194845b3392981b81a6d30017581a11 @@ -0,0 +1 @@ +3QJKP# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e0170969c85010a615221933ad3dd04ca251d0b8 b/fuzz/corpus/fuzz_write/e0170969c85010a615221933ad3dd04ca251d0b8 new file mode 100644 index 00000000..2dc92bad Binary files /dev/null and b/fuzz/corpus/fuzz_write/e0170969c85010a615221933ad3dd04ca251d0b8 differ diff --git a/fuzz/corpus/fuzz_write/e01a3e7297fa33aec655bb2e2f21ba5ad7e0b6c8 b/fuzz/corpus/fuzz_write/e01a3e7297fa33aec655bb2e2f21ba5ad7e0b6c8 new file mode 100644 index 00000000..aa5ca844 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e01a3e7297fa33aec655bb2e2f21ba5ad7e0b6c8 differ diff --git a/fuzz/corpus/fuzz_write/e01d3df262803cf81f9d256cf032c5e0976f6221 b/fuzz/corpus/fuzz_write/e01d3df262803cf81f9d256cf032c5e0976f6221 new file mode 100644 index 00000000..c373d50d Binary files /dev/null and b/fuzz/corpus/fuzz_write/e01d3df262803cf81f9d256cf032c5e0976f6221 differ diff --git a/fuzz/corpus/fuzz_write/e022087a31c320ca071885e90230daa74c8cf2de b/fuzz/corpus/fuzz_write/e022087a31c320ca071885e90230daa74c8cf2de new file mode 100644 index 00000000..9366b194 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e022087a31c320ca071885e90230daa74c8cf2de differ diff --git a/fuzz/corpus/fuzz_write/e023d37f895b22b516e660dcb5d0b360ad935421 b/fuzz/corpus/fuzz_write/e023d37f895b22b516e660dcb5d0b360ad935421 new file mode 100644 index 00000000..8cd00197 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e023d37f895b22b516e660dcb5d0b360ad935421 differ diff --git a/fuzz/corpus/fuzz_write/e084d500a3da558ec15e8c2a6e7705769d0b3bc3 b/fuzz/corpus/fuzz_write/e084d500a3da558ec15e8c2a6e7705769d0b3bc3 new file mode 100644 index 00000000..1fce0a66 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e084d500a3da558ec15e8c2a6e7705769d0b3bc3 differ diff --git a/fuzz/corpus/fuzz_write/e0a2a2fa1c241ac5b09c39ae919cee91af32d8bf b/fuzz/corpus/fuzz_write/e0a2a2fa1c241ac5b09c39ae919cee91af32d8bf new file mode 100644 index 00000000..0bcbca94 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e0a2a2fa1c241ac5b09c39ae919cee91af32d8bf differ diff --git a/fuzz/corpus/fuzz_write/e0a515e9e53227102f6c323d2792602bf7237ff4 b/fuzz/corpus/fuzz_write/e0a515e9e53227102f6c323d2792602bf7237ff4 new file mode 100644 index 00000000..5646d4f8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e0a515e9e53227102f6c323d2792602bf7237ff4 differ diff --git a/fuzz/corpus/fuzz_write/e0f993d33cf01d75609a9120759300c8a76d41d7 b/fuzz/corpus/fuzz_write/e0f993d33cf01d75609a9120759300c8a76d41d7 new file mode 100644 index 00000000..15d039aa Binary files /dev/null and b/fuzz/corpus/fuzz_write/e0f993d33cf01d75609a9120759300c8a76d41d7 differ diff --git a/fuzz/corpus/fuzz_write/e10ef892e07d251b8621703fbdcd4cb22de865d7 b/fuzz/corpus/fuzz_write/e10ef892e07d251b8621703fbdcd4cb22de865d7 new file mode 100644 index 00000000..32f59e3d Binary files /dev/null and b/fuzz/corpus/fuzz_write/e10ef892e07d251b8621703fbdcd4cb22de865d7 differ diff --git a/fuzz/corpus/fuzz_write/e114939cb2c2f52bbd7e61fdd8450e74e1457bcd b/fuzz/corpus/fuzz_write/e114939cb2c2f52bbd7e61fdd8450e74e1457bcd new file mode 100644 index 00000000..d65d5c3f Binary files /dev/null and b/fuzz/corpus/fuzz_write/e114939cb2c2f52bbd7e61fdd8450e74e1457bcd differ diff --git a/fuzz/corpus/fuzz_write/e12281d574a5b4dc951f6c9729b54b04810ee881 b/fuzz/corpus/fuzz_write/e12281d574a5b4dc951f6c9729b54b04810ee881 new file mode 100644 index 00000000..e4cb6b65 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e12281d574a5b4dc951f6c9729b54b04810ee881 differ diff --git a/fuzz/corpus/fuzz_write/e12a43499494fb5c980e47006d7705c59579baec b/fuzz/corpus/fuzz_write/e12a43499494fb5c980e47006d7705c59579baec new file mode 100644 index 00000000..25ae130c Binary files /dev/null and b/fuzz/corpus/fuzz_write/e12a43499494fb5c980e47006d7705c59579baec differ diff --git a/fuzz/corpus/fuzz_write/e153a8be6c4f3bfa5c6454f0b79ab14089629000 b/fuzz/corpus/fuzz_write/e153a8be6c4f3bfa5c6454f0b79ab14089629000 new file mode 100644 index 00000000..5c207677 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e153a8be6c4f3bfa5c6454f0b79ab14089629000 differ diff --git a/fuzz/corpus/fuzz_write/e15bce299dff059d81a4e59393c0af3bc0deb35e b/fuzz/corpus/fuzz_write/e15bce299dff059d81a4e59393c0af3bc0deb35e new file mode 100644 index 00000000..08a3bdac Binary files /dev/null and b/fuzz/corpus/fuzz_write/e15bce299dff059d81a4e59393c0af3bc0deb35e differ diff --git a/fuzz/corpus/fuzz_write/e16bd5ab082d88059285734b9821f973058f7320 b/fuzz/corpus/fuzz_write/e16bd5ab082d88059285734b9821f973058f7320 new file mode 100644 index 00000000..437b74ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/e16bd5ab082d88059285734b9821f973058f7320 differ diff --git a/fuzz/corpus/fuzz_write/e1805e9cf3c16a100bd5a1cdb59ea7291bb624ff b/fuzz/corpus/fuzz_write/e1805e9cf3c16a100bd5a1cdb59ea7291bb624ff new file mode 100644 index 00000000..663ba12b Binary files /dev/null and b/fuzz/corpus/fuzz_write/e1805e9cf3c16a100bd5a1cdb59ea7291bb624ff differ diff --git a/fuzz/corpus/fuzz_write/e19b3cf0738c932240c189dd496bd9b99b213e31 b/fuzz/corpus/fuzz_write/e19b3cf0738c932240c189dd496bd9b99b213e31 new file mode 100644 index 00000000..92289abf Binary files /dev/null and b/fuzz/corpus/fuzz_write/e19b3cf0738c932240c189dd496bd9b99b213e31 differ diff --git a/fuzz/corpus/fuzz_write/e19dc0be6bbeff87d49a8bb67731c16c877341bf b/fuzz/corpus/fuzz_write/e19dc0be6bbeff87d49a8bb67731c16c877341bf new file mode 100644 index 00000000..6a0c0d66 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e19dc0be6bbeff87d49a8bb67731c16c877341bf differ diff --git a/fuzz/corpus/fuzz_write/e1bfa1bcc777f8b20a0fd178ffbc2e66f3ca3df6 b/fuzz/corpus/fuzz_write/e1bfa1bcc777f8b20a0fd178ffbc2e66f3ca3df6 new file mode 100644 index 00000000..7311ea51 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e1bfa1bcc777f8b20a0fd178ffbc2e66f3ca3df6 differ diff --git a/fuzz/corpus/fuzz_write/e1ccf33097dae10a6ad8c27237dc63af6d7d93b4 b/fuzz/corpus/fuzz_write/e1ccf33097dae10a6ad8c27237dc63af6d7d93b4 new file mode 100644 index 00000000..de6d9760 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e1ccf33097dae10a6ad8c27237dc63af6d7d93b4 differ diff --git a/fuzz/corpus/fuzz_write/e1d8a0225b757ad6c0363e5d219fd7b3fac88187 b/fuzz/corpus/fuzz_write/e1d8a0225b757ad6c0363e5d219fd7b3fac88187 new file mode 100644 index 00000000..4bad0be6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e1d8a0225b757ad6c0363e5d219fd7b3fac88187 differ diff --git a/fuzz/corpus/fuzz_write/e1f36549b84773ba81efdd518b217fb99d90c38c b/fuzz/corpus/fuzz_write/e1f36549b84773ba81efdd518b217fb99d90c38c new file mode 100644 index 00000000..d16a2d46 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e1f36549b84773ba81efdd518b217fb99d90c38c differ diff --git a/fuzz/corpus/fuzz_write/e2364a4cb53418941b3a9d28ead93270e7137ba5 b/fuzz/corpus/fuzz_write/e2364a4cb53418941b3a9d28ead93270e7137ba5 new file mode 100644 index 00000000..7cfe23ac Binary files /dev/null and b/fuzz/corpus/fuzz_write/e2364a4cb53418941b3a9d28ead93270e7137ba5 differ diff --git a/fuzz/corpus/fuzz_write/e247b3926291c1466b557cad416468b3efb7128b b/fuzz/corpus/fuzz_write/e247b3926291c1466b557cad416468b3efb7128b new file mode 100644 index 00000000..a066a8ff Binary files /dev/null and b/fuzz/corpus/fuzz_write/e247b3926291c1466b557cad416468b3efb7128b differ diff --git a/fuzz/corpus/fuzz_write/e24e430d3eef200d270ef2c4930ab4fc8ca6f960 b/fuzz/corpus/fuzz_write/e24e430d3eef200d270ef2c4930ab4fc8ca6f960 new file mode 100644 index 00000000..51892dc0 --- /dev/null +++ b/fuzz/corpus/fuzz_write/e24e430d3eef200d270ef2c4930ab4fc8ca6f960 @@ -0,0 +1,2 @@ + +2P``-KP \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e29a0532a7704a910763db65c1ed570e6a7c7335 b/fuzz/corpus/fuzz_write/e29a0532a7704a910763db65c1ed570e6a7c7335 new file mode 100644 index 00000000..583c0957 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e29a0532a7704a910763db65c1ed570e6a7c7335 differ diff --git a/fuzz/corpus/fuzz_write/e2c12dcb23dbcee8ac7c32c0d04394d2093eef11 b/fuzz/corpus/fuzz_write/e2c12dcb23dbcee8ac7c32c0d04394d2093eef11 new file mode 100644 index 00000000..519de4b6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e2c12dcb23dbcee8ac7c32c0d04394d2093eef11 differ diff --git a/fuzz/corpus/fuzz_write/e2f2466bd932cd84cb9fa6c3a8f5704e882f02f6 b/fuzz/corpus/fuzz_write/e2f2466bd932cd84cb9fa6c3a8f5704e882f02f6 new file mode 100644 index 00000000..ea853b46 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e2f2466bd932cd84cb9fa6c3a8f5704e882f02f6 differ diff --git a/fuzz/corpus/fuzz_write/e30f2dee87d871016560e4282ad36859eace8a82 b/fuzz/corpus/fuzz_write/e30f2dee87d871016560e4282ad36859eace8a82 new file mode 100644 index 00000000..87f16e5f Binary files /dev/null and b/fuzz/corpus/fuzz_write/e30f2dee87d871016560e4282ad36859eace8a82 differ diff --git a/fuzz/corpus/fuzz_write/e3242f7e21a9912ba44517c5853c94fc9e039f78 b/fuzz/corpus/fuzz_write/e3242f7e21a9912ba44517c5853c94fc9e039f78 new file mode 100644 index 00000000..b05fae31 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e3242f7e21a9912ba44517c5853c94fc9e039f78 differ diff --git a/fuzz/corpus/fuzz_write/e337b4264843c322449280581d230db506450eb2 b/fuzz/corpus/fuzz_write/e337b4264843c322449280581d230db506450eb2 new file mode 100644 index 00000000..d4e0ff59 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e337b4264843c322449280581d230db506450eb2 differ diff --git a/fuzz/corpus/fuzz_write/e35cdc3bac7e6603b3b57e439f5dbade693e77cf b/fuzz/corpus/fuzz_write/e35cdc3bac7e6603b3b57e439f5dbade693e77cf new file mode 100644 index 00000000..a1d05e19 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e35cdc3bac7e6603b3b57e439f5dbade693e77cf differ diff --git a/fuzz/corpus/fuzz_write/e379b750cf3dc7f188d12c58c6917b7a3183fbf8 b/fuzz/corpus/fuzz_write/e379b750cf3dc7f188d12c58c6917b7a3183fbf8 new file mode 100644 index 00000000..8b06efe7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e379b750cf3dc7f188d12c58c6917b7a3183fbf8 differ diff --git a/fuzz/corpus/fuzz_write/e38f8fc245352ad84b85c7c6d233bdb5b71de41a b/fuzz/corpus/fuzz_write/e38f8fc245352ad84b85c7c6d233bdb5b71de41a new file mode 100644 index 00000000..e2f2bf1f Binary files /dev/null and b/fuzz/corpus/fuzz_write/e38f8fc245352ad84b85c7c6d233bdb5b71de41a differ diff --git a/fuzz/corpus/fuzz_write/e3c5618b1403bb88f6169de6150000390d7ebcfe b/fuzz/corpus/fuzz_write/e3c5618b1403bb88f6169de6150000390d7ebcfe new file mode 100644 index 00000000..d95d3477 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e3c5618b1403bb88f6169de6150000390d7ebcfe differ diff --git a/fuzz/corpus/fuzz_write/e432188762d4a9ec17fd5bf5ab25e185604e2505 b/fuzz/corpus/fuzz_write/e432188762d4a9ec17fd5bf5ab25e185604e2505 new file mode 100644 index 00000000..863c443a Binary files /dev/null and b/fuzz/corpus/fuzz_write/e432188762d4a9ec17fd5bf5ab25e185604e2505 differ diff --git a/fuzz/corpus/fuzz_write/e43ab7e978a8a60cb19b853b3fe8e0580134a33e b/fuzz/corpus/fuzz_write/e43ab7e978a8a60cb19b853b3fe8e0580134a33e new file mode 100644 index 00000000..d694d700 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e43ab7e978a8a60cb19b853b3fe8e0580134a33e differ diff --git a/fuzz/corpus/fuzz_write/e441ebc04d6e74502b9fabeb2da0f3062b070248 b/fuzz/corpus/fuzz_write/e441ebc04d6e74502b9fabeb2da0f3062b070248 new file mode 100644 index 00000000..fc779e91 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e441ebc04d6e74502b9fabeb2da0f3062b070248 differ diff --git a/fuzz/corpus/fuzz_write/e44760161491817561353dc1e385b78af2d11888 b/fuzz/corpus/fuzz_write/e44760161491817561353dc1e385b78af2d11888 new file mode 100644 index 00000000..680c2f84 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e44760161491817561353dc1e385b78af2d11888 differ diff --git a/fuzz/corpus/fuzz_write/e4660ae8f6b40b9beffa5f39e602b505d3bc2ffe b/fuzz/corpus/fuzz_write/e4660ae8f6b40b9beffa5f39e602b505d3bc2ffe new file mode 100644 index 00000000..fba96372 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e4660ae8f6b40b9beffa5f39e602b505d3bc2ffe differ diff --git a/fuzz/corpus/fuzz_write/e48a08161ea2ea253574841683746c2c2edb4f2e b/fuzz/corpus/fuzz_write/e48a08161ea2ea253574841683746c2c2edb4f2e new file mode 100644 index 00000000..22113416 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e48a08161ea2ea253574841683746c2c2edb4f2e differ diff --git a/fuzz/corpus/fuzz_write/e4b8bc35ca7938cfd518546a4b5c4f94313aa149 b/fuzz/corpus/fuzz_write/e4b8bc35ca7938cfd518546a4b5c4f94313aa149 new file mode 100644 index 00000000..bc966fc9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e4b8bc35ca7938cfd518546a4b5c4f94313aa149 differ diff --git a/fuzz/corpus/fuzz_write/e4dd207057970740fd0e77c9a3840c29a7305752 b/fuzz/corpus/fuzz_write/e4dd207057970740fd0e77c9a3840c29a7305752 new file mode 100644 index 00000000..7bf2658e Binary files /dev/null and b/fuzz/corpus/fuzz_write/e4dd207057970740fd0e77c9a3840c29a7305752 differ diff --git a/fuzz/corpus/fuzz_write/e4e4d5c6d72833949fb42dda58b1e806b4f6cb6e b/fuzz/corpus/fuzz_write/e4e4d5c6d72833949fb42dda58b1e806b4f6cb6e new file mode 100644 index 00000000..e8c9d6d3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e4e4d5c6d72833949fb42dda58b1e806b4f6cb6e differ diff --git a/fuzz/corpus/fuzz_write/e516e8afd1cd358a9b03428f36397e3db23d301e b/fuzz/corpus/fuzz_write/e516e8afd1cd358a9b03428f36397e3db23d301e new file mode 100644 index 00000000..80bb6fbc Binary files /dev/null and b/fuzz/corpus/fuzz_write/e516e8afd1cd358a9b03428f36397e3db23d301e differ diff --git a/fuzz/corpus/fuzz_write/e51aa70153b7f528863c3552b143d133f9650cfe b/fuzz/corpus/fuzz_write/e51aa70153b7f528863c3552b143d133f9650cfe new file mode 100644 index 00000000..d26a0683 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e51aa70153b7f528863c3552b143d133f9650cfe differ diff --git a/fuzz/corpus/fuzz_write/e5376b0a3a81dd313cbe7fdd61cd802ca02cfd20 b/fuzz/corpus/fuzz_write/e5376b0a3a81dd313cbe7fdd61cd802ca02cfd20 new file mode 100644 index 00000000..c9006128 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5376b0a3a81dd313cbe7fdd61cd802ca02cfd20 differ diff --git a/fuzz/corpus/fuzz_write/e53a91a3ecfa66623b021a9d6f9bf9301168face b/fuzz/corpus/fuzz_write/e53a91a3ecfa66623b021a9d6f9bf9301168face new file mode 100644 index 00000000..5bf9cfee Binary files /dev/null and b/fuzz/corpus/fuzz_write/e53a91a3ecfa66623b021a9d6f9bf9301168face differ diff --git a/fuzz/corpus/fuzz_write/e54f2924289ccc70e6bab3d2303ce560bea0fb84 b/fuzz/corpus/fuzz_write/e54f2924289ccc70e6bab3d2303ce560bea0fb84 new file mode 100644 index 00000000..b5a995f8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e54f2924289ccc70e6bab3d2303ce560bea0fb84 differ diff --git a/fuzz/corpus/fuzz_write/e575a8f15d520fc0f01bec797e2badf40c69b384 b/fuzz/corpus/fuzz_write/e575a8f15d520fc0f01bec797e2badf40c69b384 new file mode 100644 index 00000000..8c3f070a Binary files /dev/null and b/fuzz/corpus/fuzz_write/e575a8f15d520fc0f01bec797e2badf40c69b384 differ diff --git a/fuzz/corpus/fuzz_write/e57c840d48bc0b3358490ee18964dcd527d4f9a2 b/fuzz/corpus/fuzz_write/e57c840d48bc0b3358490ee18964dcd527d4f9a2 new file mode 100644 index 00000000..9b852bf3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e57c840d48bc0b3358490ee18964dcd527d4f9a2 differ diff --git a/fuzz/corpus/fuzz_write/e5d02241ef08c0945e839e9b57d064671c06f82f b/fuzz/corpus/fuzz_write/e5d02241ef08c0945e839e9b57d064671c06f82f new file mode 100644 index 00000000..fbaf71f1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5d02241ef08c0945e839e9b57d064671c06f82f differ diff --git a/fuzz/corpus/fuzz_write/e5d16b195a032444d2ae39ac27dd19ca4b8811df b/fuzz/corpus/fuzz_write/e5d16b195a032444d2ae39ac27dd19ca4b8811df new file mode 100644 index 00000000..4a4cfcdd Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5d16b195a032444d2ae39ac27dd19ca4b8811df differ diff --git a/fuzz/corpus/fuzz_write/e5d1d38af729e0e9caf393ba66c7a3c644ef0a98 b/fuzz/corpus/fuzz_write/e5d1d38af729e0e9caf393ba66c7a3c644ef0a98 new file mode 100644 index 00000000..b820bd70 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5d1d38af729e0e9caf393ba66c7a3c644ef0a98 differ diff --git a/fuzz/corpus/fuzz_write/e5eb6ac9ba01ce8b04c2b587cb799cff31c46d95 b/fuzz/corpus/fuzz_write/e5eb6ac9ba01ce8b04c2b587cb799cff31c46d95 new file mode 100644 index 00000000..36dc4f25 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5eb6ac9ba01ce8b04c2b587cb799cff31c46d95 differ diff --git a/fuzz/corpus/fuzz_write/e5f12c57383f542525fcaf98e20a0eafba8b7c33 b/fuzz/corpus/fuzz_write/e5f12c57383f542525fcaf98e20a0eafba8b7c33 new file mode 100644 index 00000000..100814b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e5f12c57383f542525fcaf98e20a0eafba8b7c33 differ diff --git a/fuzz/corpus/fuzz_write/e6092639ba55fe827e3282b083f910e68efbb950 b/fuzz/corpus/fuzz_write/e6092639ba55fe827e3282b083f910e68efbb950 new file mode 100644 index 00000000..3af906e1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e6092639ba55fe827e3282b083f910e68efbb950 differ diff --git a/fuzz/corpus/fuzz_write/e60f55d2b26796b7cdaee2f315f388fc5248407e b/fuzz/corpus/fuzz_write/e60f55d2b26796b7cdaee2f315f388fc5248407e new file mode 100644 index 00000000..92da292c Binary files /dev/null and b/fuzz/corpus/fuzz_write/e60f55d2b26796b7cdaee2f315f388fc5248407e differ diff --git a/fuzz/corpus/fuzz_write/e65f64862e63c8b2d73a2453e8b16c937571d6dd b/fuzz/corpus/fuzz_write/e65f64862e63c8b2d73a2453e8b16c937571d6dd new file mode 100644 index 00000000..c7c25a5b Binary files /dev/null and b/fuzz/corpus/fuzz_write/e65f64862e63c8b2d73a2453e8b16c937571d6dd differ diff --git a/fuzz/corpus/fuzz_write/e6875f4a6e190daf6c383f2a82cfd1c47927dfe1 b/fuzz/corpus/fuzz_write/e6875f4a6e190daf6c383f2a82cfd1c47927dfe1 new file mode 100644 index 00000000..81d67d31 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e6875f4a6e190daf6c383f2a82cfd1c47927dfe1 differ diff --git a/fuzz/corpus/fuzz_write/e6b512f3aa1cbded793bdbad32025e66940d52b2 b/fuzz/corpus/fuzz_write/e6b512f3aa1cbded793bdbad32025e66940d52b2 new file mode 100644 index 00000000..866a28d1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e6b512f3aa1cbded793bdbad32025e66940d52b2 differ diff --git a/fuzz/corpus/fuzz_write/e6b70b4ce6edbedb33a0357b4e7fc8837bb220ad b/fuzz/corpus/fuzz_write/e6b70b4ce6edbedb33a0357b4e7fc8837bb220ad new file mode 100644 index 00000000..2b9a4628 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e6b70b4ce6edbedb33a0357b4e7fc8837bb220ad differ diff --git a/fuzz/corpus/fuzz_write/e6f67dddbacabc3e844ec5f0354b8a042da9650e b/fuzz/corpus/fuzz_write/e6f67dddbacabc3e844ec5f0354b8a042da9650e new file mode 100644 index 00000000..197413dd Binary files /dev/null and b/fuzz/corpus/fuzz_write/e6f67dddbacabc3e844ec5f0354b8a042da9650e differ diff --git a/fuzz/corpus/fuzz_write/e71074e65f62b9a22d8aa2b7caa36319d2732237 b/fuzz/corpus/fuzz_write/e71074e65f62b9a22d8aa2b7caa36319d2732237 new file mode 100644 index 00000000..251159a7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e71074e65f62b9a22d8aa2b7caa36319d2732237 differ diff --git a/fuzz/corpus/fuzz_write/e738964d0e8eff3b85c0d19e7ed2f593f37e2484 b/fuzz/corpus/fuzz_write/e738964d0e8eff3b85c0d19e7ed2f593f37e2484 new file mode 100644 index 00000000..afdb61f1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e738964d0e8eff3b85c0d19e7ed2f593f37e2484 differ diff --git a/fuzz/corpus/fuzz_write/e755724f20a0832c777251f82b29b63c21e085ce b/fuzz/corpus/fuzz_write/e755724f20a0832c777251f82b29b63c21e085ce new file mode 100644 index 00000000..7454a182 --- /dev/null +++ b/fuzz/corpus/fuzz_write/e755724f20a0832c777251f82b29b63c21e085ce @@ -0,0 +1,2 @@ +OP +i O \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e756b0c0f75932e4085b0b8436402722394f7176 b/fuzz/corpus/fuzz_write/e756b0c0f75932e4085b0b8436402722394f7176 new file mode 100644 index 00000000..ace60ad5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e756b0c0f75932e4085b0b8436402722394f7176 differ diff --git a/fuzz/corpus/fuzz_write/e75c8da63d3bf392532332d0dce44555dbdade68 b/fuzz/corpus/fuzz_write/e75c8da63d3bf392532332d0dce44555dbdade68 new file mode 100644 index 00000000..9741f6c8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e75c8da63d3bf392532332d0dce44555dbdade68 differ diff --git a/fuzz/corpus/fuzz_write/e7826be8f77a31295b74ee8a5dd1d9b82dab06aa b/fuzz/corpus/fuzz_write/e7826be8f77a31295b74ee8a5dd1d9b82dab06aa new file mode 100644 index 00000000..73500203 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e7826be8f77a31295b74ee8a5dd1d9b82dab06aa differ diff --git a/fuzz/corpus/fuzz_write/e7b2cd322af1d6aea98c7dcf7258b65c805f0337 b/fuzz/corpus/fuzz_write/e7b2cd322af1d6aea98c7dcf7258b65c805f0337 new file mode 100644 index 00000000..c554c14d --- /dev/null +++ b/fuzz/corpus/fuzz_write/e7b2cd322af1d6aea98c7dcf7258b65c805f0337 @@ -0,0 +1 @@ +N.y;?@/KP^/; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e7c1a3bcdf64e232f47d758ea84deffc64a94d6e b/fuzz/corpus/fuzz_write/e7c1a3bcdf64e232f47d758ea84deffc64a94d6e new file mode 100644 index 00000000..7873f955 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e7c1a3bcdf64e232f47d758ea84deffc64a94d6e differ diff --git a/fuzz/corpus/fuzz_write/e7ef5242ff6f0fee185fce57ab475bc743e03ebd b/fuzz/corpus/fuzz_write/e7ef5242ff6f0fee185fce57ab475bc743e03ebd new file mode 100644 index 00000000..5396c22c Binary files /dev/null and b/fuzz/corpus/fuzz_write/e7ef5242ff6f0fee185fce57ab475bc743e03ebd differ diff --git a/fuzz/corpus/fuzz_write/e7fb2035d64f0c98f93670a1deab3f5f80906250 b/fuzz/corpus/fuzz_write/e7fb2035d64f0c98f93670a1deab3f5f80906250 new file mode 100644 index 00000000..d7ea35a3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e7fb2035d64f0c98f93670a1deab3f5f80906250 differ diff --git a/fuzz/corpus/fuzz_write/e80b436392874327ee6adec80dc636937b79548d b/fuzz/corpus/fuzz_write/e80b436392874327ee6adec80dc636937b79548d new file mode 100644 index 00000000..f97b5b0c Binary files /dev/null and b/fuzz/corpus/fuzz_write/e80b436392874327ee6adec80dc636937b79548d differ diff --git a/fuzz/corpus/fuzz_write/e8181bea4cb3527a58704f29828adfc914761445 b/fuzz/corpus/fuzz_write/e8181bea4cb3527a58704f29828adfc914761445 new file mode 100644 index 00000000..cb8c8032 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8181bea4cb3527a58704f29828adfc914761445 differ diff --git a/fuzz/corpus/fuzz_write/e835e8b237e6465f6a53fe9835be3bdb0dc0848c b/fuzz/corpus/fuzz_write/e835e8b237e6465f6a53fe9835be3bdb0dc0848c new file mode 100644 index 00000000..b540b508 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e835e8b237e6465f6a53fe9835be3bdb0dc0848c differ diff --git a/fuzz/corpus/fuzz_write/e85aae732e37c3e46736cc61fe60592005ff2bfa b/fuzz/corpus/fuzz_write/e85aae732e37c3e46736cc61fe60592005ff2bfa new file mode 100644 index 00000000..a11f8eaa Binary files /dev/null and b/fuzz/corpus/fuzz_write/e85aae732e37c3e46736cc61fe60592005ff2bfa differ diff --git a/fuzz/corpus/fuzz_write/e869784b1ec4290c8ab0342eb426e730d3cba95b b/fuzz/corpus/fuzz_write/e869784b1ec4290c8ab0342eb426e730d3cba95b new file mode 100644 index 00000000..31dd8c34 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e869784b1ec4290c8ab0342eb426e730d3cba95b differ diff --git a/fuzz/corpus/fuzz_write/e8bd1f9dc1116d3887e0e7a80bf3eafb91c2230f b/fuzz/corpus/fuzz_write/e8bd1f9dc1116d3887e0e7a80bf3eafb91c2230f new file mode 100644 index 00000000..b5be25fd Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8bd1f9dc1116d3887e0e7a80bf3eafb91c2230f differ diff --git a/fuzz/corpus/fuzz_write/e8e00510f0d3b4a8361c522de2eb92b3eaff558d b/fuzz/corpus/fuzz_write/e8e00510f0d3b4a8361c522de2eb92b3eaff558d new file mode 100644 index 00000000..6668d767 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8e00510f0d3b4a8361c522de2eb92b3eaff558d differ diff --git a/fuzz/corpus/fuzz_write/e8f2375913d078543ec051bf94e91acd8ab05998 b/fuzz/corpus/fuzz_write/e8f2375913d078543ec051bf94e91acd8ab05998 new file mode 100644 index 00000000..dcc3fe1f Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8f2375913d078543ec051bf94e91acd8ab05998 differ diff --git a/fuzz/corpus/fuzz_write/e8f23af7253825b8502355105f7a5377c5025611 b/fuzz/corpus/fuzz_write/e8f23af7253825b8502355105f7a5377c5025611 new file mode 100644 index 00000000..ad7159bb Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8f23af7253825b8502355105f7a5377c5025611 differ diff --git a/fuzz/corpus/fuzz_write/e8fb2174b2a6d45d40e5803eeb17448b133a7216 b/fuzz/corpus/fuzz_write/e8fb2174b2a6d45d40e5803eeb17448b133a7216 new file mode 100644 index 00000000..a51e78d2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e8fb2174b2a6d45d40e5803eeb17448b133a7216 differ diff --git a/fuzz/corpus/fuzz_write/e90bc2adcca9e7422c556187baedd3792a2844e5 b/fuzz/corpus/fuzz_write/e90bc2adcca9e7422c556187baedd3792a2844e5 new file mode 100644 index 00000000..456b1ea1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e90bc2adcca9e7422c556187baedd3792a2844e5 differ diff --git a/fuzz/corpus/fuzz_write/e9282fe0a923893c77a87e306c7134a4cef645ed b/fuzz/corpus/fuzz_write/e9282fe0a923893c77a87e306c7134a4cef645ed new file mode 100644 index 00000000..a016dc9f Binary files /dev/null and b/fuzz/corpus/fuzz_write/e9282fe0a923893c77a87e306c7134a4cef645ed differ diff --git a/fuzz/corpus/fuzz_write/e92e3a0e9cf7edbe7906b4b2e57274658bf3bca7 b/fuzz/corpus/fuzz_write/e92e3a0e9cf7edbe7906b4b2e57274658bf3bca7 new file mode 100644 index 00000000..26adaad4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e92e3a0e9cf7edbe7906b4b2e57274658bf3bca7 differ diff --git a/fuzz/corpus/fuzz_write/e92ed20e0a059ac0e9a92b1c8244309b1087eb1f b/fuzz/corpus/fuzz_write/e92ed20e0a059ac0e9a92b1c8244309b1087eb1f new file mode 100644 index 00000000..ec3d9575 --- /dev/null +++ b/fuzz/corpus/fuzz_write/e92ed20e0a059ac0e9a92b1c8244309b1087eb1f @@ -0,0 +1 @@ +)]]]]]]]]]]]K]]]]]]]]]]]]]]]a]] \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e93c827c4c94a6087710194c53b6d396a5714ecf b/fuzz/corpus/fuzz_write/e93c827c4c94a6087710194c53b6d396a5714ecf new file mode 100644 index 00000000..891106e5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e93c827c4c94a6087710194c53b6d396a5714ecf differ diff --git a/fuzz/corpus/fuzz_write/e94a07e39f4d3dfeacaab6a0ad00c785c2a7e5c1 b/fuzz/corpus/fuzz_write/e94a07e39f4d3dfeacaab6a0ad00c785c2a7e5c1 new file mode 100644 index 00000000..560fb2dc --- /dev/null +++ b/fuzz/corpus/fuzz_write/e94a07e39f4d3dfeacaab6a0ad00c785c2a7e5c1 @@ -0,0 +1 @@ +PK34PK3333Z3 \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e961416c5e1612790909ce254576635b64d567b4 b/fuzz/corpus/fuzz_write/e961416c5e1612790909ce254576635b64d567b4 new file mode 100644 index 00000000..33f17e34 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e961416c5e1612790909ce254576635b64d567b4 differ diff --git a/fuzz/corpus/fuzz_write/e97f41e2d7a9be4b7bad165a49baabad5e93e7c4 b/fuzz/corpus/fuzz_write/e97f41e2d7a9be4b7bad165a49baabad5e93e7c4 new file mode 100644 index 00000000..e8edc225 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e97f41e2d7a9be4b7bad165a49baabad5e93e7c4 differ diff --git a/fuzz/corpus/fuzz_write/e98a12f2f6d3ae32a2ae1eda223ebd4ff56d1636 b/fuzz/corpus/fuzz_write/e98a12f2f6d3ae32a2ae1eda223ebd4ff56d1636 new file mode 100644 index 00000000..e7be3d16 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e98a12f2f6d3ae32a2ae1eda223ebd4ff56d1636 differ diff --git a/fuzz/corpus/fuzz_write/e99a98caddf89b1ba860b93856f6da125ef5f338 b/fuzz/corpus/fuzz_write/e99a98caddf89b1ba860b93856f6da125ef5f338 new file mode 100644 index 00000000..94902cbc Binary files /dev/null and b/fuzz/corpus/fuzz_write/e99a98caddf89b1ba860b93856f6da125ef5f338 differ diff --git a/fuzz/corpus/fuzz_write/e99de9511ad3fc771cbe43d295337bd6c8332434 b/fuzz/corpus/fuzz_write/e99de9511ad3fc771cbe43d295337bd6c8332434 new file mode 100644 index 00000000..078cc477 --- /dev/null +++ b/fuzz/corpus/fuzz_write/e99de9511ad3fc771cbe43d295337bd6c8332434 @@ -0,0 +1 @@ +*`!* \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/e9f774cc28724ecd31629b1fca8a7f6a41609f86 b/fuzz/corpus/fuzz_write/e9f774cc28724ecd31629b1fca8a7f6a41609f86 new file mode 100644 index 00000000..1459e691 Binary files /dev/null and b/fuzz/corpus/fuzz_write/e9f774cc28724ecd31629b1fca8a7f6a41609f86 differ diff --git a/fuzz/corpus/fuzz_write/ea13a685968dd342e215aeab44530a0ec8fbf71e b/fuzz/corpus/fuzz_write/ea13a685968dd342e215aeab44530a0ec8fbf71e new file mode 100644 index 00000000..f42e0299 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ea13a685968dd342e215aeab44530a0ec8fbf71e differ diff --git a/fuzz/corpus/fuzz_write/ea49139471366243a71e05ff3637101d99d61f94 b/fuzz/corpus/fuzz_write/ea49139471366243a71e05ff3637101d99d61f94 new file mode 100644 index 00000000..51c1af98 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ea49139471366243a71e05ff3637101d99d61f94 differ diff --git a/fuzz/corpus/fuzz_write/ea673952e30498961700e77c0f0b118557f13a45 b/fuzz/corpus/fuzz_write/ea673952e30498961700e77c0f0b118557f13a45 new file mode 100644 index 00000000..14cd72ee Binary files /dev/null and b/fuzz/corpus/fuzz_write/ea673952e30498961700e77c0f0b118557f13a45 differ diff --git a/fuzz/corpus/fuzz_write/ea6be835f2eaa93cf2466ee61a08b5ef94c718db b/fuzz/corpus/fuzz_write/ea6be835f2eaa93cf2466ee61a08b5ef94c718db new file mode 100644 index 00000000..c665b721 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ea6be835f2eaa93cf2466ee61a08b5ef94c718db differ diff --git a/fuzz/corpus/fuzz_write/ea7f980f1a5c98c89178eda08ebfe3a93a9d9d81 b/fuzz/corpus/fuzz_write/ea7f980f1a5c98c89178eda08ebfe3a93a9d9d81 new file mode 100644 index 00000000..a9dc9f06 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ea7f980f1a5c98c89178eda08ebfe3a93a9d9d81 differ diff --git a/fuzz/corpus/fuzz_write/eab00740b2ba26461a255c4ad48f1bdd4c9d31ab b/fuzz/corpus/fuzz_write/eab00740b2ba26461a255c4ad48f1bdd4c9d31ab new file mode 100644 index 00000000..9f5724c2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eab00740b2ba26461a255c4ad48f1bdd4c9d31ab differ diff --git a/fuzz/corpus/fuzz_write/eae9b8517efb9335134aef3221937e435d807651 b/fuzz/corpus/fuzz_write/eae9b8517efb9335134aef3221937e435d807651 new file mode 100644 index 00000000..f7866038 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eae9b8517efb9335134aef3221937e435d807651 differ diff --git a/fuzz/corpus/fuzz_write/eaf408058698d781e4fdcb5b4dd8561a08115003 b/fuzz/corpus/fuzz_write/eaf408058698d781e4fdcb5b4dd8561a08115003 new file mode 100644 index 00000000..2ea4e003 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eaf408058698d781e4fdcb5b4dd8561a08115003 differ diff --git a/fuzz/corpus/fuzz_write/eb0047a4f3b125deeac885b2dca5323ad7ee0d17 b/fuzz/corpus/fuzz_write/eb0047a4f3b125deeac885b2dca5323ad7ee0d17 new file mode 100644 index 00000000..b240ef6b Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb0047a4f3b125deeac885b2dca5323ad7ee0d17 differ diff --git a/fuzz/corpus/fuzz_write/eb0b5203ae3b109333555d2d1c71760ab93534cd b/fuzz/corpus/fuzz_write/eb0b5203ae3b109333555d2d1c71760ab93534cd new file mode 100644 index 00000000..9e28dc49 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb0b5203ae3b109333555d2d1c71760ab93534cd differ diff --git a/fuzz/corpus/fuzz_write/eb0b9936887b872c9af4f81f9dca1b09320aef05 b/fuzz/corpus/fuzz_write/eb0b9936887b872c9af4f81f9dca1b09320aef05 new file mode 100644 index 00000000..ea2a4e6c Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb0b9936887b872c9af4f81f9dca1b09320aef05 differ diff --git a/fuzz/corpus/fuzz_write/eb1ecfde1309e822d3b1d0a52d8765eb1bdef93d b/fuzz/corpus/fuzz_write/eb1ecfde1309e822d3b1d0a52d8765eb1bdef93d new file mode 100644 index 00000000..e02923e1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb1ecfde1309e822d3b1d0a52d8765eb1bdef93d differ diff --git a/fuzz/corpus/fuzz_write/eb3f35fff7e2f6c838e4ed692eecf73ff2be444b b/fuzz/corpus/fuzz_write/eb3f35fff7e2f6c838e4ed692eecf73ff2be444b new file mode 100644 index 00000000..dd255d00 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb3f35fff7e2f6c838e4ed692eecf73ff2be444b differ diff --git a/fuzz/corpus/fuzz_write/eb4cce4ac0460bd8a199ea932689da867a744ad3 b/fuzz/corpus/fuzz_write/eb4cce4ac0460bd8a199ea932689da867a744ad3 new file mode 100644 index 00000000..080b90c1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb4cce4ac0460bd8a199ea932689da867a744ad3 differ diff --git a/fuzz/corpus/fuzz_write/eb96a0725ee31250e800054aaab52e6d6aee9c84 b/fuzz/corpus/fuzz_write/eb96a0725ee31250e800054aaab52e6d6aee9c84 new file mode 100644 index 00000000..9a17c5b8 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eb96a0725ee31250e800054aaab52e6d6aee9c84 differ diff --git a/fuzz/corpus/fuzz_write/ebaab4fdde4996f6c45b0fa28b93732868f08164 b/fuzz/corpus/fuzz_write/ebaab4fdde4996f6c45b0fa28b93732868f08164 new file mode 100644 index 00000000..456009a3 --- /dev/null +++ b/fuzz/corpus/fuzz_write/ebaab4fdde4996f6c45b0fa28b93732868f08164 @@ -0,0 +1 @@ +)iKP/E/rrrrrrrrrrrrr...,0' \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/ebb9484cd2eb7fc1004495367242f9d4af75232e b/fuzz/corpus/fuzz_write/ebb9484cd2eb7fc1004495367242f9d4af75232e new file mode 100644 index 00000000..377a0517 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ebb9484cd2eb7fc1004495367242f9d4af75232e differ diff --git a/fuzz/corpus/fuzz_write/ebf47dd1b8c45987f71d487050e51baba12e8127 b/fuzz/corpus/fuzz_write/ebf47dd1b8c45987f71d487050e51baba12e8127 new file mode 100644 index 00000000..b858edfe Binary files /dev/null and b/fuzz/corpus/fuzz_write/ebf47dd1b8c45987f71d487050e51baba12e8127 differ diff --git a/fuzz/corpus/fuzz_write/ec3669fbd8b2b461e341474a887119cae561d744 b/fuzz/corpus/fuzz_write/ec3669fbd8b2b461e341474a887119cae561d744 new file mode 100644 index 00000000..ec11ed9c Binary files /dev/null and b/fuzz/corpus/fuzz_write/ec3669fbd8b2b461e341474a887119cae561d744 differ diff --git a/fuzz/corpus/fuzz_write/ec3693089850b14d811e99a31eeb01684153b2f5 b/fuzz/corpus/fuzz_write/ec3693089850b14d811e99a31eeb01684153b2f5 new file mode 100644 index 00000000..84f1a85e Binary files /dev/null and b/fuzz/corpus/fuzz_write/ec3693089850b14d811e99a31eeb01684153b2f5 differ diff --git a/fuzz/corpus/fuzz_write/ec5690d5de4ffb85c53218cb791d58ab04cc2575 b/fuzz/corpus/fuzz_write/ec5690d5de4ffb85c53218cb791d58ab04cc2575 new file mode 100644 index 00000000..54f6581b --- /dev/null +++ b/fuzz/corpus/fuzz_write/ec5690d5de4ffb85c53218cb791d58ab04cc2575 @@ -0,0 +1,2 @@ + +3_4&4&/./&٭//.//./&٭//./٭//.//./2ҭ/ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/ec5cf7f43d03f289a0c7a75691305afabdfbca95 b/fuzz/corpus/fuzz_write/ec5cf7f43d03f289a0c7a75691305afabdfbca95 new file mode 100644 index 00000000..f1c455cc Binary files /dev/null and b/fuzz/corpus/fuzz_write/ec5cf7f43d03f289a0c7a75691305afabdfbca95 differ diff --git a/fuzz/corpus/fuzz_write/ec6be3985b119465c83a29ea16df25d32e2303e9 b/fuzz/corpus/fuzz_write/ec6be3985b119465c83a29ea16df25d32e2303e9 new file mode 100644 index 00000000..2c0357e5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ec6be3985b119465c83a29ea16df25d32e2303e9 differ diff --git a/fuzz/corpus/fuzz_write/ec71d424f93ec2071e6ed6664d5d88f33f226086 b/fuzz/corpus/fuzz_write/ec71d424f93ec2071e6ed6664d5d88f33f226086 new file mode 100644 index 00000000..78568f24 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ec71d424f93ec2071e6ed6664d5d88f33f226086 differ diff --git a/fuzz/corpus/fuzz_write/eca8c35811c3bd058144b9084ced91e39a377362 b/fuzz/corpus/fuzz_write/eca8c35811c3bd058144b9084ced91e39a377362 new file mode 100644 index 00000000..fdbedc65 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eca8c35811c3bd058144b9084ced91e39a377362 differ diff --git a/fuzz/corpus/fuzz_write/ecaa04b8c881c628876b7520508949ec4c8102f2 b/fuzz/corpus/fuzz_write/ecaa04b8c881c628876b7520508949ec4c8102f2 new file mode 100644 index 00000000..8c781eb0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ecaa04b8c881c628876b7520508949ec4c8102f2 differ diff --git a/fuzz/corpus/fuzz_write/ecd80da1cc8b8a2a1c4e668546bbc9f23ebc7dc4 b/fuzz/corpus/fuzz_write/ecd80da1cc8b8a2a1c4e668546bbc9f23ebc7dc4 new file mode 100644 index 00000000..3b47c08b Binary files /dev/null and b/fuzz/corpus/fuzz_write/ecd80da1cc8b8a2a1c4e668546bbc9f23ebc7dc4 differ diff --git a/fuzz/corpus/fuzz_write/ecf74632b3ff62e359c8d7b846b40cc0313e61f9 b/fuzz/corpus/fuzz_write/ecf74632b3ff62e359c8d7b846b40cc0313e61f9 new file mode 100644 index 00000000..618884df Binary files /dev/null and b/fuzz/corpus/fuzz_write/ecf74632b3ff62e359c8d7b846b40cc0313e61f9 differ diff --git a/fuzz/corpus/fuzz_write/ecfaa9bab28d1167738fffce011b86a0fe9a5a83 b/fuzz/corpus/fuzz_write/ecfaa9bab28d1167738fffce011b86a0fe9a5a83 new file mode 100644 index 00000000..9c339c1e Binary files /dev/null and b/fuzz/corpus/fuzz_write/ecfaa9bab28d1167738fffce011b86a0fe9a5a83 differ diff --git a/fuzz/corpus/fuzz_write/ecfbc0fd9e1cd9b6f0a6c3b4ccb16f14d710fadc b/fuzz/corpus/fuzz_write/ecfbc0fd9e1cd9b6f0a6c3b4ccb16f14d710fadc new file mode 100644 index 00000000..5681db41 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ecfbc0fd9e1cd9b6f0a6c3b4ccb16f14d710fadc differ diff --git a/fuzz/corpus/fuzz_write/ed04ea600d11d20560c7fc83de0b2e013e362b61 b/fuzz/corpus/fuzz_write/ed04ea600d11d20560c7fc83de0b2e013e362b61 new file mode 100644 index 00000000..853774ec Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed04ea600d11d20560c7fc83de0b2e013e362b61 differ diff --git a/fuzz/corpus/fuzz_write/ed1fd265d2b742d82d9947dd90aff8919c719784 b/fuzz/corpus/fuzz_write/ed1fd265d2b742d82d9947dd90aff8919c719784 new file mode 100644 index 00000000..1216b579 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed1fd265d2b742d82d9947dd90aff8919c719784 differ diff --git a/fuzz/corpus/fuzz_write/ed315c0730ca9fd97bc145b46fc226028bc9c221 b/fuzz/corpus/fuzz_write/ed315c0730ca9fd97bc145b46fc226028bc9c221 new file mode 100644 index 00000000..24fefb9a Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed315c0730ca9fd97bc145b46fc226028bc9c221 differ diff --git a/fuzz/corpus/fuzz_write/ed37fb6e985c472549e5a290d34ea54bc7cd700c b/fuzz/corpus/fuzz_write/ed37fb6e985c472549e5a290d34ea54bc7cd700c new file mode 100644 index 00000000..805468bf Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed37fb6e985c472549e5a290d34ea54bc7cd700c differ diff --git a/fuzz/corpus/fuzz_write/ed48de4e1bc090912146c835e8132323cd9704a1 b/fuzz/corpus/fuzz_write/ed48de4e1bc090912146c835e8132323cd9704a1 new file mode 100644 index 00000000..49091dcd Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed48de4e1bc090912146c835e8132323cd9704a1 differ diff --git a/fuzz/corpus/fuzz_write/ed523ff98b943187751755de0f6a25f115b2c1b9 b/fuzz/corpus/fuzz_write/ed523ff98b943187751755de0f6a25f115b2c1b9 new file mode 100644 index 00000000..19cddb56 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed523ff98b943187751755de0f6a25f115b2c1b9 differ diff --git a/fuzz/corpus/fuzz_write/ed5629527485ad7ebdd66a56b5965bb8eb7537c7 b/fuzz/corpus/fuzz_write/ed5629527485ad7ebdd66a56b5965bb8eb7537c7 new file mode 100644 index 00000000..d663ca83 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ed5629527485ad7ebdd66a56b5965bb8eb7537c7 differ diff --git a/fuzz/corpus/fuzz_write/edabf11952c6f04aaf80ab61e001684911ad679d b/fuzz/corpus/fuzz_write/edabf11952c6f04aaf80ab61e001684911ad679d new file mode 100644 index 00000000..a100df84 Binary files /dev/null and b/fuzz/corpus/fuzz_write/edabf11952c6f04aaf80ab61e001684911ad679d differ diff --git a/fuzz/corpus/fuzz_write/edb68efd5ac64cf2c0c4eb328e6d442dff9ee3a6 b/fuzz/corpus/fuzz_write/edb68efd5ac64cf2c0c4eb328e6d442dff9ee3a6 new file mode 100644 index 00000000..bbd7898c --- /dev/null +++ b/fuzz/corpus/fuzz_write/edb68efd5ac64cf2c0c4eb328e6d442dff9ee3a6 @@ -0,0 +1 @@ + !W)) ! \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/edba8866b7aa9e639ac45fa2151dd09f12e75eec b/fuzz/corpus/fuzz_write/edba8866b7aa9e639ac45fa2151dd09f12e75eec new file mode 100644 index 00000000..00e24d19 Binary files /dev/null and b/fuzz/corpus/fuzz_write/edba8866b7aa9e639ac45fa2151dd09f12e75eec differ diff --git a/fuzz/corpus/fuzz_write/edd0f2c86f513fcdb385ea4656d2a43dc1cdf3a9 b/fuzz/corpus/fuzz_write/edd0f2c86f513fcdb385ea4656d2a43dc1cdf3a9 new file mode 100644 index 00000000..6e323c00 Binary files /dev/null and b/fuzz/corpus/fuzz_write/edd0f2c86f513fcdb385ea4656d2a43dc1cdf3a9 differ diff --git a/fuzz/corpus/fuzz_write/edd294d61e7089f87f2c308429d4b1e519ac527b b/fuzz/corpus/fuzz_write/edd294d61e7089f87f2c308429d4b1e519ac527b new file mode 100644 index 00000000..60033e05 Binary files /dev/null and b/fuzz/corpus/fuzz_write/edd294d61e7089f87f2c308429d4b1e519ac527b differ diff --git a/fuzz/corpus/fuzz_write/edd295b748c4db8d76d5ed3cfe57e64ab499a7f4 b/fuzz/corpus/fuzz_write/edd295b748c4db8d76d5ed3cfe57e64ab499a7f4 new file mode 100644 index 00000000..f069607d Binary files /dev/null and b/fuzz/corpus/fuzz_write/edd295b748c4db8d76d5ed3cfe57e64ab499a7f4 differ diff --git a/fuzz/corpus/fuzz_write/eddec38114e083aa2735f5d9763150248ee573c7 b/fuzz/corpus/fuzz_write/eddec38114e083aa2735f5d9763150248ee573c7 new file mode 100644 index 00000000..e9b58c61 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eddec38114e083aa2735f5d9763150248ee573c7 differ diff --git a/fuzz/corpus/fuzz_write/ede0b5dcfe960331ab722b71a2f7efda99a39ec0 b/fuzz/corpus/fuzz_write/ede0b5dcfe960331ab722b71a2f7efda99a39ec0 new file mode 100644 index 00000000..2138bb38 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ede0b5dcfe960331ab722b71a2f7efda99a39ec0 differ diff --git a/fuzz/corpus/fuzz_write/ee08ec5c2a18caaf66cad39da9bfa371ed33fd5d b/fuzz/corpus/fuzz_write/ee08ec5c2a18caaf66cad39da9bfa371ed33fd5d new file mode 100644 index 00000000..5f2d937a Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee08ec5c2a18caaf66cad39da9bfa371ed33fd5d differ diff --git a/fuzz/corpus/fuzz_write/ee189aa3bee95546a0466cd76c8ae6c317501c78 b/fuzz/corpus/fuzz_write/ee189aa3bee95546a0466cd76c8ae6c317501c78 new file mode 100644 index 00000000..2a73171a Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee189aa3bee95546a0466cd76c8ae6c317501c78 differ diff --git a/fuzz/corpus/fuzz_write/ee1929f8f8807bf03258af19ecbbb71292572af3 b/fuzz/corpus/fuzz_write/ee1929f8f8807bf03258af19ecbbb71292572af3 new file mode 100644 index 00000000..a0133c32 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee1929f8f8807bf03258af19ecbbb71292572af3 differ diff --git a/fuzz/corpus/fuzz_write/ee1d357dc22eeb285278029697c6b7eb1f6f0400 b/fuzz/corpus/fuzz_write/ee1d357dc22eeb285278029697c6b7eb1f6f0400 new file mode 100644 index 00000000..53eb276d Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee1d357dc22eeb285278029697c6b7eb1f6f0400 differ diff --git a/fuzz/corpus/fuzz_write/ee1e4f4ba5e9caa88895f4b161e56a2678e33f07 b/fuzz/corpus/fuzz_write/ee1e4f4ba5e9caa88895f4b161e56a2678e33f07 new file mode 100644 index 00000000..2ee07ad1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee1e4f4ba5e9caa88895f4b161e56a2678e33f07 differ diff --git a/fuzz/corpus/fuzz_write/ee5057319f196064ac5773d0aadb8d90ebb4768d b/fuzz/corpus/fuzz_write/ee5057319f196064ac5773d0aadb8d90ebb4768d new file mode 100644 index 00000000..bd7806db Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee5057319f196064ac5773d0aadb8d90ebb4768d differ diff --git a/fuzz/corpus/fuzz_write/ee50902271bea54d7c56d7abe53e33fcb0345145 b/fuzz/corpus/fuzz_write/ee50902271bea54d7c56d7abe53e33fcb0345145 new file mode 100644 index 00000000..14daf802 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee50902271bea54d7c56d7abe53e33fcb0345145 differ diff --git a/fuzz/corpus/fuzz_write/ee8a5ec745a8bce171b6045739d1b165e0114f21 b/fuzz/corpus/fuzz_write/ee8a5ec745a8bce171b6045739d1b165e0114f21 new file mode 100644 index 00000000..de16be6f Binary files /dev/null and b/fuzz/corpus/fuzz_write/ee8a5ec745a8bce171b6045739d1b165e0114f21 differ diff --git a/fuzz/corpus/fuzz_write/eea37b41749fa830f94dd644471d1c6406c1d07e b/fuzz/corpus/fuzz_write/eea37b41749fa830f94dd644471d1c6406c1d07e new file mode 100644 index 00000000..9476db4f Binary files /dev/null and b/fuzz/corpus/fuzz_write/eea37b41749fa830f94dd644471d1c6406c1d07e differ diff --git a/fuzz/corpus/fuzz_write/eeb83e3113b04e9e55dd184666cad4ef1bf2deb4 b/fuzz/corpus/fuzz_write/eeb83e3113b04e9e55dd184666cad4ef1bf2deb4 new file mode 100644 index 00000000..f107fd6f Binary files /dev/null and b/fuzz/corpus/fuzz_write/eeb83e3113b04e9e55dd184666cad4ef1bf2deb4 differ diff --git a/fuzz/corpus/fuzz_write/eebc574d273d8b251fbafc88e5c561b103e03342 b/fuzz/corpus/fuzz_write/eebc574d273d8b251fbafc88e5c561b103e03342 new file mode 100644 index 00000000..6e45121f Binary files /dev/null and b/fuzz/corpus/fuzz_write/eebc574d273d8b251fbafc88e5c561b103e03342 differ diff --git a/fuzz/corpus/fuzz_write/eed53128351e3e758e366de4497735531bcce6d7 b/fuzz/corpus/fuzz_write/eed53128351e3e758e366de4497735531bcce6d7 new file mode 100644 index 00000000..5e4e54e3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eed53128351e3e758e366de4497735531bcce6d7 differ diff --git a/fuzz/corpus/fuzz_write/eee8e7c3bcb568fbdaf4abb28c15c95742ab4985 b/fuzz/corpus/fuzz_write/eee8e7c3bcb568fbdaf4abb28c15c95742ab4985 new file mode 100644 index 00000000..08b46fe2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eee8e7c3bcb568fbdaf4abb28c15c95742ab4985 differ diff --git a/fuzz/corpus/fuzz_write/eefbd6d962dfe3313687ac59a20a31da92cecdd1 b/fuzz/corpus/fuzz_write/eefbd6d962dfe3313687ac59a20a31da92cecdd1 new file mode 100644 index 00000000..fea71865 Binary files /dev/null and b/fuzz/corpus/fuzz_write/eefbd6d962dfe3313687ac59a20a31da92cecdd1 differ diff --git a/fuzz/corpus/fuzz_write/ef00a9073e2e443822a93d631c703bbe69a011b6 b/fuzz/corpus/fuzz_write/ef00a9073e2e443822a93d631c703bbe69a011b6 new file mode 100644 index 00000000..5c627d67 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ef00a9073e2e443822a93d631c703bbe69a011b6 differ diff --git a/fuzz/corpus/fuzz_write/ef2599907f7a6e40e705b16a13cdc23181aee226 b/fuzz/corpus/fuzz_write/ef2599907f7a6e40e705b16a13cdc23181aee226 new file mode 100644 index 00000000..e4b61171 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ef2599907f7a6e40e705b16a13cdc23181aee226 differ diff --git a/fuzz/corpus/fuzz_write/ef8091c62f698a25168da9a399a9885f35910bba b/fuzz/corpus/fuzz_write/ef8091c62f698a25168da9a399a9885f35910bba new file mode 100644 index 00000000..92105aa3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ef8091c62f698a25168da9a399a9885f35910bba differ diff --git a/fuzz/corpus/fuzz_write/ef917a0110c797f6837ff5fcb408c0633889dace b/fuzz/corpus/fuzz_write/ef917a0110c797f6837ff5fcb408c0633889dace new file mode 100644 index 00000000..111d1931 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ef917a0110c797f6837ff5fcb408c0633889dace differ diff --git a/fuzz/corpus/fuzz_write/efb84b292c5115b5091688f386f0e6ba2396902f b/fuzz/corpus/fuzz_write/efb84b292c5115b5091688f386f0e6ba2396902f new file mode 100644 index 00000000..730a25b5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/efb84b292c5115b5091688f386f0e6ba2396902f differ diff --git a/fuzz/corpus/fuzz_write/efc127313377979faa447f37c96bd5f67c983ab1 b/fuzz/corpus/fuzz_write/efc127313377979faa447f37c96bd5f67c983ab1 new file mode 100644 index 00000000..cf869da2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/efc127313377979faa447f37c96bd5f67c983ab1 differ diff --git a/fuzz/corpus/fuzz_write/efd531799cf90566a5e659b6bf340c50b244fce4 b/fuzz/corpus/fuzz_write/efd531799cf90566a5e659b6bf340c50b244fce4 new file mode 100644 index 00000000..47743233 Binary files /dev/null and b/fuzz/corpus/fuzz_write/efd531799cf90566a5e659b6bf340c50b244fce4 differ diff --git a/fuzz/corpus/fuzz_write/efe6f4a43759f732d217abe971c78641a4734038 b/fuzz/corpus/fuzz_write/efe6f4a43759f732d217abe971c78641a4734038 new file mode 100644 index 00000000..ad509423 Binary files /dev/null and b/fuzz/corpus/fuzz_write/efe6f4a43759f732d217abe971c78641a4734038 differ diff --git a/fuzz/corpus/fuzz_write/f0161ce921890e49e6091bacca982f745505d8f2 b/fuzz/corpus/fuzz_write/f0161ce921890e49e6091bacca982f745505d8f2 new file mode 100644 index 00000000..c2c8d044 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f0161ce921890e49e6091bacca982f745505d8f2 @@ -0,0 +1 @@ +(3)(Z \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f01b29624730fc6d09184b041996efc7e83eaa4a b/fuzz/corpus/fuzz_write/f01b29624730fc6d09184b041996efc7e83eaa4a new file mode 100644 index 00000000..8bd3ada5 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f01b29624730fc6d09184b041996efc7e83eaa4a @@ -0,0 +1 @@ +3QJ,KP# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f03e05d24eb775138cf1370e299034060137dd33 b/fuzz/corpus/fuzz_write/f03e05d24eb775138cf1370e299034060137dd33 new file mode 100644 index 00000000..e35684f9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f03e05d24eb775138cf1370e299034060137dd33 differ diff --git a/fuzz/corpus/fuzz_write/f04fbf5ee35033916f8117270496d399e6903651 b/fuzz/corpus/fuzz_write/f04fbf5ee35033916f8117270496d399e6903651 new file mode 100644 index 00000000..67bd085a Binary files /dev/null and b/fuzz/corpus/fuzz_write/f04fbf5ee35033916f8117270496d399e6903651 differ diff --git a/fuzz/corpus/fuzz_write/f0552b4fabd8c97b49cb286efdf063a1825784ca b/fuzz/corpus/fuzz_write/f0552b4fabd8c97b49cb286efdf063a1825784ca new file mode 100644 index 00000000..4f917fc3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0552b4fabd8c97b49cb286efdf063a1825784ca differ diff --git a/fuzz/corpus/fuzz_write/f05e8332f63f0a669c3ea74895bf475d7bbcfe14 b/fuzz/corpus/fuzz_write/f05e8332f63f0a669c3ea74895bf475d7bbcfe14 new file mode 100644 index 00000000..97b88f73 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f05e8332f63f0a669c3ea74895bf475d7bbcfe14 differ diff --git a/fuzz/corpus/fuzz_write/f077a519367500b0c73f310fbcb0e99fad9398e9 b/fuzz/corpus/fuzz_write/f077a519367500b0c73f310fbcb0e99fad9398e9 new file mode 100644 index 00000000..49ccb968 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f077a519367500b0c73f310fbcb0e99fad9398e9 differ diff --git a/fuzz/corpus/fuzz_write/f079a6ff7d0f17d759ff52c0c37f7a9b018a3259 b/fuzz/corpus/fuzz_write/f079a6ff7d0f17d759ff52c0c37f7a9b018a3259 new file mode 100644 index 00000000..7c89cfc3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f079a6ff7d0f17d759ff52c0c37f7a9b018a3259 differ diff --git a/fuzz/corpus/fuzz_write/f0a472385a3108a6c9613d5d97fb04a3aaccc400 b/fuzz/corpus/fuzz_write/f0a472385a3108a6c9613d5d97fb04a3aaccc400 new file mode 100644 index 00000000..d36e2df9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0a472385a3108a6c9613d5d97fb04a3aaccc400 differ diff --git a/fuzz/corpus/fuzz_write/f0c47acea2a7b31d8b846241abc75d92a07e08fd b/fuzz/corpus/fuzz_write/f0c47acea2a7b31d8b846241abc75d92a07e08fd new file mode 100644 index 00000000..3e721302 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0c47acea2a7b31d8b846241abc75d92a07e08fd differ diff --git a/fuzz/corpus/fuzz_write/f0d269c56ef47e003c4cc372439045e55cc72ecd b/fuzz/corpus/fuzz_write/f0d269c56ef47e003c4cc372439045e55cc72ecd new file mode 100644 index 00000000..4f2e43af Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0d269c56ef47e003c4cc372439045e55cc72ecd differ diff --git a/fuzz/corpus/fuzz_write/f0e95a9c9a3792bafd25c2fdf2f5f39eb74cda5d b/fuzz/corpus/fuzz_write/f0e95a9c9a3792bafd25c2fdf2f5f39eb74cda5d new file mode 100644 index 00000000..331ad29b Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0e95a9c9a3792bafd25c2fdf2f5f39eb74cda5d differ diff --git a/fuzz/corpus/fuzz_write/f0f5359de8d8ca7b44ad69932bd0599652562dd8 b/fuzz/corpus/fuzz_write/f0f5359de8d8ca7b44ad69932bd0599652562dd8 new file mode 100644 index 00000000..9395266b Binary files /dev/null and b/fuzz/corpus/fuzz_write/f0f5359de8d8ca7b44ad69932bd0599652562dd8 differ diff --git a/fuzz/corpus/fuzz_write/f12ccfc4993e76ead6239d7bc9456641775ea2a0 b/fuzz/corpus/fuzz_write/f12ccfc4993e76ead6239d7bc9456641775ea2a0 new file mode 100644 index 00000000..9c7011cf Binary files /dev/null and b/fuzz/corpus/fuzz_write/f12ccfc4993e76ead6239d7bc9456641775ea2a0 differ diff --git a/fuzz/corpus/fuzz_write/f134ec923549160d639b12754cd223e5a7684aec b/fuzz/corpus/fuzz_write/f134ec923549160d639b12754cd223e5a7684aec new file mode 100644 index 00000000..4608dac0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f134ec923549160d639b12754cd223e5a7684aec differ diff --git a/fuzz/corpus/fuzz_write/f13ae588101909404dd7eb30d4116b2bf7f0fc8e b/fuzz/corpus/fuzz_write/f13ae588101909404dd7eb30d4116b2bf7f0fc8e new file mode 100644 index 00000000..66580256 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f13ae588101909404dd7eb30d4116b2bf7f0fc8e differ diff --git a/fuzz/corpus/fuzz_write/f146119056a9fa0bc03d8c76449a6c8f499f4da6 b/fuzz/corpus/fuzz_write/f146119056a9fa0bc03d8c76449a6c8f499f4da6 new file mode 100644 index 00000000..96e4d878 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f146119056a9fa0bc03d8c76449a6c8f499f4da6 differ diff --git a/fuzz/corpus/fuzz_write/f166d63ee9d97399f03943f03fb799138cd6b9aa b/fuzz/corpus/fuzz_write/f166d63ee9d97399f03943f03fb799138cd6b9aa new file mode 100644 index 00000000..8f53bebd Binary files /dev/null and b/fuzz/corpus/fuzz_write/f166d63ee9d97399f03943f03fb799138cd6b9aa differ diff --git a/fuzz/corpus/fuzz_write/f16ee0a41fba9f7b39ad25f32581cb49be61fbec b/fuzz/corpus/fuzz_write/f16ee0a41fba9f7b39ad25f32581cb49be61fbec new file mode 100644 index 00000000..e55578a3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f16ee0a41fba9f7b39ad25f32581cb49be61fbec differ diff --git a/fuzz/corpus/fuzz_write/f186beee7476196ef221f62c20f927352170ef09 b/fuzz/corpus/fuzz_write/f186beee7476196ef221f62c20f927352170ef09 new file mode 100644 index 00000000..f7ef8c97 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f186beee7476196ef221f62c20f927352170ef09 differ diff --git a/fuzz/corpus/fuzz_write/f1969e3c4e7cd3d9f60d906102230d0b83c736be b/fuzz/corpus/fuzz_write/f1969e3c4e7cd3d9f60d906102230d0b83c736be new file mode 100644 index 00000000..26c4c7be --- /dev/null +++ b/fuzz/corpus/fuzz_write/f1969e3c4e7cd3d9f60d906102230d0b83c736be @@ -0,0 +1 @@ +Z(SP'mPKP,D!z! \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f197fba0ecc0af11c9568d79525465162f3b55ac b/fuzz/corpus/fuzz_write/f197fba0ecc0af11c9568d79525465162f3b55ac new file mode 100644 index 00000000..83a34c5c Binary files /dev/null and b/fuzz/corpus/fuzz_write/f197fba0ecc0af11c9568d79525465162f3b55ac differ diff --git a/fuzz/corpus/fuzz_write/f1de017ab64a720c7515c3725069e7607b13a490 b/fuzz/corpus/fuzz_write/f1de017ab64a720c7515c3725069e7607b13a490 new file mode 100644 index 00000000..95575a0a Binary files /dev/null and b/fuzz/corpus/fuzz_write/f1de017ab64a720c7515c3725069e7607b13a490 differ diff --git a/fuzz/corpus/fuzz_write/f1e140db9a955ee22f8b56ca2650f3f78b0f9f22 b/fuzz/corpus/fuzz_write/f1e140db9a955ee22f8b56ca2650f3f78b0f9f22 new file mode 100644 index 00000000..2e16528d Binary files /dev/null and b/fuzz/corpus/fuzz_write/f1e140db9a955ee22f8b56ca2650f3f78b0f9f22 differ diff --git a/fuzz/corpus/fuzz_write/f1e5960ffaa88a4c34533e075c485f7a73a42ffa b/fuzz/corpus/fuzz_write/f1e5960ffaa88a4c34533e075c485f7a73a42ffa new file mode 100644 index 00000000..02b355fe Binary files /dev/null and b/fuzz/corpus/fuzz_write/f1e5960ffaa88a4c34533e075c485f7a73a42ffa differ diff --git a/fuzz/corpus/fuzz_write/f2140fc0949b9f792a5630bf8d38903f208ef44e b/fuzz/corpus/fuzz_write/f2140fc0949b9f792a5630bf8d38903f208ef44e new file mode 100644 index 00000000..f9ec20ae Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2140fc0949b9f792a5630bf8d38903f208ef44e differ diff --git a/fuzz/corpus/fuzz_write/f215d7550843f38ccf98cdebefe4dda95b89a975 b/fuzz/corpus/fuzz_write/f215d7550843f38ccf98cdebefe4dda95b89a975 new file mode 100644 index 00000000..2e3deaf6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f215d7550843f38ccf98cdebefe4dda95b89a975 differ diff --git a/fuzz/corpus/fuzz_write/f263f29c727a5d27b8d3817ff55766008f080577 b/fuzz/corpus/fuzz_write/f263f29c727a5d27b8d3817ff55766008f080577 new file mode 100644 index 00000000..5a2215b2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f263f29c727a5d27b8d3817ff55766008f080577 differ diff --git a/fuzz/corpus/fuzz_write/f27b2b5a4af5c4976e8d59d5b323b0c3566ed423 b/fuzz/corpus/fuzz_write/f27b2b5a4af5c4976e8d59d5b323b0c3566ed423 new file mode 100644 index 00000000..5f70e0b5 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f27b2b5a4af5c4976e8d59d5b323b0c3566ed423 @@ -0,0 +1 @@ +())(...])/` \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f29b1fe329a3a4a72fd06d4b949882f6f387d466 b/fuzz/corpus/fuzz_write/f29b1fe329a3a4a72fd06d4b949882f6f387d466 new file mode 100644 index 00000000..1b343403 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f29b1fe329a3a4a72fd06d4b949882f6f387d466 differ diff --git a/fuzz/corpus/fuzz_write/f2abcb2fa8913f2688c111ee9f37943cf9e9974c b/fuzz/corpus/fuzz_write/f2abcb2fa8913f2688c111ee9f37943cf9e9974c new file mode 100644 index 00000000..874693cd Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2abcb2fa8913f2688c111ee9f37943cf9e9974c differ diff --git a/fuzz/corpus/fuzz_write/f2ac7a865ebf7c3ac34043590a2709e4d852d499 b/fuzz/corpus/fuzz_write/f2ac7a865ebf7c3ac34043590a2709e4d852d499 new file mode 100644 index 00000000..071ce7ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2ac7a865ebf7c3ac34043590a2709e4d852d499 differ diff --git a/fuzz/corpus/fuzz_write/f2acc9cf5cd1cbdd8fde064d47dd9c3fee9f47e6 b/fuzz/corpus/fuzz_write/f2acc9cf5cd1cbdd8fde064d47dd9c3fee9f47e6 new file mode 100644 index 00000000..7b666b05 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2acc9cf5cd1cbdd8fde064d47dd9c3fee9f47e6 differ diff --git a/fuzz/corpus/fuzz_write/f2e5783bededa380b0a71c4ca1a41d77571356ae b/fuzz/corpus/fuzz_write/f2e5783bededa380b0a71c4ca1a41d77571356ae new file mode 100644 index 00000000..7d7a67da Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2e5783bededa380b0a71c4ca1a41d77571356ae differ diff --git a/fuzz/corpus/fuzz_write/f2e58a4a2dbfa3653096c902450336930197037d b/fuzz/corpus/fuzz_write/f2e58a4a2dbfa3653096c902450336930197037d new file mode 100644 index 00000000..c2021a2d Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2e58a4a2dbfa3653096c902450336930197037d differ diff --git a/fuzz/corpus/fuzz_write/f2ec3b56bd473ed7b66c53df6fb869d566b93e9f b/fuzz/corpus/fuzz_write/f2ec3b56bd473ed7b66c53df6fb869d566b93e9f new file mode 100644 index 00000000..1a57adcf Binary files /dev/null and b/fuzz/corpus/fuzz_write/f2ec3b56bd473ed7b66c53df6fb869d566b93e9f differ diff --git a/fuzz/corpus/fuzz_write/f30776caca69037ce7c3675ba582c29d223f6e5d b/fuzz/corpus/fuzz_write/f30776caca69037ce7c3675ba582c29d223f6e5d new file mode 100644 index 00000000..fd8d7802 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f30776caca69037ce7c3675ba582c29d223f6e5d differ diff --git a/fuzz/corpus/fuzz_write/f3125de2f523ee3ee2b6872f71ef4f9f5f698830 b/fuzz/corpus/fuzz_write/f3125de2f523ee3ee2b6872f71ef4f9f5f698830 new file mode 100644 index 00000000..2cd66f8f Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3125de2f523ee3ee2b6872f71ef4f9f5f698830 differ diff --git a/fuzz/corpus/fuzz_write/f3166759bf48c731b793e93c4018058c59b6bc5b b/fuzz/corpus/fuzz_write/f3166759bf48c731b793e93c4018058c59b6bc5b new file mode 100644 index 00000000..5a369572 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3166759bf48c731b793e93c4018058c59b6bc5b differ diff --git a/fuzz/corpus/fuzz_write/f33acae2aa0f4fb75cef3d75fd80d2858ba0349a b/fuzz/corpus/fuzz_write/f33acae2aa0f4fb75cef3d75fd80d2858ba0349a new file mode 100644 index 00000000..66bfee46 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f33acae2aa0f4fb75cef3d75fd80d2858ba0349a @@ -0,0 +1 @@ +姫%~~ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f35701de0f4f2fd9ae0c1a965d4cac9af8d43fec b/fuzz/corpus/fuzz_write/f35701de0f4f2fd9ae0c1a965d4cac9af8d43fec new file mode 100644 index 00000000..3d9090c5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f35701de0f4f2fd9ae0c1a965d4cac9af8d43fec differ diff --git a/fuzz/corpus/fuzz_write/f394a315b204f50d7a57129938d66bc8993cd8c6 b/fuzz/corpus/fuzz_write/f394a315b204f50d7a57129938d66bc8993cd8c6 new file mode 100644 index 00000000..5a80ecc7 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f394a315b204f50d7a57129938d66bc8993cd8c6 differ diff --git a/fuzz/corpus/fuzz_write/f3dd9c7796c404e9496cdcf4cd9d9213b6a89725 b/fuzz/corpus/fuzz_write/f3dd9c7796c404e9496cdcf4cd9d9213b6a89725 new file mode 100644 index 00000000..fd979adc Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3dd9c7796c404e9496cdcf4cd9d9213b6a89725 differ diff --git a/fuzz/corpus/fuzz_write/f3df9dc7fab352d2e5b4b9fc6a6c2d5346f903d8 b/fuzz/corpus/fuzz_write/f3df9dc7fab352d2e5b4b9fc6a6c2d5346f903d8 new file mode 100644 index 00000000..9770e67f Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3df9dc7fab352d2e5b4b9fc6a6c2d5346f903d8 differ diff --git a/fuzz/corpus/fuzz_write/f3e2299bd8ba205f588dff1d893e4a4dc5ffa014 b/fuzz/corpus/fuzz_write/f3e2299bd8ba205f588dff1d893e4a4dc5ffa014 new file mode 100644 index 00000000..04eb03d2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3e2299bd8ba205f588dff1d893e4a4dc5ffa014 differ diff --git a/fuzz/corpus/fuzz_write/f3ea785cd55bd34bfa9191259d8e7dfe7c0a8312 b/fuzz/corpus/fuzz_write/f3ea785cd55bd34bfa9191259d8e7dfe7c0a8312 new file mode 100644 index 00000000..5de49ae9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f3ea785cd55bd34bfa9191259d8e7dfe7c0a8312 differ diff --git a/fuzz/corpus/fuzz_write/f4065035fffff05ee52f1b54a91977158f7bebd7 b/fuzz/corpus/fuzz_write/f4065035fffff05ee52f1b54a91977158f7bebd7 new file mode 100644 index 00000000..f583e862 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f4065035fffff05ee52f1b54a91977158f7bebd7 differ diff --git a/fuzz/corpus/fuzz_write/f4234a635595b490687b988f0cc3a35258aa9a58 b/fuzz/corpus/fuzz_write/f4234a635595b490687b988f0cc3a35258aa9a58 new file mode 100644 index 00000000..f0ae45bf Binary files /dev/null and b/fuzz/corpus/fuzz_write/f4234a635595b490687b988f0cc3a35258aa9a58 differ diff --git a/fuzz/corpus/fuzz_write/f4288e308328ce6e9df430c5bee91f1820f2d953 b/fuzz/corpus/fuzz_write/f4288e308328ce6e9df430c5bee91f1820f2d953 new file mode 100644 index 00000000..3921f98e Binary files /dev/null and b/fuzz/corpus/fuzz_write/f4288e308328ce6e9df430c5bee91f1820f2d953 differ diff --git a/fuzz/corpus/fuzz_write/f48d8746d5bc1b876c5b36e461598144138d5814 b/fuzz/corpus/fuzz_write/f48d8746d5bc1b876c5b36e461598144138d5814 new file mode 100644 index 00000000..0be5ca15 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f48d8746d5bc1b876c5b36e461598144138d5814 differ diff --git a/fuzz/corpus/fuzz_write/f49d16a29d973f5c2f63a7f0d1cbd5f652508e19 b/fuzz/corpus/fuzz_write/f49d16a29d973f5c2f63a7f0d1cbd5f652508e19 new file mode 100644 index 00000000..0b8d3579 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f49d16a29d973f5c2f63a7f0d1cbd5f652508e19 differ diff --git a/fuzz/corpus/fuzz_write/f4ca8c30e4aed2d33505cf26adab186fd76fa2f4 b/fuzz/corpus/fuzz_write/f4ca8c30e4aed2d33505cf26adab186fd76fa2f4 new file mode 100644 index 00000000..c89e83a9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f4ca8c30e4aed2d33505cf26adab186fd76fa2f4 differ diff --git a/fuzz/corpus/fuzz_write/f52e4d2813b9519c880d09fd0b3c37de55750797 b/fuzz/corpus/fuzz_write/f52e4d2813b9519c880d09fd0b3c37de55750797 new file mode 100644 index 00000000..652ffb95 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f52e4d2813b9519c880d09fd0b3c37de55750797 differ diff --git a/fuzz/corpus/fuzz_write/f5395136fb16aa5bd4fa32383cf52f85f2b47276 b/fuzz/corpus/fuzz_write/f5395136fb16aa5bd4fa32383cf52f85f2b47276 new file mode 100644 index 00000000..73bb2b46 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5395136fb16aa5bd4fa32383cf52f85f2b47276 differ diff --git a/fuzz/corpus/fuzz_write/f55475ea302313f3b31e0e2f2fffa28da46c7ea2 b/fuzz/corpus/fuzz_write/f55475ea302313f3b31e0e2f2fffa28da46c7ea2 new file mode 100644 index 00000000..58762675 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f55475ea302313f3b31e0e2f2fffa28da46c7ea2 differ diff --git a/fuzz/corpus/fuzz_write/f55be2b74748cdd32a10f77877e3c76543e6d0ee b/fuzz/corpus/fuzz_write/f55be2b74748cdd32a10f77877e3c76543e6d0ee new file mode 100644 index 00000000..3d430fa2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f55be2b74748cdd32a10f77877e3c76543e6d0ee differ diff --git a/fuzz/corpus/fuzz_write/f59abc909423ec8fee6ab16ad9ae1f723c187475 b/fuzz/corpus/fuzz_write/f59abc909423ec8fee6ab16ad9ae1f723c187475 new file mode 100644 index 00000000..1fe6d2fb Binary files /dev/null and b/fuzz/corpus/fuzz_write/f59abc909423ec8fee6ab16ad9ae1f723c187475 differ diff --git a/fuzz/corpus/fuzz_write/f5aa2dd27814dcd9d1d5d2531c074a88f6287484 b/fuzz/corpus/fuzz_write/f5aa2dd27814dcd9d1d5d2531c074a88f6287484 new file mode 100644 index 00000000..bb328269 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5aa2dd27814dcd9d1d5d2531c074a88f6287484 differ diff --git a/fuzz/corpus/fuzz_write/f5ae7e2d0656338e99b11020db97f8326160ce7b b/fuzz/corpus/fuzz_write/f5ae7e2d0656338e99b11020db97f8326160ce7b new file mode 100644 index 00000000..d030b953 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5ae7e2d0656338e99b11020db97f8326160ce7b differ diff --git a/fuzz/corpus/fuzz_write/f5c7f4d9e4eb12232fc7e261bcc56dc9aeae5e1e b/fuzz/corpus/fuzz_write/f5c7f4d9e4eb12232fc7e261bcc56dc9aeae5e1e new file mode 100644 index 00000000..1d224550 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5c7f4d9e4eb12232fc7e261bcc56dc9aeae5e1e differ diff --git a/fuzz/corpus/fuzz_write/f5d8ece03eaa5713aadca945e727d1a69cc46f2d b/fuzz/corpus/fuzz_write/f5d8ece03eaa5713aadca945e727d1a69cc46f2d new file mode 100644 index 00000000..6433c8e3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5d8ece03eaa5713aadca945e727d1a69cc46f2d differ diff --git a/fuzz/corpus/fuzz_write/f5ded059f6146d71e9a847e24ff3c9c2032f3a5c b/fuzz/corpus/fuzz_write/f5ded059f6146d71e9a847e24ff3c9c2032f3a5c new file mode 100644 index 00000000..04a104a1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5ded059f6146d71e9a847e24ff3c9c2032f3a5c differ diff --git a/fuzz/corpus/fuzz_write/f5e3000d3d75c24ad00b90a8e58ea94ff1941152 b/fuzz/corpus/fuzz_write/f5e3000d3d75c24ad00b90a8e58ea94ff1941152 new file mode 100644 index 00000000..10064a94 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f5e3000d3d75c24ad00b90a8e58ea94ff1941152 differ diff --git a/fuzz/corpus/fuzz_write/f605524dfee2466309aba7c69d9f3b3ead17595f b/fuzz/corpus/fuzz_write/f605524dfee2466309aba7c69d9f3b3ead17595f new file mode 100644 index 00000000..70cd1d8f Binary files /dev/null and b/fuzz/corpus/fuzz_write/f605524dfee2466309aba7c69d9f3b3ead17595f differ diff --git a/fuzz/corpus/fuzz_write/f6214fa554a14a07a6d837b6c63161cd9544c630 b/fuzz/corpus/fuzz_write/f6214fa554a14a07a6d837b6c63161cd9544c630 new file mode 100644 index 00000000..88369c04 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f6214fa554a14a07a6d837b6c63161cd9544c630 differ diff --git a/fuzz/corpus/fuzz_write/f656b78e8051c06fade34806c7e2ad395ac4c4a1 b/fuzz/corpus/fuzz_write/f656b78e8051c06fade34806c7e2ad395ac4c4a1 new file mode 100644 index 00000000..f2ca730b Binary files /dev/null and b/fuzz/corpus/fuzz_write/f656b78e8051c06fade34806c7e2ad395ac4c4a1 differ diff --git a/fuzz/corpus/fuzz_write/f6570bdf27436889c39dd87c44b87d97e0fbe63f b/fuzz/corpus/fuzz_write/f6570bdf27436889c39dd87c44b87d97e0fbe63f new file mode 100644 index 00000000..85154658 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f6570bdf27436889c39dd87c44b87d97e0fbe63f differ diff --git a/fuzz/corpus/fuzz_write/f685548ca8db0f80fd1609e059ca46cb89617007 b/fuzz/corpus/fuzz_write/f685548ca8db0f80fd1609e059ca46cb89617007 new file mode 100644 index 00000000..d03de7d0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f685548ca8db0f80fd1609e059ca46cb89617007 differ diff --git a/fuzz/corpus/fuzz_write/f691a3d072f05e740369ad8d15d8e7bc588c9df7 b/fuzz/corpus/fuzz_write/f691a3d072f05e740369ad8d15d8e7bc588c9df7 new file mode 100644 index 00000000..49ff51a2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f691a3d072f05e740369ad8d15d8e7bc588c9df7 differ diff --git a/fuzz/corpus/fuzz_write/f69594d675f69dada739ab2b0a618dd02a4d4dba b/fuzz/corpus/fuzz_write/f69594d675f69dada739ab2b0a618dd02a4d4dba new file mode 100644 index 00000000..48f05e2e --- /dev/null +++ b/fuzz/corpus/fuzz_write/f69594d675f69dada739ab2b0a618dd02a4d4dba @@ -0,0 +1,5 @@ + +K$3_[P_3K_[P_3P_3[ +PK +PK[ +PK[_ \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f705e137b6f9b5a76141b781cf515cd3126a023f b/fuzz/corpus/fuzz_write/f705e137b6f9b5a76141b781cf515cd3126a023f new file mode 100644 index 00000000..8236a4f1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f705e137b6f9b5a76141b781cf515cd3126a023f differ diff --git a/fuzz/corpus/fuzz_write/f732a0020a1a49ea1494475f018a5238a120a601 b/fuzz/corpus/fuzz_write/f732a0020a1a49ea1494475f018a5238a120a601 new file mode 100644 index 00000000..b02fd5d3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f732a0020a1a49ea1494475f018a5238a120a601 differ diff --git a/fuzz/corpus/fuzz_write/f781d1b3ede065856edb2e55cf03feac96d7cebc b/fuzz/corpus/fuzz_write/f781d1b3ede065856edb2e55cf03feac96d7cebc new file mode 100644 index 00000000..a3516c9d Binary files /dev/null and b/fuzz/corpus/fuzz_write/f781d1b3ede065856edb2e55cf03feac96d7cebc differ diff --git a/fuzz/corpus/fuzz_write/f78c1f2eaaa5d9fa0e4befef3f428c057becea7e b/fuzz/corpus/fuzz_write/f78c1f2eaaa5d9fa0e4befef3f428c057becea7e new file mode 100644 index 00000000..6e8e8cf9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f78c1f2eaaa5d9fa0e4befef3f428c057becea7e differ diff --git a/fuzz/corpus/fuzz_write/f79e173f19be8daf7e4cb39d6fdcef7ac8508553 b/fuzz/corpus/fuzz_write/f79e173f19be8daf7e4cb39d6fdcef7ac8508553 new file mode 100644 index 00000000..6d875c98 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f79e173f19be8daf7e4cb39d6fdcef7ac8508553 differ diff --git a/fuzz/corpus/fuzz_write/f7b1937f62b49781a0b25042006f410521890f44 b/fuzz/corpus/fuzz_write/f7b1937f62b49781a0b25042006f410521890f44 new file mode 100644 index 00000000..9d5e1f40 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f7b1937f62b49781a0b25042006f410521890f44 differ diff --git a/fuzz/corpus/fuzz_write/f7f1e7f37bf01968aa765aeffcddaf4dd0e87870 b/fuzz/corpus/fuzz_write/f7f1e7f37bf01968aa765aeffcddaf4dd0e87870 new file mode 100644 index 00000000..d5070f9e Binary files /dev/null and b/fuzz/corpus/fuzz_write/f7f1e7f37bf01968aa765aeffcddaf4dd0e87870 differ diff --git a/fuzz/corpus/fuzz_write/f81be6d6f203035fcd01e60db7ad11ebd412a70a b/fuzz/corpus/fuzz_write/f81be6d6f203035fcd01e60db7ad11ebd412a70a new file mode 100644 index 00000000..91b3d203 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f81be6d6f203035fcd01e60db7ad11ebd412a70a @@ -0,0 +1,2 @@ + +O;,..7 \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f83e1a696c8b9fd77e0053af13e2dc74f83b2d3f b/fuzz/corpus/fuzz_write/f83e1a696c8b9fd77e0053af13e2dc74f83b2d3f new file mode 100644 index 00000000..3bf00202 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f83e1a696c8b9fd77e0053af13e2dc74f83b2d3f differ diff --git a/fuzz/corpus/fuzz_write/f849a43c10bd37317b41a43380d54c01686f2e51 b/fuzz/corpus/fuzz_write/f849a43c10bd37317b41a43380d54c01686f2e51 new file mode 100644 index 00000000..84281763 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f849a43c10bd37317b41a43380d54c01686f2e51 differ diff --git a/fuzz/corpus/fuzz_write/f8550e56f51f0741cc92e3c29e6b601c33aef8e6 b/fuzz/corpus/fuzz_write/f8550e56f51f0741cc92e3c29e6b601c33aef8e6 new file mode 100644 index 00000000..ca0c4435 --- /dev/null +++ b/fuzz/corpus/fuzz_write/f8550e56f51f0741cc92e3c29e6b601c33aef8e6 @@ -0,0 +1 @@ +)P!u=u=K $.z#! \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f859377a9f9625be82a8cdaf5c53ddfbd529abcb b/fuzz/corpus/fuzz_write/f859377a9f9625be82a8cdaf5c53ddfbd529abcb new file mode 100644 index 00000000..123f2296 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f859377a9f9625be82a8cdaf5c53ddfbd529abcb differ diff --git a/fuzz/corpus/fuzz_write/f87dd9a3ccaae69d4f5acedb569f1f470ea542eb b/fuzz/corpus/fuzz_write/f87dd9a3ccaae69d4f5acedb569f1f470ea542eb new file mode 100644 index 00000000..c02edfff --- /dev/null +++ b/fuzz/corpus/fuzz_write/f87dd9a3ccaae69d4f5acedb569f1f470ea542eb @@ -0,0 +1 @@ +PKX//`ZPZ`P; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/f8a06f273cb93baca253e721b68009d34646d08d b/fuzz/corpus/fuzz_write/f8a06f273cb93baca253e721b68009d34646d08d new file mode 100644 index 00000000..1ca7408a Binary files /dev/null and b/fuzz/corpus/fuzz_write/f8a06f273cb93baca253e721b68009d34646d08d differ diff --git a/fuzz/corpus/fuzz_write/f8d3f6e36296dc2dd2adc50a3be5e007b7323f7d b/fuzz/corpus/fuzz_write/f8d3f6e36296dc2dd2adc50a3be5e007b7323f7d new file mode 100644 index 00000000..3b61a5bc Binary files /dev/null and b/fuzz/corpus/fuzz_write/f8d3f6e36296dc2dd2adc50a3be5e007b7323f7d differ diff --git a/fuzz/corpus/fuzz_write/f8e22e7dc111b4f92d6aeb370d79a7e0cd402e71 b/fuzz/corpus/fuzz_write/f8e22e7dc111b4f92d6aeb370d79a7e0cd402e71 new file mode 100644 index 00000000..44fe01d9 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f8e22e7dc111b4f92d6aeb370d79a7e0cd402e71 differ diff --git a/fuzz/corpus/fuzz_write/f95456a3a439c16a7de17f64b7dd5f93ea5f78f3 b/fuzz/corpus/fuzz_write/f95456a3a439c16a7de17f64b7dd5f93ea5f78f3 new file mode 100644 index 00000000..c2deaeb3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f95456a3a439c16a7de17f64b7dd5f93ea5f78f3 differ diff --git a/fuzz/corpus/fuzz_write/f96aafb6b64ea42a059724c5518aa1aa5246738a b/fuzz/corpus/fuzz_write/f96aafb6b64ea42a059724c5518aa1aa5246738a new file mode 100644 index 00000000..545137f5 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f96aafb6b64ea42a059724c5518aa1aa5246738a differ diff --git a/fuzz/corpus/fuzz_write/f9bad9afb7316b384c603441f75fdffa3cae561c b/fuzz/corpus/fuzz_write/f9bad9afb7316b384c603441f75fdffa3cae561c new file mode 100644 index 00000000..e9812ff0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f9bad9afb7316b384c603441f75fdffa3cae561c differ diff --git a/fuzz/corpus/fuzz_write/f9db939362c8bb121f21e85f11beda78425aea0a b/fuzz/corpus/fuzz_write/f9db939362c8bb121f21e85f11beda78425aea0a new file mode 100644 index 00000000..1ad9a141 Binary files /dev/null and b/fuzz/corpus/fuzz_write/f9db939362c8bb121f21e85f11beda78425aea0a differ diff --git a/fuzz/corpus/fuzz_write/fa41cc48fb2521ae4b7be9e0bc4e0eb27f7efb90 b/fuzz/corpus/fuzz_write/fa41cc48fb2521ae4b7be9e0bc4e0eb27f7efb90 new file mode 100644 index 00000000..80540ccf Binary files /dev/null and b/fuzz/corpus/fuzz_write/fa41cc48fb2521ae4b7be9e0bc4e0eb27f7efb90 differ diff --git a/fuzz/corpus/fuzz_write/fa4b6075f5fc51ca0f2574c5c94e45af376a845b b/fuzz/corpus/fuzz_write/fa4b6075f5fc51ca0f2574c5c94e45af376a845b new file mode 100644 index 00000000..caf68027 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fa4b6075f5fc51ca0f2574c5c94e45af376a845b differ diff --git a/fuzz/corpus/fuzz_write/fa5cbde8ae6dff45c9a29e0344a3bac5c0633945 b/fuzz/corpus/fuzz_write/fa5cbde8ae6dff45c9a29e0344a3bac5c0633945 new file mode 100644 index 00000000..b97f888f Binary files /dev/null and b/fuzz/corpus/fuzz_write/fa5cbde8ae6dff45c9a29e0344a3bac5c0633945 differ diff --git a/fuzz/corpus/fuzz_write/fa640e1d1626e1ef8d4dec8bef47df2fe861e822 b/fuzz/corpus/fuzz_write/fa640e1d1626e1ef8d4dec8bef47df2fe861e822 new file mode 100644 index 00000000..3f8b8b9c Binary files /dev/null and b/fuzz/corpus/fuzz_write/fa640e1d1626e1ef8d4dec8bef47df2fe861e822 differ diff --git a/fuzz/corpus/fuzz_write/fa74db512bc2d25f8b7b3ffbe4492736a90f3697 b/fuzz/corpus/fuzz_write/fa74db512bc2d25f8b7b3ffbe4492736a90f3697 new file mode 100644 index 00000000..fa70feee Binary files /dev/null and b/fuzz/corpus/fuzz_write/fa74db512bc2d25f8b7b3ffbe4492736a90f3697 differ diff --git a/fuzz/corpus/fuzz_write/fadfb4bd8af5b13a1dbe20b40306c207095fe1ba b/fuzz/corpus/fuzz_write/fadfb4bd8af5b13a1dbe20b40306c207095fe1ba new file mode 100644 index 00000000..e829f9db Binary files /dev/null and b/fuzz/corpus/fuzz_write/fadfb4bd8af5b13a1dbe20b40306c207095fe1ba differ diff --git a/fuzz/corpus/fuzz_write/faf69b4de26a0843e6133bcf25df8aa318714995 b/fuzz/corpus/fuzz_write/faf69b4de26a0843e6133bcf25df8aa318714995 new file mode 100644 index 00000000..c31c9ed4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/faf69b4de26a0843e6133bcf25df8aa318714995 differ diff --git a/fuzz/corpus/fuzz_write/fafd40e3c80e54f82f7271a6166ea5818dd144e1 b/fuzz/corpus/fuzz_write/fafd40e3c80e54f82f7271a6166ea5818dd144e1 new file mode 100644 index 00000000..ef1f18df Binary files /dev/null and b/fuzz/corpus/fuzz_write/fafd40e3c80e54f82f7271a6166ea5818dd144e1 differ diff --git a/fuzz/corpus/fuzz_write/faff544b2fc2dd01167d83fdc5cd0b950a2fc63a b/fuzz/corpus/fuzz_write/faff544b2fc2dd01167d83fdc5cd0b950a2fc63a new file mode 100644 index 00000000..bf8b3a49 Binary files /dev/null and b/fuzz/corpus/fuzz_write/faff544b2fc2dd01167d83fdc5cd0b950a2fc63a differ diff --git a/fuzz/corpus/fuzz_write/fb056f78083ac13a9d17c9d5a7c2f0dd7568b6fb b/fuzz/corpus/fuzz_write/fb056f78083ac13a9d17c9d5a7c2f0dd7568b6fb new file mode 100644 index 00000000..2d20fbe4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fb056f78083ac13a9d17c9d5a7c2f0dd7568b6fb differ diff --git a/fuzz/corpus/fuzz_write/fb09f96339e09607e626c8e55136f1f1c750cbe2 b/fuzz/corpus/fuzz_write/fb09f96339e09607e626c8e55136f1f1c750cbe2 new file mode 100644 index 00000000..8c9fb710 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fb09f96339e09607e626c8e55136f1f1c750cbe2 differ diff --git a/fuzz/corpus/fuzz_write/fb3b7162e871113a0322f6506aaf083e6f40241b b/fuzz/corpus/fuzz_write/fb3b7162e871113a0322f6506aaf083e6f40241b new file mode 100644 index 00000000..182955f1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fb3b7162e871113a0322f6506aaf083e6f40241b differ diff --git a/fuzz/corpus/fuzz_write/fb8281a719e849f379586988c427540361cbd582 b/fuzz/corpus/fuzz_write/fb8281a719e849f379586988c427540361cbd582 new file mode 100644 index 00000000..2b22ad8c Binary files /dev/null and b/fuzz/corpus/fuzz_write/fb8281a719e849f379586988c427540361cbd582 differ diff --git a/fuzz/corpus/fuzz_write/fb980a21668aac0cdf1f779800dcf370806089d7 b/fuzz/corpus/fuzz_write/fb980a21668aac0cdf1f779800dcf370806089d7 new file mode 100644 index 00000000..5eb81381 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fb980a21668aac0cdf1f779800dcf370806089d7 differ diff --git a/fuzz/corpus/fuzz_write/fbb3085981ebc0d194be96068d516e5e2321ba65 b/fuzz/corpus/fuzz_write/fbb3085981ebc0d194be96068d516e5e2321ba65 new file mode 100644 index 00000000..40e5ce10 --- /dev/null +++ b/fuzz/corpus/fuzz_write/fbb3085981ebc0d194be96068d516e5e2321ba65 @@ -0,0 +1 @@ +; \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fbb6b6f6aae7ba64b0eb40d65fe65512f673d2b6 b/fuzz/corpus/fuzz_write/fbb6b6f6aae7ba64b0eb40d65fe65512f673d2b6 new file mode 100644 index 00000000..7792b2eb --- /dev/null +++ b/fuzz/corpus/fuzz_write/fbb6b6f6aae7ba64b0eb40d65fe65512f673d2b6 @@ -0,0 +1 @@ +2-= \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fbc517e477328179eaa891fb5ca410c4a95a797c b/fuzz/corpus/fuzz_write/fbc517e477328179eaa891fb5ca410c4a95a797c new file mode 100644 index 00000000..5a97525a Binary files /dev/null and b/fuzz/corpus/fuzz_write/fbc517e477328179eaa891fb5ca410c4a95a797c differ diff --git a/fuzz/corpus/fuzz_write/fbeb8e4836441c0eaa4927e6b6038c79429e4b80 b/fuzz/corpus/fuzz_write/fbeb8e4836441c0eaa4927e6b6038c79429e4b80 new file mode 100644 index 00000000..b384f477 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fbeb8e4836441c0eaa4927e6b6038c79429e4b80 differ diff --git a/fuzz/corpus/fuzz_write/fbf5cab304acb0fea69dafe91afb3c849741c319 b/fuzz/corpus/fuzz_write/fbf5cab304acb0fea69dafe91afb3c849741c319 new file mode 100644 index 00000000..bb99b608 --- /dev/null +++ b/fuzz/corpus/fuzz_write/fbf5cab304acb0fea69dafe91afb3c849741c319 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fc1da1e66d7185872aec19594b9445001a190513 b/fuzz/corpus/fuzz_write/fc1da1e66d7185872aec19594b9445001a190513 new file mode 100644 index 00000000..b0f737f4 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc1da1e66d7185872aec19594b9445001a190513 differ diff --git a/fuzz/corpus/fuzz_write/fc284b899e1813a94fceb8570430d48f507f9303 b/fuzz/corpus/fuzz_write/fc284b899e1813a94fceb8570430d48f507f9303 new file mode 100644 index 00000000..43e91267 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc284b899e1813a94fceb8570430d48f507f9303 differ diff --git a/fuzz/corpus/fuzz_write/fc2e23fdfe79be8b1860641bea1df3575d604e5a b/fuzz/corpus/fuzz_write/fc2e23fdfe79be8b1860641bea1df3575d604e5a new file mode 100644 index 00000000..9bfb8087 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc2e23fdfe79be8b1860641bea1df3575d604e5a differ diff --git a/fuzz/corpus/fuzz_write/fc42e9ccac14c0a227d2201b50e7c697023a6965 b/fuzz/corpus/fuzz_write/fc42e9ccac14c0a227d2201b50e7c697023a6965 new file mode 100644 index 00000000..ff5da738 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc42e9ccac14c0a227d2201b50e7c697023a6965 differ diff --git a/fuzz/corpus/fuzz_write/fc4bb790d5f7e9330ca1b19f7be3062364985e86 b/fuzz/corpus/fuzz_write/fc4bb790d5f7e9330ca1b19f7be3062364985e86 new file mode 100644 index 00000000..c9ef8c71 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc4bb790d5f7e9330ca1b19f7be3062364985e86 differ diff --git a/fuzz/corpus/fuzz_write/fc546719d9c72d14325422f54e227d358b19d038 b/fuzz/corpus/fuzz_write/fc546719d9c72d14325422f54e227d358b19d038 new file mode 100644 index 00000000..fb4fa7b1 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc546719d9c72d14325422f54e227d358b19d038 differ diff --git a/fuzz/corpus/fuzz_write/fc5d23504024297ecc53514eb1362d5320594087 b/fuzz/corpus/fuzz_write/fc5d23504024297ecc53514eb1362d5320594087 new file mode 100644 index 00000000..a33e5e64 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc5d23504024297ecc53514eb1362d5320594087 differ diff --git a/fuzz/corpus/fuzz_write/fc645488a150422bcb61afc7f32e01385f185ce9 b/fuzz/corpus/fuzz_write/fc645488a150422bcb61afc7f32e01385f185ce9 new file mode 100644 index 00000000..9c57d6be Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc645488a150422bcb61afc7f32e01385f185ce9 differ diff --git a/fuzz/corpus/fuzz_write/fc731a06f7250b3c5ee40772e7e54bc74ac360db b/fuzz/corpus/fuzz_write/fc731a06f7250b3c5ee40772e7e54bc74ac360db new file mode 100644 index 00000000..94d91d8a Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc731a06f7250b3c5ee40772e7e54bc74ac360db differ diff --git a/fuzz/corpus/fuzz_write/fc789ca5aa88930b5a925a3d53e18c0f55cd4da7 b/fuzz/corpus/fuzz_write/fc789ca5aa88930b5a925a3d53e18c0f55cd4da7 new file mode 100644 index 00000000..b35da56c Binary files /dev/null and b/fuzz/corpus/fuzz_write/fc789ca5aa88930b5a925a3d53e18c0f55cd4da7 differ diff --git a/fuzz/corpus/fuzz_write/fcadbf5d49f4a359f558b86d295247d22174febf b/fuzz/corpus/fuzz_write/fcadbf5d49f4a359f558b86d295247d22174febf new file mode 100644 index 00000000..0be72545 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fcadbf5d49f4a359f558b86d295247d22174febf differ diff --git a/fuzz/corpus/fuzz_write/fcdf08dbe1d046913e9a39a12e663401f48732a7 b/fuzz/corpus/fuzz_write/fcdf08dbe1d046913e9a39a12e663401f48732a7 new file mode 100644 index 00000000..175ddd79 --- /dev/null +++ b/fuzz/corpus/fuzz_write/fcdf08dbe1d046913e9a39a12e663401f48732a7 @@ -0,0 +1 @@ +PK#cx!// 0KP KP;K \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fce4eb077569cd6ae7ee10732a53e0fa5ba49131 b/fuzz/corpus/fuzz_write/fce4eb077569cd6ae7ee10732a53e0fa5ba49131 new file mode 100644 index 00000000..34cc2ab7 --- /dev/null +++ b/fuzz/corpus/fuzz_write/fce4eb077569cd6ae7ee10732a53e0fa5ba49131 @@ -0,0 +1 @@ +*/#PKPK \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fce9cde4b6aab24b656d06f368b916a57e883d93 b/fuzz/corpus/fuzz_write/fce9cde4b6aab24b656d06f368b916a57e883d93 new file mode 100644 index 00000000..2bdaa5aa --- /dev/null +++ b/fuzz/corpus/fuzz_write/fce9cde4b6aab24b656d06f368b916a57e883d93 @@ -0,0 +1 @@ +^^b^ѥ. \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fcea4ad7a38ad7450482597282138a622d717a46 b/fuzz/corpus/fuzz_write/fcea4ad7a38ad7450482597282138a622d717a46 new file mode 100644 index 00000000..ffa03d18 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fcea4ad7a38ad7450482597282138a622d717a46 differ diff --git a/fuzz/corpus/fuzz_write/fd07adc24dec3fa18a76c9cb6b46eecf156104e7 b/fuzz/corpus/fuzz_write/fd07adc24dec3fa18a76c9cb6b46eecf156104e7 new file mode 100644 index 00000000..f6a3b6d2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fd07adc24dec3fa18a76c9cb6b46eecf156104e7 differ diff --git a/fuzz/corpus/fuzz_write/fd148a679480283bf2d2b4e75c5a692d9c1b1740 b/fuzz/corpus/fuzz_write/fd148a679480283bf2d2b4e75c5a692d9c1b1740 new file mode 100644 index 00000000..4c97cacd Binary files /dev/null and b/fuzz/corpus/fuzz_write/fd148a679480283bf2d2b4e75c5a692d9c1b1740 differ diff --git a/fuzz/corpus/fuzz_write/fd311e6139c93a07cf4833aa709f4253a95dd4f2 b/fuzz/corpus/fuzz_write/fd311e6139c93a07cf4833aa709f4253a95dd4f2 new file mode 100644 index 00000000..cdad266a --- /dev/null +++ b/fuzz/corpus/fuzz_write/fd311e6139c93a07cf4833aa709f4253a95dd4f2 @@ -0,0 +1 @@ +PP`//- \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fd4760c75eb649925b4fb74a60882f4429a85aee b/fuzz/corpus/fuzz_write/fd4760c75eb649925b4fb74a60882f4429a85aee new file mode 100644 index 00000000..063754e4 --- /dev/null +++ b/fuzz/corpus/fuzz_write/fd4760c75eb649925b4fb74a60882f4429a85aee @@ -0,0 +1 @@ +PK#K[PPP;K# \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/fd5ef500c6eb7952a700bc5d08a3004ddd098085 b/fuzz/corpus/fuzz_write/fd5ef500c6eb7952a700bc5d08a3004ddd098085 new file mode 100644 index 00000000..31ca3d68 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fd5ef500c6eb7952a700bc5d08a3004ddd098085 differ diff --git a/fuzz/corpus/fuzz_write/fd7efe778337301812a1371e3d525f6d48331ec1 b/fuzz/corpus/fuzz_write/fd7efe778337301812a1371e3d525f6d48331ec1 new file mode 100644 index 00000000..78dcd539 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fd7efe778337301812a1371e3d525f6d48331ec1 differ diff --git a/fuzz/corpus/fuzz_write/fdc4a4ca3dd6630cc8a1fc9824ae79c33c338447 b/fuzz/corpus/fuzz_write/fdc4a4ca3dd6630cc8a1fc9824ae79c33c338447 new file mode 100644 index 00000000..e9dbb423 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fdc4a4ca3dd6630cc8a1fc9824ae79c33c338447 differ diff --git a/fuzz/corpus/fuzz_write/fdce8daba9ac1c57fe41cabe8e7215832cb72e68 b/fuzz/corpus/fuzz_write/fdce8daba9ac1c57fe41cabe8e7215832cb72e68 new file mode 100644 index 00000000..a9081718 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fdce8daba9ac1c57fe41cabe8e7215832cb72e68 differ diff --git a/fuzz/corpus/fuzz_write/fe386c2a78f639d629968d5d9d3bc79d7de852b0 b/fuzz/corpus/fuzz_write/fe386c2a78f639d629968d5d9d3bc79d7de852b0 new file mode 100644 index 00000000..57b9fda0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe386c2a78f639d629968d5d9d3bc79d7de852b0 differ diff --git a/fuzz/corpus/fuzz_write/fe39143da1119f4b6665660cea3cbd60ae22b978 b/fuzz/corpus/fuzz_write/fe39143da1119f4b6665660cea3cbd60ae22b978 new file mode 100644 index 00000000..f607b40c Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe39143da1119f4b6665660cea3cbd60ae22b978 differ diff --git a/fuzz/corpus/fuzz_write/fe40adf7db8cbf7167ba99efa71fffd6a043671a b/fuzz/corpus/fuzz_write/fe40adf7db8cbf7167ba99efa71fffd6a043671a new file mode 100644 index 00000000..2021bd15 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe40adf7db8cbf7167ba99efa71fffd6a043671a differ diff --git a/fuzz/corpus/fuzz_write/fe414992bbed7a8dd10eccaa6c075c6487dcba01 b/fuzz/corpus/fuzz_write/fe414992bbed7a8dd10eccaa6c075c6487dcba01 new file mode 100644 index 00000000..a5f0b6a3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe414992bbed7a8dd10eccaa6c075c6487dcba01 differ diff --git a/fuzz/corpus/fuzz_write/fe5817267f6266cdab6bce38f3207d3bbcb0acc0 b/fuzz/corpus/fuzz_write/fe5817267f6266cdab6bce38f3207d3bbcb0acc0 new file mode 100644 index 00000000..cfd39164 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe5817267f6266cdab6bce38f3207d3bbcb0acc0 differ diff --git a/fuzz/corpus/fuzz_write/fe5fcfaf1d1ab8d03ecf178ca3a6e1b85ca9caf8 b/fuzz/corpus/fuzz_write/fe5fcfaf1d1ab8d03ecf178ca3a6e1b85ca9caf8 new file mode 100644 index 00000000..82bc0604 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe5fcfaf1d1ab8d03ecf178ca3a6e1b85ca9caf8 differ diff --git a/fuzz/corpus/fuzz_write/fe640d8fd9e5a23ba535aa47b8cfad78a206abd1 b/fuzz/corpus/fuzz_write/fe640d8fd9e5a23ba535aa47b8cfad78a206abd1 new file mode 100644 index 00000000..d16ebe83 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe640d8fd9e5a23ba535aa47b8cfad78a206abd1 differ diff --git a/fuzz/corpus/fuzz_write/fe953ecbb90b0b2bfcba6ab106b0cb74fa517fc7 b/fuzz/corpus/fuzz_write/fe953ecbb90b0b2bfcba6ab106b0cb74fa517fc7 new file mode 100644 index 00000000..12d8a5a0 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe953ecbb90b0b2bfcba6ab106b0cb74fa517fc7 differ diff --git a/fuzz/corpus/fuzz_write/fe95ee8fb8371320b3ec59b7b6f83f27c29e2539 b/fuzz/corpus/fuzz_write/fe95ee8fb8371320b3ec59b7b6f83f27c29e2539 new file mode 100644 index 00000000..1f333b78 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe95ee8fb8371320b3ec59b7b6f83f27c29e2539 differ diff --git a/fuzz/corpus/fuzz_write/fe9ee84bfa1614abfc43b6228b91703a8e91fc6b b/fuzz/corpus/fuzz_write/fe9ee84bfa1614abfc43b6228b91703a8e91fc6b new file mode 100644 index 00000000..78ea9280 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fe9ee84bfa1614abfc43b6228b91703a8e91fc6b differ diff --git a/fuzz/corpus/fuzz_write/fec2bbf1f73b6283843d2207620e68c8a3ebecde b/fuzz/corpus/fuzz_write/fec2bbf1f73b6283843d2207620e68c8a3ebecde new file mode 100644 index 00000000..6660116e Binary files /dev/null and b/fuzz/corpus/fuzz_write/fec2bbf1f73b6283843d2207620e68c8a3ebecde differ diff --git a/fuzz/corpus/fuzz_write/fed53b8f10cc8b5183f34c9329720806a4066b0e b/fuzz/corpus/fuzz_write/fed53b8f10cc8b5183f34c9329720806a4066b0e new file mode 100644 index 00000000..5f9f16b6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fed53b8f10cc8b5183f34c9329720806a4066b0e differ diff --git a/fuzz/corpus/fuzz_write/fee752dc70ca3f6a824f636578b3fe44cba4f975 b/fuzz/corpus/fuzz_write/fee752dc70ca3f6a824f636578b3fe44cba4f975 new file mode 100644 index 00000000..c37043d3 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fee752dc70ca3f6a824f636578b3fe44cba4f975 differ diff --git a/fuzz/corpus/fuzz_write/fee96eb40a9da5186cf59899c0e216ab0c49ffc3 b/fuzz/corpus/fuzz_write/fee96eb40a9da5186cf59899c0e216ab0c49ffc3 new file mode 100644 index 00000000..9f9f0dc2 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fee96eb40a9da5186cf59899c0e216ab0c49ffc3 differ diff --git a/fuzz/corpus/fuzz_write/ff081a77c936099f89386643e9c9fa7ce2d88045 b/fuzz/corpus/fuzz_write/ff081a77c936099f89386643e9c9fa7ce2d88045 new file mode 100644 index 00000000..d5af4714 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ff081a77c936099f89386643e9c9fa7ce2d88045 differ diff --git a/fuzz/corpus/fuzz_write/ff1d75652df5dc75ee1bae434a0d1e92e3c8dc13 b/fuzz/corpus/fuzz_write/ff1d75652df5dc75ee1bae434a0d1e92e3c8dc13 new file mode 100644 index 00000000..d84968d6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ff1d75652df5dc75ee1bae434a0d1e92e3c8dc13 differ diff --git a/fuzz/corpus/fuzz_write/ff3f572b11b42d8826436feae7b4cfb298bc40b5 b/fuzz/corpus/fuzz_write/ff3f572b11b42d8826436feae7b4cfb298bc40b5 new file mode 100644 index 00000000..55b38784 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ff3f572b11b42d8826436feae7b4cfb298bc40b5 differ diff --git a/fuzz/corpus/fuzz_write/ff509e97d70d64dc5b1779d5facd043acb3616b8 b/fuzz/corpus/fuzz_write/ff509e97d70d64dc5b1779d5facd043acb3616b8 new file mode 100644 index 00000000..9d21697a Binary files /dev/null and b/fuzz/corpus/fuzz_write/ff509e97d70d64dc5b1779d5facd043acb3616b8 differ diff --git a/fuzz/corpus/fuzz_write/ff5d3f19947aadb855222548d2ccdbd44c8065fb b/fuzz/corpus/fuzz_write/ff5d3f19947aadb855222548d2ccdbd44c8065fb new file mode 100644 index 00000000..4a375345 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ff5d3f19947aadb855222548d2ccdbd44c8065fb differ diff --git a/fuzz/corpus/fuzz_write/ffcaf2ad96f0360395607e71e5400830ceb8ba63 b/fuzz/corpus/fuzz_write/ffcaf2ad96f0360395607e71e5400830ceb8ba63 new file mode 100644 index 00000000..12da24ab Binary files /dev/null and b/fuzz/corpus/fuzz_write/ffcaf2ad96f0360395607e71e5400830ceb8ba63 differ diff --git a/fuzz/corpus/fuzz_write/ffd663a3602c5e3fc0e6fcf46c7db9bb5d56ee13 b/fuzz/corpus/fuzz_write/ffd663a3602c5e3fc0e6fcf46c7db9bb5d56ee13 new file mode 100644 index 00000000..e1fccc92 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ffd663a3602c5e3fc0e6fcf46c7db9bb5d56ee13 differ diff --git a/fuzz/corpus/fuzz_write/ffd79a654aecec53ff9a8433203d208184d534b3 b/fuzz/corpus/fuzz_write/ffd79a654aecec53ff9a8433203d208184d534b3 new file mode 100644 index 00000000..7313bb4b --- /dev/null +++ b/fuzz/corpus/fuzz_write/ffd79a654aecec53ff9a8433203d208184d534b3 @@ -0,0 +1 @@ + +W))! \ No newline at end of file diff --git a/fuzz/corpus/fuzz_write/ffdd81ece0c5e2469f8d388b3e83df1da4083f3a b/fuzz/corpus/fuzz_write/ffdd81ece0c5e2469f8d388b3e83df1da4083f3a new file mode 100644 index 00000000..27c98582 Binary files /dev/null and b/fuzz/corpus/fuzz_write/ffdd81ece0c5e2469f8d388b3e83df1da4083f3a differ diff --git a/fuzz/corpus/fuzz_write/fff1f1736b9419d618621fe4cca9fcfb8492ac5f b/fuzz/corpus/fuzz_write/fff1f1736b9419d618621fe4cca9fcfb8492ac5f new file mode 100644 index 00000000..c6ff7bf6 Binary files /dev/null and b/fuzz/corpus/fuzz_write/fff1f1736b9419d618621fe4cca9fcfb8492ac5f differ diff --git a/fuzz/corpus/new_seed/.gitkeep b/fuzz/corpus/new_seed/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/fuzz/fuzz.dict b/fuzz/fuzz.dict new file mode 100644 index 00000000..2e7ad6a5 --- /dev/null +++ b/fuzz/fuzz.dict @@ -0,0 +1,24 @@ +"PK" +"KP" +central_directory_end_signature_be="PK\x05\x06" +zip64_central_directory_end_signature_be="PK\x06\x06" +zip64_central_directory_end_locator_signature_be="PK\x06\x07" +central_directory_header_signature_be="PK\x01\x02" +local_file_header_signature_be="PK\x03\x04" +central_directory_end_signature_le="\x06\x05KP" +zip64_central_directory_end_signature_le="\x06\x06KP" +zip64_central_directory_end_locator_signature_le="\x06\x07KP" +local_file_header_signature_le="\x04\x03KP" +central_directory_header_signature_le="\x02\x01KP" +compression_method_store="\x00\x00" +compression_method_deflate="\x07\x00" +compression_method_deflate64="\x09\x00" +compression_method_bzip2="\x0C\x00" +compression_method_lzma="\x0E\x00" +compression_method_zstd="]\x00" +compression_method_aes="C\x00" +compression_method_unsupported="\xFF\x00" +"\xFF\xFF" +"/" +"/./" +"/../" \ No newline at end of file diff --git a/fuzz/fuzz_targets/fuzz_read.rs b/fuzz/fuzz_targets/fuzz_read.rs index 97fbdd3b..a5c5a3ff 100644 --- a/fuzz/fuzz_targets/fuzz_read.rs +++ b/fuzz/fuzz_targets/fuzz_read.rs @@ -1,17 +1,23 @@ #![no_main] use libfuzzer_sys::fuzz_target; +use std::io::{Read, Seek, SeekFrom}; +use zip::read::read_zipfile_from_stream; + +const MAX_BYTES_TO_READ: u64 = 1 << 24; fn decompress_all(data: &[u8]) -> Result<(), Box> { let reader = std::io::Cursor::new(data); let mut zip = zip::ZipArchive::new(reader)?; for i in 0..zip.len() { - let mut file = zip.by_index(i)?; - if file.size() < 1 << 20 { - let _ = std::io::copy(&mut file, &mut std::io::sink()); - } + let mut file = zip.by_index(i)?.take(MAX_BYTES_TO_READ); + std::io::copy(&mut file, &mut std::io::sink())?; + } + let mut reader = zip.into_inner(); + reader.seek(SeekFrom::Start(0))?; + while let Ok(Some(mut file)) = read_zipfile_from_stream(&mut reader) { + std::io::copy(&mut file, &mut std::io::sink())?; } - Ok(()) } diff --git a/fuzz/fuzz_targets/fuzz_write.rs b/fuzz/fuzz_targets/fuzz_write.rs new file mode 100644 index 00000000..1b5dec86 --- /dev/null +++ b/fuzz/fuzz_targets/fuzz_write.rs @@ -0,0 +1,145 @@ +#![no_main] + +use arbitrary::Arbitrary; +use libfuzzer_sys::fuzz_target; +use replace_with::replace_with_or_abort; +use std::io::{Cursor, Read, Seek, Write}; +use std::path::PathBuf; +use zip::result::ZipError; + +#[derive(Arbitrary, Clone, Debug)] +pub enum BasicFileOperation<'k> { + WriteNormalFile { + contents: Box<[Box<[u8]>]>, + options: zip::write::FullFileOptions<'k>, + }, + WriteDirectory(zip::write::FullFileOptions<'k>), + WriteSymlinkWithTarget { + target: PathBuf, + options: zip::write::FullFileOptions<'k>, + }, + ShallowCopy(Box>), + DeepCopy(Box>), + MergeWithOtherFile { + operations: Box<[(FileOperation<'k>, bool)]> + } +} + +#[derive(Arbitrary, Clone, Debug, Eq, PartialEq)] +pub enum ReopenOption { + DoNotReopen, + ViaFinish, + ViaFinishIntoReadable +} + +#[derive(Arbitrary, Clone, Debug)] +pub struct FileOperation<'k> { + basic: BasicFileOperation<'k>, + path: PathBuf, + reopen: ReopenOption, + // 'abort' flag is separate, to prevent trying to copy an aborted file +} + +#[derive(Arbitrary, Clone, Debug)] +pub struct FuzzTestCase<'k> { + comment: Box<[u8]>, + operations: Box<[(FileOperation<'k>, bool)]>, + flush_on_finish_file: bool, +} + +fn do_operation<'k, T>( + writer: &mut zip::ZipWriter, + operation: &FileOperation<'k>, + abort: bool, + flush_on_finish_file: bool, +) -> Result<(), Box> +where + T: Read + Write + Seek, +{ + writer.set_flush_on_finish_file(flush_on_finish_file); + let path = &operation.path; + match &operation.basic { + BasicFileOperation::WriteNormalFile { + contents, + options, + .. + } => { + let uncompressed_size = contents.iter().map(|chunk| chunk.len()).sum::(); + let mut options = (*options).to_owned(); + if uncompressed_size >= u32::MAX as usize { + options = options.large_file(true); + } + writer.start_file_from_path(path, options)?; + for chunk in contents.iter() { + writer.write_all(&chunk)?; + } + } + BasicFileOperation::WriteDirectory(options) => { + writer.add_directory_from_path(path, options.to_owned())?; + } + BasicFileOperation::WriteSymlinkWithTarget { target, options } => { + writer.add_symlink_from_path(&path, target, options.to_owned())?; + } + BasicFileOperation::ShallowCopy(base) => { + do_operation(writer, &base, false, flush_on_finish_file)?; + writer.shallow_copy_file_from_path(&base.path, &path)?; + } + BasicFileOperation::DeepCopy(base) => { + do_operation(writer, &base, false, flush_on_finish_file)?; + writer.deep_copy_file_from_path(&base.path, &path)?; + } + BasicFileOperation::MergeWithOtherFile { operations } => { + let mut other_writer = zip::ZipWriter::new(Cursor::new(Vec::new())); + operations.iter().for_each(|(operation, abort)| { + let _ = do_operation( + &mut other_writer, + &operation, + *abort, + false, + ); + }); + writer.merge_archive(other_writer.finish_into_readable()?)?; + } + } + if abort { + match writer.abort_file() { + Ok(()) => {}, + Err(ZipError::FileNotFound) => {}, + Err(e) => return Err(Box::new(e)) + } + } + let old_comment = writer.get_raw_comment().to_owned(); + match operation.reopen { + ReopenOption::DoNotReopen => {}, + ReopenOption::ViaFinish => replace_with_or_abort(writer, |old_writer: zip::ZipWriter| { + zip::ZipWriter::new_append(old_writer.finish().unwrap()).unwrap() + }), + ReopenOption::ViaFinishIntoReadable => replace_with_or_abort(writer, |old_writer: zip::ZipWriter| { + zip::ZipWriter::new_append(old_writer.finish_into_readable().unwrap().into_inner()).unwrap() + }), + } + assert_eq!(&old_comment, writer.get_raw_comment()); + Ok(()) +} + +fuzz_target!(|test_case: FuzzTestCase| { + let mut writer = zip::ZipWriter::new(Cursor::new(Vec::new())); + writer.set_raw_comment(test_case.comment); + let mut final_reopen = false; + if let Some((last_op, _)) = test_case.operations.last() { + if last_op.reopen != ReopenOption::ViaFinishIntoReadable { + final_reopen = true; + } + } + for (operation, abort) in test_case.operations.into_iter() { + let _ = do_operation( + &mut writer, + &operation, + *abort, + test_case.flush_on_finish_file, + ); + } + if final_reopen { + let _ = writer.finish_into_readable().unwrap(); + } +}); diff --git a/release-plz.toml b/release-plz.toml new file mode 100644 index 00000000..47229d20 --- /dev/null +++ b/release-plz.toml @@ -0,0 +1,26 @@ +[workspace] +dependencies_update = true # update dependencies with `cargo update` +pr_labels = ["release"] # add the `release` label to the release Pull Request +release_commits = "^(feat|fix|perf|refactor):" # prepare release only if at least one commit matches a regex +git_release_type = "auto" + +[changelog] +protect_breaking_commits = true +commit_parsers = [ + { message = "^feat", group = "🚀 Features" }, + { message = "^fix", group = "🐛 Bug Fixes" }, + { message = "^doc", skip = true }, + { message = "^perf", group = "⚡ Performance" }, + { message = "^refactor", group = "🚜 Refactor" }, + { message = "^style", skip = true }, + { message = "^test", skip = true }, + { message = "^build", skip = true }, + { message = "^ci", skip = true }, + { message = "^chore\\(release\\)", skip = true }, + { message = "^chore\\(deps.*\\)", skip = true }, + { message = "^chore\\(pr\\)", skip = true }, + { message = "^chore\\(pull\\)", skip = true }, + { message = "^chore", group = "⚙️ Miscellaneous Tasks" }, + { body = ".*security", group = "🛡️ Security" }, + { message = "^revert", group = "◀️ Revert" }, +] \ No newline at end of file diff --git a/security-advisories/README.md b/security-advisories/README.md new file mode 100644 index 00000000..f11357fe --- /dev/null +++ b/security-advisories/README.md @@ -0,0 +1,7 @@ +# Security Advisories for `zip` + +This folder documents the security vulnerabilities affecting the zip crate. It is currently incomplete: RustSec tracks some old vulnerabilities and you should especially ensure you're using an up-to-date version of bzip2. + +## Reporting + +This folder contains a public key ([./zipadvisories.key]) which may be used for reporting sensitive vulnerabilities to the zip maintainers. At time of writing, @plecra has the decryption key. Sending encrypted reports to marli@frost.red or via a new github issue is greatly appreciated. diff --git a/security-advisories/zipadvisories.key b/security-advisories/zipadvisories.key new file mode 100644 index 00000000..1e5edbf8 --- /dev/null +++ b/security-advisories/zipadvisories.key @@ -0,0 +1,42 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGNBGUJ3MIBDADSpQ2HCWcUYrvNnKEcWHSXbMeWeZwIJuxefRO0MEwp1gQCYR+2 +jQwKkmhPjR8ZEcuooSS1zYl1zZxgvnBVgvkNNZeEA7K6fEg632K85/VKcHLR/ZFQ +T2CtACn2L+7dk75GvNMnTLlw8j9ogxKI8BleVCFA9gxit7lsxVJkS0AoRxfAnwbE +ZTIn7VKvX4zEEIaTF90Fsb33El8vKOOqNpkcwHMFJYkq4D9tWgLku0HDlKTREcTg +c6ySfqUZKdJZM1foGCoMJd3pIiPlF3TRv2iISHMRnFdFZ8nzXGnUOvZQsmNGKoZr +FmaB1RIsGZMe58lFabNekaTZ67ja2eXMcGrZ9cfxgISn4SMHk9DZNzsWVTtqe/ZS ++TbjNBfxoezZWbK+eW9aI+6jWclCymbwnmkGZ6pCGinQ/hPGNH68R6cgM19FFSJR +0dkOS0Inqi/LFX8oFG92HrNqOJU2HJiiJw/CuS+NpsWle+EuKBia0+7bX/J2DTio +EPPLwE/bzW5p3MEAEQEAAbRlbWFybGkgKGVuY3J5cHRpb24ga2V5IGZvciBzZWN1 +cml0eSBhZHZpc29yaWVzIG9uIGNyYXRlcyBvd25lZCBieSBnaXRodWIuY29tL3Bs +ZWNyYSkgPG1hcmxpQGZyb3N0LnJlZD6JAc4EEwEKADgWIQQ8qnkYgARauRpEvXuO +4ShR8uWq+wUCZQncwgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCO4ShR +8uWq+4scC/oCDXs9/toC4jf0KhGx3u9H3o6XMnmtnTB4k4drG8gAmGVbkawY1IXt +uU77FUXEpP1AesmiBNcsxv7RrCElrCdzjS3yfMFDvK+sOP/97qThh5kRg03XKgeK +bEzgX0lTWR2j+keEqx/GtAxeNN65U3B2J6Z5kjl3UAm4TvVR/mmB72HTU8krOr1e +VQGhlE3SXk0QL5aByeH6qaVFm1PSIIJdkZhGBVGAf0Yb32c7/ngUZCpDWbVhmkQg +kFAgYtN49mt3pbe4SI5P3goPc6aitFJ2mCl103QxN3n3hJ8YU/8n92PlxaerfiRt +W10sZGhVc/iC8Qow7ZqtvdIsxciz9y1iAL7N4v4g4jOAtDy6Q/Fajm3+wTy4R8Jj +2nx/Cq/Gk/AHqkvEpAkcUW4iQ2bZFKdpDfi6/phSeoBS+WF3dycsOlLKS90Tvhiw +DYasxuNzwJK0IO8YM+hiId/ziErsKG2CTx9LePToYzgLvA9OJITi4UZm71Jkmuth +5X4duNT+TSq5AY0EZQncwgEMAK0zXJq2mURC0VyM4pTIVkdgIZBR3n0YCgRTtcTQ +IOnoiX9KLT6ZGfMllAEzAacgBqZnw/AGw9lraH3X8gyFH94dntIJEhmcmJ4RYVdl +GchyiQYUSmtqJdTQ3el9TxQ0ec5nst3MHEeaQnUKPYVMJZkIDMg/jzmlyKVb3EOS +QDKfqGhlNU8N0tAwmwyVzKc4rJHuDQOuZbn6u1/X2RBE9jMRFaMHVMG6iZNcjVfC +3HVqa00ZYTR9rZPlVuvlbT1pnZ2DkOKYp9fGd55eL8CHUDd7IFgdRauKIe6XySGM +nIIOdy/vfVNNBdzo8SiWtDs1Um0KvPF97CTcqyCo4wn3howWXP2OIoyif9l/cFwN +a3EBCSSJK/DJ1un0DwtsH8uKyDccwzGmAIMkK7IDVRGlHV7z8UsrdamNTh3CdJn5 +yczsLWDY00vLs7IaT3/ZGzWdoBBX4cClUS3Aru1GWpHBjTH9BQO03t237hnQezLp +ALzwh3pqkjaakmSqTBoYVS06dwARAQABiQG2BBgBCgAgFiEEPKp5GIAEWrkaRL17 +juEoUfLlqvsFAmUJ3MICGwwACgkQjuEoUfLlqvuzQAv8CxuBQiLA4AGki1EUCEvk +xqXbMlBfX+qL1gKnj547lyqnIbjMrhCuJs72gc3vclWNP2tT2XCwsoTs4rZJwccV +NVQzDoJpalckumI1o85ZbBosfl3do8riUXKfQ5CWmoKbiSCziSqm2cB7BqesLjNy +6zu7y0J5qMGjIArDqoS59r9iQfY8tbqq2rcVnCoIrHNLp8WupkGjpsNOWxkg4sZh +v0xOMfrU7v7ErNH+TCEVQzXXFDbc9ppnfBkFBBvlO08O16sAlA2xRnQc+hlM0FdJ +Q8CHklvolWdhbkuLHYRDvYf+MIf0r5F1Bk6Dh7YZkEI9kK5qSOOsZ0TZOPGteMbm +Oseln6bu/TwLHowf4ItYmjYPOeNHGNf91g1X98JdQvyyda0YldAQlz6I4aPzUH07 +XhyezUF1T04aN3T73TZmpRJBC611c7rSh2yw5ED4J/TjNQI8BcTny0wC7Sfi/krc +ory7KoaRpUGG+00fWgTzsd/ktf2pSCKDJGs5S8DDAVhJ +=Cxca +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/aes.rs b/src/aes.rs index 8997705c..721d72ae 100644 --- a/src/aes.rs +++ b/src/aes.rs @@ -4,12 +4,15 @@ //! Note that using CRC with AES depends on the used encryption specification, AE-1 or AE-2. //! If the file is marked as encrypted with AE-2 the CRC field is ignored, even if it isn't set to 0. -use crate::aes_ctr; +use crate::aes_ctr::AesCipher; use crate::types::AesMode; +use crate::{aes_ctr, result::ZipError}; use constant_time_eq::constant_time_eq; use hmac::{Hmac, Mac}; +use rand::RngCore; use sha1::Sha1; -use std::io::{self, Read}; +use std::io::{self, Error, ErrorKind, Read, Write}; +use zeroize::{Zeroize, Zeroizing}; /// The length of the password verifcation value in bytes const PWD_VERIFY_LENGTH: usize = 2; @@ -18,19 +21,38 @@ const AUTH_CODE_LENGTH: usize = 10; /// The number of iterations used with PBKDF2 const ITERATION_COUNT: u32 = 1000; -/// Create a AesCipher depending on the used `AesMode` and the given `key`. -/// -/// # Panics -/// -/// This panics if `key` doesn't have the correct size for the chosen aes mode. -fn cipher_from_mode(aes_mode: AesMode, key: &[u8]) -> Box { - match aes_mode { - AesMode::Aes128 => Box::new(aes_ctr::AesCtrZipKeyStream::::new(key)) - as Box, - AesMode::Aes192 => Box::new(aes_ctr::AesCtrZipKeyStream::::new(key)) - as Box, - AesMode::Aes256 => Box::new(aes_ctr::AesCtrZipKeyStream::::new(key)) - as Box, +enum Cipher { + Aes128(Box>), + Aes192(Box>), + Aes256(Box>), +} + +impl Cipher { + /// Create a `Cipher` depending on the used `AesMode` and the given `key`. + /// + /// # Panics + /// + /// This panics if `key` doesn't have the correct size for the chosen aes mode. + fn from_mode(aes_mode: AesMode, key: &[u8]) -> Self { + match aes_mode { + AesMode::Aes128 => Cipher::Aes128(Box::new(aes_ctr::AesCtrZipKeyStream::< + aes_ctr::Aes128, + >::new(key))), + AesMode::Aes192 => Cipher::Aes192(Box::new(aes_ctr::AesCtrZipKeyStream::< + aes_ctr::Aes192, + >::new(key))), + AesMode::Aes256 => Cipher::Aes256(Box::new(aes_ctr::AesCtrZipKeyStream::< + aes_ctr::Aes256, + >::new(key))), + } + } + + fn crypt_in_place(&mut self, target: &mut [u8]) { + match self { + Self::Aes128(cipher) => cipher.crypt_in_place(target), + Self::Aes192(cipher) => cipher.crypt_in_place(target), + Self::Aes256(cipher) => cipher.crypt_in_place(target), + } } } @@ -45,7 +67,7 @@ pub struct AesReader { } impl AesReader { - pub fn new(reader: R, aes_mode: AesMode, compressed_size: u64) -> AesReader { + pub const fn new(reader: R, aes_mode: AesMode, compressed_size: u64) -> AesReader { let data_length = compressed_size - (PWD_VERIFY_LENGTH + AUTH_CODE_LENGTH + aes_mode.salt_length()) as u64; @@ -62,12 +84,7 @@ impl AesReader { /// password was provided. /// It isn't possible to check the authentication code in this step. This will be done after /// reading and decrypting the file. - /// - /// # Returns - /// - /// If the password verification failed `Ok(None)` will be returned to match the validate - /// method of ZipCryptoReader. - pub fn validate(mut self, password: &[u8]) -> io::Result>> { + pub fn validate(mut self, password: &[u8]) -> Result, ZipError> { let salt_length = self.aes_mode.salt_length(); let key_length = self.aes_mode.key_length(); @@ -81,10 +98,11 @@ impl AesReader { // derive a key from the password and salt // the length depends on the aes key length let derived_key_len = 2 * key_length + PWD_VERIFY_LENGTH; - let mut derived_key: Vec = vec![0; derived_key_len]; + let mut derived_key: Box<[u8]> = vec![0; derived_key_len].into_boxed_slice(); // use PBKDF2 with HMAC-Sha1 to derive the key - pbkdf2::pbkdf2::>(password, &salt, ITERATION_COUNT, &mut derived_key); + pbkdf2::pbkdf2::>(password, &salt, ITERATION_COUNT, &mut derived_key) + .map_err(|e| Error::new(ErrorKind::InvalidInput, e))?; let decrypt_key = &derived_key[0..key_length]; let hmac_key = &derived_key[key_length..key_length * 2]; let pwd_verify = &derived_key[derived_key_len - 2..]; @@ -92,19 +110,19 @@ impl AesReader { // the last 2 bytes should equal the password verification value if pwd_verification_value != pwd_verify { // wrong password - return Ok(None); + return Err(ZipError::InvalidPassword); } - let cipher = cipher_from_mode(self.aes_mode, decrypt_key); + let cipher = Cipher::from_mode(self.aes_mode, decrypt_key); let hmac = Hmac::::new_from_slice(hmac_key).unwrap(); - Ok(Some(AesReaderValid { + Ok(AesReaderValid { reader: self.reader, data_remaining: self.data_length, cipher, hmac, finalized: false, - })) + }) } } @@ -116,7 +134,7 @@ impl AesReader { pub struct AesReaderValid { reader: R, data_remaining: u64, - cipher: Box, + cipher: Cipher, hmac: Hmac, finalized: bool, } @@ -165,8 +183,8 @@ impl Read for AesReaderValid { // use constant time comparison to mitigate timing attacks if !constant_time_eq(computed_auth_code, &read_auth_code) { return Err( - io::Error::new( - io::ErrorKind::InvalidData, + Error::new( + ErrorKind::InvalidData, "Invalid authentication code, this could be due to an invalid password or errors in the data" ) ); @@ -183,3 +201,189 @@ impl AesReaderValid { self.reader } } + +pub struct AesWriter { + writer: W, + cipher: Cipher, + hmac: Hmac, + buffer: Zeroizing>, + encrypted_file_header: Option>, +} + +impl AesWriter { + pub fn new(writer: W, aes_mode: AesMode, password: &[u8]) -> io::Result { + let salt_length = aes_mode.salt_length(); + let key_length = aes_mode.key_length(); + + let mut encrypted_file_header = Vec::with_capacity(salt_length + 2); + + let mut salt = vec![0; salt_length]; + rand::thread_rng().fill_bytes(&mut salt); + encrypted_file_header.write_all(&salt)?; + + // Derive a key from the password and salt. The length depends on the aes key length + let derived_key_len = 2 * key_length + PWD_VERIFY_LENGTH; + let mut derived_key: Zeroizing> = Zeroizing::new(vec![0; derived_key_len]); + + // Use PBKDF2 with HMAC-Sha1 to derive the key. + pbkdf2::pbkdf2::>(password, &salt, ITERATION_COUNT, &mut derived_key) + .map_err(|e| Error::new(ErrorKind::InvalidInput, e))?; + let encryption_key = &derived_key[0..key_length]; + let hmac_key = &derived_key[key_length..key_length * 2]; + + let pwd_verify = derived_key[derived_key_len - 2..].to_vec(); + encrypted_file_header.write_all(&pwd_verify)?; + + let cipher = Cipher::from_mode(aes_mode, encryption_key); + let hmac = Hmac::::new_from_slice(hmac_key).unwrap(); + + Ok(Self { + writer, + cipher, + hmac, + buffer: Default::default(), + encrypted_file_header: Some(encrypted_file_header), + }) + } + + pub fn finish(mut self) -> io::Result { + self.write_encrypted_file_header()?; + + // Zip uses HMAC-Sha1-80, which only uses the first half of the hash + // see https://www.winzip.com/win/en/aes_info.html#auth-faq + let computed_auth_code = &self.hmac.finalize_reset().into_bytes()[0..AUTH_CODE_LENGTH]; + self.writer.write_all(computed_auth_code)?; + + Ok(self.writer) + } + + /// The AES encryption specification requires some metadata being written at the start of the + /// file data section, but this can only be done once the extra data writing has been finished + /// so we can't do it when the writer is constructed. + fn write_encrypted_file_header(&mut self) -> io::Result<()> { + if let Some(header) = self.encrypted_file_header.take() { + self.writer.write_all(&header)?; + } + + Ok(()) + } +} + +impl Write for AesWriter { + fn write(&mut self, buf: &[u8]) -> io::Result { + self.write_encrypted_file_header()?; + + // Fill the internal buffer and encrypt it in-place. + self.buffer.extend_from_slice(buf); + self.cipher.crypt_in_place(&mut self.buffer[..]); + + // Update the hmac with the encrypted data. + self.hmac.update(&self.buffer[..]); + + // Write the encrypted buffer to the inner writer. We need to use `write_all` here as if + // we only write parts of the data we can't easily reverse the keystream in the cipher + // implementation. + self.writer.write_all(&self.buffer[..])?; + + // Zeroize the backing memory before clearing the buffer to prevent cleartext data from + // being left in memory. + self.buffer.zeroize(); + self.buffer.clear(); + + Ok(buf.len()) + } + + fn flush(&mut self) -> io::Result<()> { + self.writer.flush() + } +} + +#[cfg(test)] +mod tests { + use std::io::{self, Read, Write}; + + use crate::{ + aes::{AesReader, AesWriter}, + result::ZipError, + types::AesMode, + }; + + /// Checks whether `AesReader` can successfully decrypt what `AesWriter` produces. + fn roundtrip(aes_mode: AesMode, password: &[u8], plaintext: &[u8]) -> Result { + let mut buf = io::Cursor::new(vec![]); + let mut read_buffer = vec![]; + + { + let mut writer = AesWriter::new(&mut buf, aes_mode, password)?; + writer.write_all(plaintext)?; + writer.finish()?; + } + + // Reset cursor position to the beginning. + buf.set_position(0); + + { + let compressed_length = buf.get_ref().len() as u64; + let mut reader = + AesReader::new(&mut buf, aes_mode, compressed_length).validate(password)?; + reader.read_to_end(&mut read_buffer)?; + } + + Ok(plaintext == read_buffer) + } + + #[test] + fn crypt_aes_256_0_byte() { + let plaintext = &[]; + let password = b"some super secret password"; + assert!(roundtrip(AesMode::Aes256, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_128_5_byte() { + let plaintext = b"asdf\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes128, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_192_5_byte() { + let plaintext = b"asdf\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes192, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_256_5_byte() { + let plaintext = b"asdf\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes256, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_128_40_byte() { + let plaintext = b"Lorem ipsum dolor sit amet, consectetur\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes128, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_192_40_byte() { + let plaintext = b"Lorem ipsum dolor sit amet, consectetur\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes192, password, plaintext).expect("could encrypt and decrypt")); + } + + #[test] + fn crypt_aes_256_40_byte() { + let plaintext = b"Lorem ipsum dolor sit amet, consectetur\n"; + let password = b"some super secret password"; + + assert!(roundtrip(AesMode::Aes256, password, plaintext).expect("could encrypt and decrypt")); + } +} diff --git a/src/aes_ctr.rs b/src/aes_ctr.rs index 0f34335c..6513fb97 100644 --- a/src/aes_ctr.rs +++ b/src/aes_ctr.rs @@ -2,11 +2,11 @@ //! //! This was implemented since the zip specification requires the mode to not use a nonce and uses a //! different byte order (little endian) than NIST (big endian). -//! See [AesCtrZipKeyStream](./struct.AesCtrZipKeyStream.html) for more information. +//! See [AesCtrZipKeyStream] for more information. +use crate::unstable::LittleEndianWriteExt; use aes::cipher::generic_array::GenericArray; -use aes::{BlockEncrypt, NewBlockCipher}; -use byteorder::WriteBytesExt; +use aes::cipher::{BlockEncrypt, KeyInit}; use std::{any, fmt}; /// Internal block size of an AES cipher. @@ -27,7 +27,7 @@ pub trait AesKind { /// Key type. type Key: AsRef<[u8]>; /// Cipher used to decrypt. - type Cipher; + type Cipher: KeyInit; } impl AesKind for Aes128 { @@ -82,7 +82,7 @@ where impl AesCtrZipKeyStream where C: AesKind, - C::Cipher: NewBlockCipher, + C::Cipher: KeyInit, { /// Creates a new zip variant AES-CTR key stream. /// @@ -112,7 +112,7 @@ where // Note: AES block size is always 16 bytes, same as u128. self.buffer .as_mut() - .write_u128::(self.counter) + .write_u128_le(self.counter) .expect("did not expect u128 le conversion to fail"); self.cipher .encrypt_block(GenericArray::from_mut_slice(&mut self.buffer)); @@ -150,25 +150,25 @@ fn xor(dest: &mut [u8], src: &[u8]) { #[cfg(test)] mod tests { use super::{Aes128, Aes192, Aes256, AesCipher, AesCtrZipKeyStream, AesKind}; - use aes::{BlockEncrypt, NewBlockCipher}; + use aes::cipher::{BlockEncrypt, KeyInit}; /// Checks whether `crypt_in_place` produces the correct plaintext after one use and yields the /// cipertext again after applying it again. - fn roundtrip(key: &[u8], ciphertext: &mut [u8], expected_plaintext: &[u8]) + fn roundtrip(key: &[u8], ciphertext: &[u8], expected_plaintext: &[u8]) where Aes: AesKind, - Aes::Cipher: NewBlockCipher + BlockEncrypt, + Aes::Cipher: KeyInit + BlockEncrypt, { let mut key_stream = AesCtrZipKeyStream::::new(key); - let mut plaintext: Vec = ciphertext.to_vec(); - key_stream.crypt_in_place(plaintext.as_mut_slice()); - assert_eq!(plaintext, expected_plaintext.to_vec()); + let mut plaintext = ciphertext.to_vec().into_boxed_slice(); + key_stream.crypt_in_place(&mut plaintext); + assert_eq!(*plaintext, *expected_plaintext); // Round-tripping should yield the ciphertext again. let mut key_stream = AesCtrZipKeyStream::::new(key); key_stream.crypt_in_place(&mut plaintext); - assert_eq!(plaintext, ciphertext.to_vec()); + assert_eq!(*plaintext, *ciphertext); } #[test] @@ -182,7 +182,7 @@ mod tests { // `7z a -phelloworld -mem=AES256 -mx=0 aes256_40byte.zip 40byte_data.txt` #[test] fn crypt_aes_256_0_byte() { - let mut ciphertext = []; + let ciphertext = []; let expected_plaintext = &[]; let key = [ 0x0b, 0xec, 0x2e, 0xf2, 0x46, 0xf0, 0x7e, 0x35, 0x16, 0x54, 0xe0, 0x98, 0x10, 0xb3, @@ -190,36 +190,36 @@ mod tests { 0x5c, 0xd0, 0xc0, 0x54, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_128_5_byte() { - let mut ciphertext = [0x98, 0xa9, 0x8c, 0x26, 0x0e]; + let ciphertext = [0x98, 0xa9, 0x8c, 0x26, 0x0e]; let expected_plaintext = b"asdf\n"; let key = [ 0xe0, 0x25, 0x7b, 0x57, 0x97, 0x6a, 0xa4, 0x23, 0xab, 0x94, 0xaa, 0x44, 0xfd, 0x47, 0x4f, 0xa5, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_192_5_byte() { - let mut ciphertext = [0x36, 0x55, 0x5c, 0x61, 0x3c]; + let ciphertext = [0x36, 0x55, 0x5c, 0x61, 0x3c]; let expected_plaintext = b"asdf\n"; let key = [ 0xe4, 0x4a, 0x88, 0x52, 0x8f, 0xf7, 0x0b, 0x81, 0x7b, 0x75, 0xf1, 0x74, 0x21, 0x37, 0x8c, 0x90, 0xad, 0xbe, 0x4a, 0x65, 0xa8, 0x96, 0x0e, 0xcc, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_256_5_byte() { - let mut ciphertext = [0xc2, 0x47, 0xc0, 0xdc, 0x56]; + let ciphertext = [0xc2, 0x47, 0xc0, 0xdc, 0x56]; let expected_plaintext = b"asdf\n"; let key = [ 0x79, 0x5e, 0x17, 0xf2, 0xc6, 0x3d, 0x28, 0x9b, 0x4b, 0x4b, 0xbb, 0xa9, 0xba, 0xc9, @@ -227,12 +227,12 @@ mod tests { 0x15, 0xb2, 0x86, 0xab, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_128_40_byte() { - let mut ciphertext = [ + let ciphertext = [ 0xcf, 0x72, 0x6b, 0xa1, 0xb2, 0x0f, 0xdf, 0xaa, 0x10, 0xad, 0x9c, 0x7f, 0x6d, 0x1c, 0x8d, 0xb5, 0x16, 0x7e, 0xbb, 0x11, 0x69, 0x52, 0x8c, 0x89, 0x80, 0x32, 0xaa, 0x76, 0xa6, 0x18, 0x31, 0x98, 0xee, 0xdd, 0x22, 0x68, 0xb7, 0xe6, 0x77, 0xd2, @@ -243,12 +243,12 @@ mod tests { 0x81, 0xb6, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_192_40_byte() { - let mut ciphertext = [ + let ciphertext = [ 0xa6, 0xfc, 0x52, 0x79, 0x2c, 0x6c, 0xfe, 0x68, 0xb1, 0xa8, 0xb3, 0x07, 0x52, 0x8b, 0x82, 0xa6, 0x87, 0x9c, 0x72, 0x42, 0x3a, 0xf8, 0xc6, 0xa9, 0xc9, 0xfb, 0x61, 0x19, 0x37, 0xb9, 0x56, 0x62, 0xf4, 0xfc, 0x5e, 0x7a, 0xdd, 0x55, 0x0a, 0x48, @@ -259,12 +259,12 @@ mod tests { 0xfe, 0xae, 0x1b, 0xba, 0x01, 0x97, 0x97, 0x79, 0xbb, 0xa6, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } #[test] fn crypt_aes_256_40_byte() { - let mut ciphertext = [ + let ciphertext = [ 0xa9, 0x99, 0xbd, 0xea, 0x82, 0x9b, 0x8f, 0x2f, 0xb7, 0x52, 0x2f, 0x6b, 0xd8, 0xf6, 0xab, 0x0e, 0x24, 0x51, 0x9e, 0x18, 0x0f, 0xc0, 0x8f, 0x54, 0x15, 0x80, 0xae, 0xbc, 0xa0, 0x5c, 0x8a, 0x11, 0x8d, 0x14, 0x7e, 0xc5, 0xb4, 0xae, 0xd3, 0x37, @@ -276,6 +276,6 @@ mod tests { 0xc2, 0x07, 0x36, 0xb6, ]; - roundtrip::(&key, &mut ciphertext, expected_plaintext); + roundtrip::(&key, &ciphertext, expected_plaintext); } } diff --git a/src/build.rs b/src/build.rs new file mode 100644 index 00000000..8ec1aeab --- /dev/null +++ b/src/build.rs @@ -0,0 +1,7 @@ +use std::env::var; + +fn main() { + if var("CARGO_FEATURE_DEFLATE_MINIZ").is_ok() { + println!("cargo:warning=Feature `deflate-miniz` is deprecated; replace it with `deflate`"); + } +} diff --git a/src/compression.rs b/src/compression.rs index baec9399..3dd6eced 100644 --- a/src/compression.rs +++ b/src/compression.rs @@ -11,17 +11,18 @@ use std::fmt; /// When creating ZIP files, you may choose the method to use with /// [`crate::write::FileOptions::compression_method`] #[derive(Copy, Clone, PartialEq, Eq, Debug)] +#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))] #[non_exhaustive] pub enum CompressionMethod { /// Store the file as is Stored, /// Compress the file using Deflate - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] Deflated, + /// Compress the file using Deflate64. + /// Decoding deflate64 is supported but encoding deflate64 is not supported. + #[cfg(feature = "deflate64")] + Deflate64, /// Compress the file using BZIP2 #[cfg(feature = "bzip2")] Bzip2, @@ -34,8 +35,14 @@ pub enum CompressionMethod { /// Compress the file using ZStandard #[cfg(feature = "zstd")] Zstd, + /// Compress the file using LZMA + #[cfg(feature = "lzma")] + Lzma, /// Unsupported compression method - #[deprecated(since = "0.5.7", note = "use the constants instead")] + #[cfg_attr( + not(fuzzing), + deprecated(since = "0.5.7", note = "use the constants instead") + )] Unsupported(u16), } #[allow(deprecated, missing_docs)] @@ -48,25 +55,23 @@ impl CompressionMethod { pub const REDUCE_3: Self = CompressionMethod::Unsupported(4); pub const REDUCE_4: Self = CompressionMethod::Unsupported(5); pub const IMPLODE: Self = CompressionMethod::Unsupported(6); - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] pub const DEFLATE: Self = CompressionMethod::Deflated; - #[cfg(not(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - )))] + #[cfg(not(feature = "_deflate-any"))] pub const DEFLATE: Self = CompressionMethod::Unsupported(8); + #[cfg(feature = "deflate64")] + pub const DEFLATE64: Self = CompressionMethod::Deflate64; + #[cfg(not(feature = "deflate64"))] pub const DEFLATE64: Self = CompressionMethod::Unsupported(9); pub const PKWARE_IMPLODE: Self = CompressionMethod::Unsupported(10); #[cfg(feature = "bzip2")] pub const BZIP2: Self = CompressionMethod::Bzip2; #[cfg(not(feature = "bzip2"))] pub const BZIP2: Self = CompressionMethod::Unsupported(12); + #[cfg(not(feature = "lzma"))] pub const LZMA: Self = CompressionMethod::Unsupported(14); + #[cfg(feature = "lzma")] + pub const LZMA: Self = CompressionMethod::Lzma; pub const IBM_ZOS_CMPSC: Self = CompressionMethod::Unsupported(16); pub const IBM_TERSE: Self = CompressionMethod::Unsupported(18); pub const ZSTD_DEPRECATED: Self = CompressionMethod::Unsupported(20); @@ -90,18 +95,18 @@ impl CompressionMethod { since = "0.5.7", note = "use a constant to construct a compression method" )] - pub fn from_u16(val: u16) -> CompressionMethod { + pub const fn from_u16(val: u16) -> CompressionMethod { #[allow(deprecated)] match val { 0 => CompressionMethod::Stored, - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] 8 => CompressionMethod::Deflated, + #[cfg(feature = "deflate64")] + 9 => CompressionMethod::Deflate64, #[cfg(feature = "bzip2")] 12 => CompressionMethod::Bzip2, + #[cfg(feature = "lzma")] + 14 => CompressionMethod::Lzma, #[cfg(feature = "zstd")] 93 => CompressionMethod::Zstd, #[cfg(feature = "aes-crypto")] @@ -116,28 +121,38 @@ impl CompressionMethod { since = "0.5.7", note = "to match on other compression methods, use a constant" )] - pub fn to_u16(self) -> u16 { + pub const fn to_u16(self) -> u16 { #[allow(deprecated)] match self { CompressionMethod::Stored => 0, - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] CompressionMethod::Deflated => 8, + #[cfg(feature = "deflate64")] + CompressionMethod::Deflate64 => 9, #[cfg(feature = "bzip2")] CompressionMethod::Bzip2 => 12, #[cfg(feature = "aes-crypto")] CompressionMethod::Aes => 99, #[cfg(feature = "zstd")] CompressionMethod::Zstd => 93, + #[cfg(feature = "lzma")] + CompressionMethod::Lzma => 14, CompressionMethod::Unsupported(v) => v, } } } +impl Default for CompressionMethod { + fn default() -> Self { + #[cfg(feature = "_deflate-any")] + return CompressionMethod::Deflated; + + #[cfg(not(feature = "_deflate-any"))] + return CompressionMethod::Stored; + } +} + impl fmt::Display for CompressionMethod { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { // Just duplicate what the Debug format looks like, i.e, the enum key: @@ -148,12 +163,10 @@ impl fmt::Display for CompressionMethod { /// The compression methods which have been implemented. pub const SUPPORTED_COMPRESSION_METHODS: &[CompressionMethod] = &[ CompressionMethod::Stored, - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] CompressionMethod::Deflated, + #[cfg(feature = "deflate64")] + CompressionMethod::Deflate64, #[cfg(feature = "bzip2")] CompressionMethod::Bzip2, #[cfg(feature = "zstd")] diff --git a/src/cp437.rs b/src/cp437.rs index 4dba9af1..2c38063f 100644 --- a/src/cp437.rs +++ b/src/cp437.rs @@ -23,15 +23,16 @@ impl<'a> FromCp437 for &'a [u8] { } } -impl FromCp437 for Vec { - type Target = String; +impl FromCp437 for Box<[u8]> { + type Target = Box; fn from_cp437(self) -> Self::Target { if self.iter().all(|c| *c < 0x80) { - String::from_utf8(self).unwrap() + String::from_utf8(self.into()).unwrap() } else { - self.into_iter().map(to_char).collect() + self.iter().copied().map(to_char).collect() } + .into_boxed_str() } } @@ -187,6 +188,8 @@ mod test { } #[test] + #[allow(unknown_lints)] // invalid_from_utf8 was added in rust 1.72 + #[allow(invalid_from_utf8)] fn example_slice() { use super::FromCp437; let data = b"Cura\x87ao"; @@ -199,6 +202,6 @@ mod test { use super::FromCp437; let data = vec![0xCC, 0xCD, 0xCD, 0xB9]; assert!(String::from_utf8(data.clone()).is_err()); - assert_eq!(&data.from_cp437(), "╠══╣"); + assert_eq!(&*data.from_cp437(), "╠══╣"); } } diff --git a/src/crc32.rs b/src/crc32.rs index ebace898..7152c085 100644 --- a/src/crc32.rs +++ b/src/crc32.rs @@ -55,7 +55,6 @@ impl Read for Crc32Reader { #[cfg(test)] mod test { use super::*; - use std::io::Read; #[test] fn test_empty_reader() { diff --git a/src/extra_fields/extended_timestamp.rs b/src/extra_fields/extended_timestamp.rs new file mode 100644 index 00000000..f173e944 --- /dev/null +++ b/src/extra_fields/extended_timestamp.rs @@ -0,0 +1,87 @@ +use crate::result::{ZipError, ZipResult}; +use crate::unstable::LittleEndianReadExt; +use std::io::Read; + +/// extended timestamp, as described in + +#[derive(Debug, Clone)] +pub struct ExtendedTimestamp { + mod_time: Option, + ac_time: Option, + cr_time: Option, +} + +impl ExtendedTimestamp { + /// creates an extended timestamp struct by reading the required bytes from the reader. + /// + /// This method assumes that the length has already been read, therefore + /// it must be passed as an argument + pub fn try_from_reader(reader: &mut R, len: u16) -> ZipResult + where + R: Read, + { + let mut flags = [0u8]; + reader.read_exact(&mut flags)?; + let flags = flags[0]; + + // the `flags` field refers to the local headers and might not correspond + // to the len field. If the length field is 1+4, we assume that only + // the modification time has been set + + // > Those times that are present will appear in the order indicated, but + // > any combination of times may be omitted. (Creation time may be + // > present without access time, for example.) TSize should equal + // > (1 + 4*(number of set bits in Flags)), as the block is currently + // > defined. + if len != 5 && len as u32 != 1 + 4 * flags.count_ones() { + //panic!("found len {len} and flags {flags:08b}"); + return Err(ZipError::UnsupportedArchive( + "flags and len don't match in extended timestamp field", + )); + } + + if flags & 0b11111000 != 0 { + return Err(ZipError::UnsupportedArchive( + "found unsupported timestamps in the extended timestamp header", + )); + } + + let mod_time = if (flags & 0b00000001u8 == 0b00000001u8) || len == 5 { + Some(reader.read_u32_le()?) + } else { + None + }; + + let ac_time = if flags & 0b00000010u8 == 0b00000010u8 && len > 5 { + Some(reader.read_u32_le()?) + } else { + None + }; + + let cr_time = if flags & 0b00000100u8 == 0b00000100u8 && len > 5 { + Some(reader.read_u32_le()?) + } else { + None + }; + Ok(Self { + mod_time, + ac_time, + cr_time, + }) + } + + /// returns the last modification timestamp + pub fn mod_time(&self) -> Option<&u32> { + self.mod_time.as_ref() + } + + /// returns the last access timestamp + pub fn ac_time(&self) -> Option<&u32> { + self.ac_time.as_ref() + } + + /// returns the creation timestamp + pub fn cr_time(&self) -> Option<&u32> { + self.cr_time.as_ref() + } +} diff --git a/src/extra_fields/mod.rs b/src/extra_fields/mod.rs new file mode 100644 index 00000000..145cfade --- /dev/null +++ b/src/extra_fields/mod.rs @@ -0,0 +1,28 @@ +//! types for extra fields + +/// marker trait to denote the place where this extra field has been stored +pub trait ExtraFieldVersion {} + +/// use this to mark extra fields specified in a local header + +#[derive(Debug, Clone)] +pub struct LocalHeaderVersion; + +/// use this to mark extra fields specified in the central header + +#[derive(Debug, Clone)] +pub struct CentralHeaderVersion; + +impl ExtraFieldVersion for LocalHeaderVersion {} +impl ExtraFieldVersion for CentralHeaderVersion {} + +mod extended_timestamp; + +pub use extended_timestamp::*; + +/// contains one extra field +#[derive(Debug, Clone)] +pub enum ExtraField { + /// extended timestamp, as described in + ExtendedTimestamp(ExtendedTimestamp), +} diff --git a/src/lib.rs b/src/lib.rs index 328b7e39..35ffcaa6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,15 +18,18 @@ //! | | Reading | Writing | //! | ------- | ------ | ------- | //! | Deflate | ✅ [->](`crate::ZipArchive::by_name`) | ✅ [->](`crate::write::FileOptions::compression_method`) | +//! | Deflate64 | ✅ | | +//! | Bzip2 | ✅ | ✅ | +//! | LZMA | ✅ | | +//! | AES encryption | ✅ | ✅ | +//! | ZipCrypto deprecated encryption | ✅ | ✅ | //! //! -//! - #![warn(missing_docs)] - +#![allow(unexpected_cfgs)] // Needed for cfg(fuzzing) on nightly as of 2024-05-06 pub use crate::compression::{CompressionMethod, SUPPORTED_COMPRESSION_METHODS}; pub use crate::read::ZipArchive; -pub use crate::types::DateTime; +pub use crate::types::{AesMode, DateTime}; pub use crate::write::ZipWriter; #[cfg(feature = "aes-crypto")] @@ -36,20 +39,25 @@ mod aes_ctr; mod compression; mod cp437; mod crc32; +pub mod extra_fields; pub mod read; pub mod result; mod spec; mod types; pub mod write; mod zipcrypto; +pub use extra_fields::ExtraField; -/// Unstable APIs -/// -/// All APIs accessible by importing this module are unstable; They may be changed in patch releases. -/// You MUST you an exact version specifier in `Cargo.toml`, to indicate the version of this API you're using: -/// -/// ```toml -/// [dependencies] -/// zip = "=0.6.5" -/// ``` +#[doc = "Unstable APIs\n\ +\ +All APIs accessible by importing this module are unstable; They may be changed in patch \ +releases. You MUST use an exact version specifier in `Cargo.toml`, to indicate the version of this \ +API you're using:\n\ +\ +```toml\n +[dependencies]\n +zip = \"="] +#[doc=env!("CARGO_PKG_VERSION")] +#[doc = "\"\n\ +```"] pub mod unstable; diff --git a/src/read.rs b/src/read.rs index b702b4f2..053292ff 100644 --- a/src/read.rs +++ b/src/read.rs @@ -5,24 +5,29 @@ use crate::aes::{AesReader, AesReaderValid}; use crate::compression::CompressionMethod; use crate::cp437::FromCp437; use crate::crc32::Crc32Reader; -use crate::result::{InvalidPassword, ZipError, ZipResult}; +use crate::extra_fields::{ExtendedTimestamp, ExtraField}; +use crate::read::zip_archive::Shared; +use crate::result::{ZipError, ZipResult}; use crate::spec; -use crate::types::{AesMode, AesVendorVersion, AtomicU64, DateTime, System, ZipFileData}; +use crate::types::{AesMode, AesVendorVersion, DateTime, System, ZipFileData}; use crate::zipcrypto::{ZipCryptoReader, ZipCryptoReaderValid, ZipCryptoValidator}; -use byteorder::{LittleEndian, ReadBytesExt}; +use indexmap::IndexMap; use std::borrow::Cow; -use std::collections::HashMap; -use std::io::{self, prelude::*}; -use std::path::Path; -use std::sync::Arc; +use std::io::{self, copy, prelude::*, sink}; +use std::ops::Deref; +use std::path::{Path, PathBuf}; +use std::sync::{Arc, OnceLock}; #[cfg(any( feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" + feature = "deflate-zlib", + feature = "deflate-zlib-ng" ))] use flate2::read::DeflateDecoder; +#[cfg(feature = "deflate64")] +use deflate64::Deflate64Decoder; + #[cfg(feature = "bzip2")] use bzip2::read::BzDecoder; @@ -32,15 +37,19 @@ use zstd::stream::read::Decoder as ZstdDecoder; /// Provides high level API for reading from a stream. pub(crate) mod stream; +#[cfg(feature = "lzma")] +pub(crate) mod lzma; + // Put the struct declaration in a private module to convince rustdoc to display ZipArchive nicely pub(crate) mod zip_archive { + use std::sync::Arc; + /// Extract immutable data from `ZipArchive` to make it cheap to clone #[derive(Debug)] pub(crate) struct Shared { - pub(super) files: Vec, - pub(super) names_map: super::HashMap, + pub(crate) files: super::IndexMap, super::ZipFileData>, pub(super) offset: u64, - pub(super) comment: Vec, + pub(super) dir_start: u64, } /// ZIP archive reader @@ -57,7 +66,7 @@ pub(crate) mod zip_archive { /// for i in 0..zip.len() { /// let mut file = zip.by_index(i)?; /// println!("Filename: {}", file.name()); - /// std::io::copy(&mut file, &mut std::io::stdout()); + /// std::io::copy(&mut file, &mut std::io::stdout())?; /// } /// /// Ok(()) @@ -66,13 +75,20 @@ pub(crate) mod zip_archive { #[derive(Clone, Debug)] pub struct ZipArchive { pub(super) reader: R, - pub(super) shared: super::Arc, + pub(super) shared: Arc, + pub(super) comment: Arc<[u8]>, } } +#[cfg(feature = "lzma")] +use crate::read::lzma::LzmaDecoder; +use crate::result::ZipError::{InvalidPassword, UnsupportedArchive}; +use crate::spec::path_to_string; +use crate::unstable::LittleEndianReadExt; pub use zip_archive::ZipArchive; + #[allow(clippy::large_enum_variant)] -enum CryptoReader<'a> { +pub(crate) enum CryptoReader<'a> { Plaintext(io::Take<&'a mut dyn Read>), ZipCrypto(ZipCryptoReaderValid>), #[cfg(feature = "aes-crypto")] @@ -105,7 +121,7 @@ impl<'a> CryptoReader<'a> { } /// Returns `true` if the data is encrypted using AE2. - pub fn is_ae2_encrypted(&self) -> bool { + pub const fn is_ae2_encrypted(&self) -> bool { #[cfg(feature = "aes-crypto")] return matches!( self, @@ -119,20 +135,20 @@ impl<'a> CryptoReader<'a> { } } -enum ZipFileReader<'a> { +pub(crate) enum ZipFileReader<'a> { NoReader, - Raw(io::Take<&'a mut dyn io::Read>), + Raw(io::Take<&'a mut dyn Read>), Stored(Crc32Reader>), - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] - Deflated(Crc32Reader>>), + #[cfg(feature = "_deflate-any")] + Deflated(Crc32Reader>>), + #[cfg(feature = "deflate64")] + Deflate64(Crc32Reader>>>), #[cfg(feature = "bzip2")] Bzip2(Crc32Reader>>), #[cfg(feature = "zstd")] Zstd(Crc32Reader>>>), + #[cfg(feature = "lzma")] + Lzma(Crc32Reader>>>), } impl<'a> Read for ZipFileReader<'a> { @@ -141,81 +157,95 @@ impl<'a> Read for ZipFileReader<'a> { ZipFileReader::NoReader => panic!("ZipFileReader was in an invalid state"), ZipFileReader::Raw(r) => r.read(buf), ZipFileReader::Stored(r) => r.read(buf), - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] ZipFileReader::Deflated(r) => r.read(buf), + #[cfg(feature = "deflate64")] + ZipFileReader::Deflate64(r) => r.read(buf), #[cfg(feature = "bzip2")] ZipFileReader::Bzip2(r) => r.read(buf), #[cfg(feature = "zstd")] ZipFileReader::Zstd(r) => r.read(buf), + #[cfg(feature = "lzma")] + ZipFileReader::Lzma(r) => r.read(buf), } } } impl<'a> ZipFileReader<'a> { /// Consumes this decoder, returning the underlying reader. - pub fn into_inner(self) -> io::Take<&'a mut dyn Read> { - match self { + pub fn drain(self) { + let mut inner = match self { ZipFileReader::NoReader => panic!("ZipFileReader was in an invalid state"), ZipFileReader::Raw(r) => r, ZipFileReader::Stored(r) => r.into_inner().into_inner(), - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + #[cfg(feature = "_deflate-any")] ZipFileReader::Deflated(r) => r.into_inner().into_inner().into_inner(), + #[cfg(feature = "deflate64")] + ZipFileReader::Deflate64(r) => r.into_inner().into_inner().into_inner().into_inner(), #[cfg(feature = "bzip2")] ZipFileReader::Bzip2(r) => r.into_inner().into_inner().into_inner(), #[cfg(feature = "zstd")] ZipFileReader::Zstd(r) => r.into_inner().finish().into_inner().into_inner(), - } + #[cfg(feature = "lzma")] + ZipFileReader::Lzma(r) => { + // Lzma reader owns its buffer rather than mutably borrowing it, so we have to drop + // it separately + if let Ok(mut remaining) = r.into_inner().finish() { + let _ = copy(&mut remaining, &mut sink()); + } + return; + } + }; + let _ = copy(&mut inner, &mut sink()); } } /// A struct for reading a zip file pub struct ZipFile<'a> { - data: Cow<'a, ZipFileData>, - crypto_reader: Option>, - reader: ZipFileReader<'a>, + pub(crate) data: Cow<'a, ZipFileData>, + pub(crate) crypto_reader: Option>, + pub(crate) reader: ZipFileReader<'a>, } -fn find_content<'a>( +pub(crate) fn find_content<'a>( data: &ZipFileData, reader: &'a mut (impl Read + Seek), ) -> ZipResult> { // Parse local header reader.seek(io::SeekFrom::Start(data.header_start))?; - let signature = reader.read_u32::()?; + let signature = reader.read_u32_le()?; if signature != spec::LOCAL_FILE_HEADER_SIGNATURE { return Err(ZipError::InvalidArchive("Invalid local file header")); } - - reader.seek(io::SeekFrom::Current(22))?; - let file_name_length = reader.read_u16::()? as u64; - let extra_field_length = reader.read_u16::()? as u64; - let magic_and_header = 4 + 22 + 2 + 2; - let data_start = data.header_start + magic_and_header + file_name_length + extra_field_length; - data.data_start.store(data_start); + let data_start = match data.data_start.get() { + None => { + reader.seek(io::SeekFrom::Current(22))?; + let file_name_length = reader.read_u16_le()? as u64; + let extra_field_length = reader.read_u16_le()? as u64; + let magic_and_header = 4 + 22 + 2 + 2; + let data_start = + data.header_start + magic_and_header + file_name_length + extra_field_length; + data.data_start.get_or_init(|| data_start); + data_start + } + Some(start) => *start, + }; reader.seek(io::SeekFrom::Start(data_start))?; Ok((reader as &mut dyn Read).take(data.compressed_size)) } #[allow(clippy::too_many_arguments)] -fn make_crypto_reader<'a>( - compression_method: crate::compression::CompressionMethod, +pub(crate) fn make_crypto_reader<'a>( + compression_method: CompressionMethod, crc32: u32, last_modified_time: DateTime, using_data_descriptor: bool, - reader: io::Take<&'a mut dyn io::Read>, + reader: io::Take<&'a mut dyn Read>, password: Option<&[u8]>, - aes_info: Option<(AesMode, AesVendorVersion)>, + aes_info: Option<(AesMode, AesVendorVersion, CompressionMethod)>, #[cfg(feature = "aes-crypto")] compressed_size: u64, -) -> ZipResult, InvalidPassword>> { +) -> ZipResult> { #[allow(deprecated)] { if let CompressionMethod::Unsupported(_) = compression_method { @@ -231,168 +261,385 @@ fn make_crypto_reader<'a>( )) } #[cfg(feature = "aes-crypto")] - (Some(password), Some((aes_mode, vendor_version))) => { - match AesReader::new(reader, aes_mode, compressed_size).validate(password)? { - None => return Ok(Err(InvalidPassword)), - Some(r) => CryptoReader::Aes { - reader: r, - vendor_version, - }, - } - } + (Some(password), Some((aes_mode, vendor_version, _))) => CryptoReader::Aes { + reader: AesReader::new(reader, aes_mode, compressed_size).validate(password)?, + vendor_version, + }, (Some(password), None) => { let validator = if using_data_descriptor { ZipCryptoValidator::InfoZipMsdosTime(last_modified_time.timepart()) } else { ZipCryptoValidator::PkzipCrc32(crc32) }; - match ZipCryptoReader::new(reader, password).validate(validator)? { - None => return Ok(Err(InvalidPassword)), - Some(r) => CryptoReader::ZipCrypto(r), - } + CryptoReader::ZipCrypto(ZipCryptoReader::new(reader, password).validate(validator)?) } - (None, Some(_)) => return Ok(Err(InvalidPassword)), + (None, Some(_)) => return Err(InvalidPassword), (None, None) => CryptoReader::Plaintext(reader), }; - Ok(Ok(reader)) + Ok(reader) } -fn make_reader( +pub(crate) fn make_reader( compression_method: CompressionMethod, crc32: u32, reader: CryptoReader, -) -> ZipFileReader { +) -> ZipResult { let ae2_encrypted = reader.is_ae2_encrypted(); match compression_method { - CompressionMethod::Stored => { - ZipFileReader::Stored(Crc32Reader::new(reader, crc32, ae2_encrypted)) - } - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] + CompressionMethod::Stored => Ok(ZipFileReader::Stored(Crc32Reader::new( + reader, + crc32, + ae2_encrypted, + ))), + #[cfg(feature = "_deflate-any")] CompressionMethod::Deflated => { let deflate_reader = DeflateDecoder::new(reader); - ZipFileReader::Deflated(Crc32Reader::new(deflate_reader, crc32, ae2_encrypted)) + Ok(ZipFileReader::Deflated(Crc32Reader::new( + deflate_reader, + crc32, + ae2_encrypted, + ))) + } + #[cfg(feature = "deflate64")] + CompressionMethod::Deflate64 => { + let deflate64_reader = Deflate64Decoder::new(reader); + Ok(ZipFileReader::Deflate64(Crc32Reader::new( + deflate64_reader, + crc32, + ae2_encrypted, + ))) } #[cfg(feature = "bzip2")] CompressionMethod::Bzip2 => { let bzip2_reader = BzDecoder::new(reader); - ZipFileReader::Bzip2(Crc32Reader::new(bzip2_reader, crc32, ae2_encrypted)) + Ok(ZipFileReader::Bzip2(Crc32Reader::new( + bzip2_reader, + crc32, + ae2_encrypted, + ))) } #[cfg(feature = "zstd")] CompressionMethod::Zstd => { let zstd_reader = ZstdDecoder::new(reader).unwrap(); - ZipFileReader::Zstd(Crc32Reader::new(zstd_reader, crc32, ae2_encrypted)) + Ok(ZipFileReader::Zstd(Crc32Reader::new( + zstd_reader, + crc32, + ae2_encrypted, + ))) } - _ => panic!("Compression method not supported"), + #[cfg(feature = "lzma")] + CompressionMethod::Lzma => { + let reader = LzmaDecoder::new(reader); + Ok(ZipFileReader::Lzma(Crc32Reader::new( + Box::new(reader), + crc32, + ae2_encrypted, + ))) + } + _ => Err(UnsupportedArchive("Compression method not supported")), } } -impl ZipArchive { - /// Get the directory start offset and number of files. This is done in a - /// separate function to ease the control flow design. - pub(crate) fn get_directory_counts( +pub(crate) struct CentralDirectoryInfo { + pub(crate) archive_offset: u64, + pub(crate) directory_start: u64, + pub(crate) number_of_files: usize, + pub(crate) disk_number: u32, + pub(crate) disk_with_central_directory: u32, +} + +impl ZipArchive { + pub(crate) fn from_finalized_writer( + files: IndexMap, ZipFileData>, + comment: Box<[u8]>, + reader: R, + central_start: u64, + ) -> ZipResult { + let initial_offset = match files.first() { + Some((_, file)) => file.header_start, + None => 0, + }; + let shared = Arc::new(zip_archive::Shared { + files, + offset: initial_offset, + dir_start: central_start, + }); + Ok(Self { + reader, + shared, + comment: comment.into(), + }) + } + + /// Total size of the files in the archive, if it can be known. Doesn't include directories or + /// metadata. + pub fn decompressed_size(&self) -> Option { + let mut total = 0u128; + for file in self.shared.files.values() { + if file.using_data_descriptor { + return None; + } + total = total.checked_add(file.uncompressed_size as u128)?; + } + Some(total) + } +} + +impl ZipArchive { + pub(crate) fn merge_contents( + &mut self, + mut w: W, + ) -> ZipResult, ZipFileData>> { + if self.shared.files.is_empty() { + return Ok(IndexMap::new()); + } + let mut new_files = self.shared.files.clone(); + /* The first file header will probably start at the beginning of the file, but zip doesn't + * enforce that, and executable zips like PEX files will have a shebang line so will + * definitely be greater than 0. + * + * assert_eq!(0, new_files[0].header_start); // Avoid this. + */ + + let new_initial_header_start = w.stream_position()?; + /* Push back file header starts for all entries in the covered files. */ + new_files.values_mut().try_for_each(|f| { + /* This is probably the only really important thing to change. */ + f.header_start = f.header_start.checked_add(new_initial_header_start).ok_or( + ZipError::InvalidArchive("new header start from merge would have been too large"), + )?; + /* This is only ever used internally to cache metadata lookups (it's not part of the + * zip spec), and 0 is the sentinel value. */ + f.central_header_start = 0; + /* This is an atomic variable so it can be updated from another thread in the + * implementation (which is good!). */ + if let Some(old_data_start) = f.data_start.take() { + let new_data_start = old_data_start.checked_add(new_initial_header_start).ok_or( + ZipError::InvalidArchive("new data start from merge would have been too large"), + )?; + f.data_start.get_or_init(|| new_data_start); + } + Ok::<_, ZipError>(()) + })?; + + /* Rewind to the beginning of the file. + * + * NB: we *could* decide to start copying from new_files[0].header_start instead, which + * would avoid copying over e.g. any pex shebangs or other file contents that start before + * the first zip file entry. However, zip files actually shouldn't care about garbage data + * in *between* real entries, since the central directory header records the correct start + * location of each, and keeping track of that math is more complicated logic that will only + * rarely be used, since most zips that get merged together are likely to be produced + * specifically for that purpose (and therefore are unlikely to have a shebang or other + * preface). Finally, this preserves any data that might actually be useful. + */ + self.reader.rewind()?; + /* Find the end of the file data. */ + let length_to_read = self.shared.dir_start; + /* Produce a Read that reads bytes up until the start of the central directory header. + * This "as &mut dyn Read" trick is used elsewhere to avoid having to clone the underlying + * handle, which it really shouldn't need to anyway. */ + let mut limited_raw = (&mut self.reader as &mut dyn Read).take(length_to_read); + /* Copy over file data from source archive directly. */ + io::copy(&mut limited_raw, &mut w)?; + + /* Return the files we've just written to the data stream. */ + Ok(new_files) + } + + fn get_directory_info_zip32( + footer: &spec::CentralDirectoryEnd, + cde_start_pos: u64, + ) -> ZipResult { + // Some zip files have data prepended to them, resulting in the + // offsets all being too small. Get the amount of error by comparing + // the actual file position we found the CDE at with the offset + // recorded in the CDE. + let archive_offset = cde_start_pos + .checked_sub(footer.central_directory_size as u64) + .and_then(|x| x.checked_sub(footer.central_directory_offset as u64)) + .ok_or(ZipError::InvalidArchive( + "Invalid central directory size or offset", + ))?; + + let directory_start = footer.central_directory_offset as u64 + archive_offset; + let number_of_files = footer.number_of_files_on_this_disk as usize; + Ok(CentralDirectoryInfo { + archive_offset, + directory_start, + number_of_files, + disk_number: footer.disk_number as u32, + disk_with_central_directory: footer.disk_with_central_directory as u32, + }) + } + + fn get_directory_info_zip64( reader: &mut R, footer: &spec::CentralDirectoryEnd, cde_start_pos: u64, - ) -> ZipResult<(u64, u64, usize)> { + ) -> ZipResult>> { // See if there's a ZIP64 footer. The ZIP64 locator if present will // have its signature 20 bytes in front of the standard footer. The // standard footer, in turn, is 22+N bytes large, where N is the // comment length. Therefore: - let zip64locator = if reader - .seek(io::SeekFrom::End( - -(20 + 22 + footer.zip_file_comment.len() as i64), - )) - .is_ok() - { - match spec::Zip64CentralDirectoryEndLocator::parse(reader) { - Ok(loc) => Some(loc), - Err(ZipError::InvalidArchive(_)) => { - // No ZIP64 header; that's actually fine. We're done here. - None - } - Err(e) => { - // Yikes, a real problem - return Err(e); - } - } - } else { - // Empty Zip files will have nothing else so this error might be fine. If - // not, we'll find out soon. - None - }; + reader.seek(io::SeekFrom::End( + -(20 + 22 + footer.zip_file_comment.len() as i64), + ))?; + let locator64 = spec::Zip64CentralDirectoryEndLocator::parse(reader)?; - match zip64locator { - None => { - // Some zip files have data prepended to them, resulting in the - // offsets all being too small. Get the amount of error by comparing - // the actual file position we found the CDE at with the offset - // recorded in the CDE. - let archive_offset = cde_start_pos - .checked_sub(footer.central_directory_size as u64) - .and_then(|x| x.checked_sub(footer.central_directory_offset as u64)) - .ok_or(ZipError::InvalidArchive( - "Invalid central directory size or offset", - ))?; + // We need to reassess `archive_offset`. We know where the ZIP64 + // central-directory-end structure *should* be, but unfortunately we + // don't know how to precisely relate that location to our current + // actual offset in the file, since there may be junk at its + // beginning. Therefore we need to perform another search, as in + // read::CentralDirectoryEnd::find_and_parse, except now we search + // forward. There may be multiple results because of Zip64 central-directory signatures in + // ZIP comment data. - let directory_start = footer.central_directory_offset as u64 + archive_offset; - let number_of_files = footer.number_of_files_on_this_disk as usize; - Ok((archive_offset, directory_start, number_of_files)) - } - Some(locator64) => { - // If we got here, this is indeed a ZIP64 file. + let mut results = Vec::new(); - if !footer.record_too_small() - && footer.disk_number as u32 != locator64.disk_with_central_directory - { - return unsupported_zip_error( - "Support for multi-disk files is not implemented", - ); - } - - // We need to reassess `archive_offset`. We know where the ZIP64 - // central-directory-end structure *should* be, but unfortunately we - // don't know how to precisely relate that location to our current - // actual offset in the file, since there may be junk at its - // beginning. Therefore we need to perform another search, as in - // read::CentralDirectoryEnd::find_and_parse, except now we search - // forward. - - let search_upper_bound = cde_start_pos - .checked_sub(60) // minimum size of Zip64CentralDirectoryEnd + Zip64CentralDirectoryEndLocator - .ok_or(ZipError::InvalidArchive( - "File cannot contain ZIP64 central directory end", - ))?; - let (footer, archive_offset) = spec::Zip64CentralDirectoryEnd::find_and_parse( - reader, - locator64.end_of_central_directory_offset, - search_upper_bound, - )?; - - if footer.disk_number != footer.disk_with_central_directory { - return unsupported_zip_error( - "Support for multi-disk files is not implemented", - ); - } - - let directory_start = footer + let search_upper_bound = cde_start_pos + .checked_sub(60) // minimum size of Zip64CentralDirectoryEnd + Zip64CentralDirectoryEndLocator + .ok_or(ZipError::InvalidArchive( + "File cannot contain ZIP64 central directory end", + ))?; + let search_results = spec::Zip64CentralDirectoryEnd::find_and_parse( + reader, + locator64.end_of_central_directory_offset, + search_upper_bound, + )?; + search_results.into_iter().for_each(|(footer64, archive_offset)| { + results.push({ + let directory_start_result = footer64 .central_directory_offset .checked_add(archive_offset) - .ok_or({ - ZipError::InvalidArchive("Invalid central directory size or offset") - })?; + .ok_or(ZipError::InvalidArchive( + "Invalid central directory size or offset", + )); + directory_start_result.and_then(|directory_start| { + if directory_start > search_upper_bound { + Err(ZipError::InvalidArchive( + "Invalid central directory size or offset", + )) + } else if footer64.number_of_files_on_this_disk > footer64.number_of_files { + Err(ZipError::InvalidArchive( + "ZIP64 footer indicates more files on this disk than in the whole archive", + )) + } else if footer64.version_needed_to_extract > footer64.version_made_by { + Err(ZipError::InvalidArchive( + "ZIP64 footer indicates a new version is needed to extract this archive than the \ + version that wrote it", + )) + } else { + Ok(CentralDirectoryInfo { + archive_offset, + directory_start, + number_of_files: footer64.number_of_files as usize, + disk_number: footer64.disk_number, + disk_with_central_directory: footer64.disk_with_central_directory, + }) + } + }) + }); + }); + Ok(results) + } - Ok(( - archive_offset, - directory_start, - footer.number_of_files as usize, - )) + /// Get the directory start offset and number of files. This is done in a + /// separate function to ease the control flow design. + pub(crate) fn get_metadata( + reader: &mut R, + footer: &spec::CentralDirectoryEnd, + cde_start_pos: u64, + ) -> ZipResult { + // Check if file has a zip64 footer + let mut results = Self::get_directory_info_zip64(reader, footer, cde_start_pos) + .unwrap_or_else(|e| vec![Err(e)]); + let zip32_result = Self::get_directory_info_zip32(footer, cde_start_pos); + let mut invalid_errors = Vec::new(); + let mut unsupported_errors = Vec::new(); + let mut ok_results = Vec::new(); + results.iter_mut().for_each(|result| { + if let Ok(central_dir) = result { + if let Ok(zip32_central_dir) = &zip32_result { + // Both zip32 and zip64 footers exist, so check if the zip64 footer is valid; if not, try zip32 + if central_dir.number_of_files != zip32_central_dir.number_of_files + && zip32_central_dir.number_of_files != u16::MAX as usize + { + *result = Err(ZipError::InvalidArchive( + "ZIP32 and ZIP64 file counts don't match", + )); + return; + } + if central_dir.disk_number != zip32_central_dir.disk_number + && zip32_central_dir.disk_number != u16::MAX as u32 + { + *result = Err(ZipError::InvalidArchive( + "ZIP32 and ZIP64 disk numbers don't match", + )); + return; + } + if central_dir.disk_with_central_directory + != zip32_central_dir.disk_with_central_directory + && zip32_central_dir.disk_with_central_directory != u16::MAX as u32 + { + *result = Err(ZipError::InvalidArchive( + "ZIP32 and ZIP64 last-disk numbers don't match", + )); + } + } } + }); + results.push(zip32_result); + results + .into_iter() + .map(|result| { + result.and_then(|dir_info| { + // If the parsed number of files is greater than the offset then + // something fishy is going on and we shouldn't trust number_of_files. + let file_capacity = + if dir_info.number_of_files > dir_info.directory_start as usize { + 0 + } else { + dir_info.number_of_files + }; + let mut files = IndexMap::with_capacity(file_capacity); + reader.seek(io::SeekFrom::Start(dir_info.directory_start))?; + for _ in 0..dir_info.number_of_files { + let file = central_header_to_zip_file(reader, dir_info.archive_offset)?; + files.insert(file.file_name.clone(), file); + } + if dir_info.disk_number != dir_info.disk_with_central_directory { + unsupported_zip_error("Support for multi-disk files is not implemented") + } else { + Ok(Shared { + files, + offset: dir_info.archive_offset, + dir_start: dir_info.directory_start, + }) + } + }) + }) + .for_each(|result| match result { + Err(ZipError::UnsupportedArchive(e)) => { + unsupported_errors.push(ZipError::UnsupportedArchive(e)) + } + Err(e) => invalid_errors.push(e), + Ok(o) => ok_results.push(o), + }); + if ok_results.is_empty() { + return Err(unsupported_errors + .into_iter() + .next() + .unwrap_or_else(|| invalid_errors.into_iter().next().unwrap())); } + let shared = ok_results + .into_iter() + .max_by_key(|shared| shared.dir_start) + .unwrap(); + reader.seek(io::SeekFrom::Start(shared.dir_start))?; + Ok(shared) } /// Read a ZIP archive, collecting the files it contains @@ -400,45 +647,12 @@ impl ZipArchive { /// This uses the central directory record of the ZIP file, and ignores local file headers pub fn new(mut reader: R) -> ZipResult> { let (footer, cde_start_pos) = spec::CentralDirectoryEnd::find_and_parse(&mut reader)?; - - if !footer.record_too_small() && footer.disk_number != footer.disk_with_central_directory { - return unsupported_zip_error("Support for multi-disk files is not implemented"); - } - - let (archive_offset, directory_start, number_of_files) = - Self::get_directory_counts(&mut reader, &footer, cde_start_pos)?; - - // If the parsed number of files is greater than the offset then - // something fishy is going on and we shouldn't trust number_of_files. - let file_capacity = if number_of_files > cde_start_pos as usize { - 0 - } else { - number_of_files - }; - - let mut files = Vec::with_capacity(file_capacity); - let mut names_map = HashMap::with_capacity(file_capacity); - - if reader.seek(io::SeekFrom::Start(directory_start)).is_err() { - return Err(ZipError::InvalidArchive( - "Could not seek to start of central directory", - )); - } - - for _ in 0..number_of_files { - let file = central_header_to_zip_file(&mut reader, archive_offset)?; - names_map.insert(file.file_name.clone(), files.len()); - files.push(file); - } - - let shared = Arc::new(zip_archive::Shared { - files, - names_map, - offset: archive_offset, - comment: footer.zip_file_comment, - }); - - Ok(ZipArchive { reader, shared }) + let shared = Self::get_metadata(&mut reader, &footer, cde_start_pos)?; + Ok(ZipArchive { + reader, + shared: shared.into(), + comment: footer.zip_file_comment.into(), + }) } /// Extract a Zip archive into a directory, overwriting files if they /// already exist. Paths are sanitized with [`ZipFile::enclosed_name`]. @@ -456,7 +670,7 @@ impl ZipArchive { let outpath = directory.as_ref().join(filepath); - if file.name().ends_with('/') { + if file.is_dir() { fs::create_dir_all(&outpath)?; } else { if let Some(p) = outpath.parent() { @@ -499,12 +713,12 @@ impl ZipArchive { /// Get the comment of the zip archive. pub fn comment(&self) -> &[u8] { - &self.shared.comment + &self.comment } /// Returns an iterator over all the file and directory names in this archive. pub fn file_names(&self) -> impl Iterator { - self.shared.names_map.keys().map(|s| s.as_str()) + self.shared.files.keys().map(|s| s.as_ref()) } /// Search for a file entry by name, decrypt with given password @@ -520,29 +734,43 @@ impl ZipArchive { /// There are many passwords out there that will also pass the validity checks /// we are able to perform. This is a weakness of the ZipCrypto algorithm, /// due to its fairly primitive approach to cryptography. - pub fn by_name_decrypt<'a>( - &'a mut self, - name: &str, - password: &[u8], - ) -> ZipResult, InvalidPassword>> { + pub fn by_name_decrypt(&mut self, name: &str, password: &[u8]) -> ZipResult { self.by_name_with_optional_password(name, Some(password)) } /// Search for a file entry by name - pub fn by_name<'a>(&'a mut self, name: &str) -> ZipResult> { - Ok(self.by_name_with_optional_password(name, None)?.unwrap()) + pub fn by_name(&mut self, name: &str) -> ZipResult { + self.by_name_with_optional_password(name, None) + } + + /// Get the index of a file entry by name, if it's present. + #[inline(always)] + pub fn index_for_name(&self, name: &str) -> Option { + self.shared.files.get_index_of(name) + } + + /// Get the index of a file entry by path, if it's present. + #[inline(always)] + pub fn index_for_path>(&self, path: T) -> Option { + self.index_for_name(&path_to_string(path)) + } + + /// Get the name of a file entry, if it's present. + #[inline(always)] + pub fn name_for_index(&self, index: usize) -> Option<&str> { + self.shared + .files + .get_index(index) + .map(|(name, _)| name.as_ref()) } fn by_name_with_optional_password<'a>( &'a mut self, name: &str, password: Option<&[u8]>, - ) -> ZipResult, InvalidPassword>> { - let index = match self.shared.names_map.get(name) { - Some(index) => *index, - None => { - return Err(ZipError::FileNotFound); - } + ) -> ZipResult> { + let Some(index) = self.shared.files.get_index_of(name) else { + return Err(ZipError::FileNotFound); }; self.by_index_with_optional_password(index, password) } @@ -560,46 +788,43 @@ impl ZipArchive { /// There are many passwords out there that will also pass the validity checks /// we are able to perform. This is a weakness of the ZipCrypto algorithm, /// due to its fairly primitive approach to cryptography. - pub fn by_index_decrypt<'a>( - &'a mut self, + pub fn by_index_decrypt( + &mut self, file_number: usize, password: &[u8], - ) -> ZipResult, InvalidPassword>> { + ) -> ZipResult> { self.by_index_with_optional_password(file_number, Some(password)) } /// Get a contained file by index pub fn by_index(&mut self, file_number: usize) -> ZipResult> { - Ok(self - .by_index_with_optional_password(file_number, None)? - .unwrap()) + self.by_index_with_optional_password(file_number, None) } /// Get a contained file by index without decompressing it pub fn by_index_raw(&mut self, file_number: usize) -> ZipResult> { let reader = &mut self.reader; - self.shared - .files - .get(file_number) - .ok_or(ZipError::FileNotFound) - .and_then(move |data| { - Ok(ZipFile { - crypto_reader: None, - reader: ZipFileReader::Raw(find_content(data, reader)?), - data: Cow::Borrowed(data), - }) - }) - } - - fn by_index_with_optional_password<'a>( - &'a mut self, - file_number: usize, - mut password: Option<&[u8]>, - ) -> ZipResult, InvalidPassword>> { - let data = self + let (_, data) = self .shared .files - .get(file_number) + .get_index(file_number) + .ok_or(ZipError::FileNotFound)?; + Ok(ZipFile { + crypto_reader: None, + reader: ZipFileReader::Raw(find_content(data, reader)?), + data: Cow::Borrowed(data), + }) + } + + fn by_index_with_optional_password( + &mut self, + file_number: usize, + mut password: Option<&[u8]>, + ) -> ZipResult> { + let (_, data) = self + .shared + .files + .get_index(file_number) .ok_or(ZipError::FileNotFound)?; match (password, data.encrypted) { @@ -609,7 +834,7 @@ impl ZipArchive { } let limit_reader = find_content(data, &mut self.reader)?; - match make_crypto_reader( + let crypto_reader = make_crypto_reader( data.compression_method, data.crc32, data.last_modified_time, @@ -619,15 +844,12 @@ impl ZipArchive { data.aes_mode, #[cfg(feature = "aes-crypto")] data.compressed_size, - ) { - Ok(Ok(crypto_reader)) => Ok(Ok(ZipFile { - crypto_reader: Some(crypto_reader), - reader: ZipFileReader::NoReader, - data: Cow::Borrowed(data), - })), - Err(e) => Err(e), - Ok(Err(e)) => Ok(Err(e)), - } + )?; + Ok(ZipFile { + crypto_reader: Some(crypto_reader), + reader: ZipFileReader::NoReader, + data: Cow::Borrowed(data), + }) } /// Unwrap and return the inner reader object @@ -638,19 +860,19 @@ impl ZipArchive { } } -fn unsupported_zip_error(detail: &'static str) -> ZipResult { +const fn unsupported_zip_error(detail: &'static str) -> ZipResult { Err(ZipError::UnsupportedArchive(detail)) } /// Parse a central directory entry to collect the information for the file. -pub(crate) fn central_header_to_zip_file( +pub(crate) fn central_header_to_zip_file( reader: &mut R, archive_offset: u64, ) -> ZipResult { let central_header_start = reader.stream_position()?; // Parse central header - let signature = reader.read_u32::()?; + let signature = reader.read_u32_le()?; if signature != spec::CENTRAL_DIRECTORY_HEADER_SIGNATURE { Err(ZipError::InvalidArchive("Invalid Central Directory header")) } else { @@ -664,25 +886,25 @@ fn central_header_to_zip_file_inner( archive_offset: u64, central_header_start: u64, ) -> ZipResult { - let version_made_by = reader.read_u16::()?; - let _version_to_extract = reader.read_u16::()?; - let flags = reader.read_u16::()?; + let version_made_by = reader.read_u16_le()?; + let _version_to_extract = reader.read_u16_le()?; + let flags = reader.read_u16_le()?; let encrypted = flags & 1 == 1; let is_utf8 = flags & (1 << 11) != 0; let using_data_descriptor = flags & (1 << 3) != 0; - let compression_method = reader.read_u16::()?; - let last_mod_time = reader.read_u16::()?; - let last_mod_date = reader.read_u16::()?; - let crc32 = reader.read_u32::()?; - let compressed_size = reader.read_u32::()?; - let uncompressed_size = reader.read_u32::()?; - let file_name_length = reader.read_u16::()? as usize; - let extra_field_length = reader.read_u16::()? as usize; - let file_comment_length = reader.read_u16::()? as usize; - let _disk_number = reader.read_u16::()?; - let _internal_file_attributes = reader.read_u16::()?; - let external_file_attributes = reader.read_u32::()?; - let offset = reader.read_u32::()? as u64; + let compression_method = reader.read_u16_le()?; + let last_mod_time = reader.read_u16_le()?; + let last_mod_date = reader.read_u16_le()?; + let crc32 = reader.read_u32_le()?; + let compressed_size = reader.read_u32_le()?; + let uncompressed_size = reader.read_u32_le()?; + let file_name_length = reader.read_u16_le()? as usize; + let extra_field_length = reader.read_u16_le()? as usize; + let file_comment_length = reader.read_u16_le()? as usize; + let _disk_number = reader.read_u16_le()?; + let _internal_file_attributes = reader.read_u16_le()?; + let external_file_attributes = reader.read_u32_le()?; + let offset = reader.read_u32_le()? as u64; let mut file_name_raw = vec![0; file_name_length]; reader.read_exact(&mut file_name_raw)?; let mut extra_field = vec![0; extra_field_length]; @@ -690,18 +912,18 @@ fn central_header_to_zip_file_inner( let mut file_comment_raw = vec![0; file_comment_length]; reader.read_exact(&mut file_comment_raw)?; - let file_name = match is_utf8 { - true => String::from_utf8_lossy(&file_name_raw).into_owned(), - false => file_name_raw.clone().from_cp437(), + let file_name: Box = match is_utf8 { + true => String::from_utf8_lossy(&file_name_raw).into(), + false => file_name_raw.from_cp437().into(), }; - let file_comment = match is_utf8 { - true => String::from_utf8_lossy(&file_comment_raw).into_owned(), - false => file_comment_raw.from_cp437(), + let file_comment: Box = match is_utf8 { + true => String::from_utf8_lossy(&file_comment_raw).into(), + false => file_comment_raw.from_cp437().into(), }; // Construct the result let mut result = ZipFileData { - system: System::from_u8((version_made_by >> 8) as u8), + system: System::from((version_made_by >> 8) as u8), version_made_by: version_made_by as u8, encrypted, using_data_descriptor, @@ -715,15 +937,19 @@ fn central_header_to_zip_file_inner( compressed_size: compressed_size as u64, uncompressed_size: uncompressed_size as u64, file_name, - file_name_raw, - extra_field, + file_name_raw: file_name_raw.into(), + extra_field: Some(Arc::new(extra_field)), + central_extra_field: None, file_comment, header_start: offset, + extra_data_start: None, central_header_start, - data_start: AtomicU64::new(0), + data_start: OnceLock::new(), external_attributes: external_file_attributes, large_file: false, aes_mode: None, + aes_extra_data_start: 0, + extra_fields: Vec::new(), }; match parse_extra_field(&mut result) { @@ -748,27 +974,30 @@ fn central_header_to_zip_file_inner( } fn parse_extra_field(file: &mut ZipFileData) -> ZipResult<()> { - let mut reader = io::Cursor::new(&file.extra_field); + let Some(extra_field) = &file.extra_field else { + return Ok(()); + }; + let mut reader = io::Cursor::new(extra_field.as_ref()); - while (reader.position() as usize) < file.extra_field.len() { - let kind = reader.read_u16::()?; - let len = reader.read_u16::()?; + while (reader.position() as usize) < extra_field.len() { + let kind = reader.read_u16_le()?; + let len = reader.read_u16_le()?; let mut len_left = len as i64; match kind { // Zip64 extended information extra field 0x0001 => { if file.uncompressed_size == spec::ZIP64_BYTES_THR { file.large_file = true; - file.uncompressed_size = reader.read_u64::()?; + file.uncompressed_size = reader.read_u64_le()?; len_left -= 8; } if file.compressed_size == spec::ZIP64_BYTES_THR { file.large_file = true; - file.compressed_size = reader.read_u64::()?; + file.compressed_size = reader.read_u64_le()?; len_left -= 8; } if file.header_start == spec::ZIP64_BYTES_THR { - file.header_start = reader.read_u64::()?; + file.header_start = reader.read_u64_le()?; len_left -= 8; } } @@ -779,10 +1008,13 @@ fn parse_extra_field(file: &mut ZipFileData) -> ZipResult<()> { "AES extra data field has an unsupported length", )); } - let vendor_version = reader.read_u16::()?; - let vendor_id = reader.read_u16::()?; - let aes_mode = reader.read_u8()?; - let compression_method = reader.read_u16::()?; + let vendor_version = reader.read_u16_le()?; + let vendor_id = reader.read_u16_le()?; + let mut out = [0u8]; + reader.read_exact(&mut out)?; + let aes_mode = out[0]; + #[allow(deprecated)] + let compression_method = CompressionMethod::from_u16(reader.read_u16_le()?); if vendor_id != 0x4541 { return Err(ZipError::InvalidArchive("Invalid AES vendor")); @@ -793,15 +1025,29 @@ fn parse_extra_field(file: &mut ZipFileData) -> ZipResult<()> { _ => return Err(ZipError::InvalidArchive("Invalid AES vendor version")), }; match aes_mode { - 0x01 => file.aes_mode = Some((AesMode::Aes128, vendor_version)), - 0x02 => file.aes_mode = Some((AesMode::Aes192, vendor_version)), - 0x03 => file.aes_mode = Some((AesMode::Aes256, vendor_version)), + 0x01 => { + file.aes_mode = Some((AesMode::Aes128, vendor_version, compression_method)) + } + 0x02 => { + file.aes_mode = Some((AesMode::Aes192, vendor_version, compression_method)) + } + 0x03 => { + file.aes_mode = Some((AesMode::Aes256, vendor_version, compression_method)) + } _ => return Err(ZipError::InvalidArchive("Invalid AES encryption strength")), }; - file.compression_method = { - #[allow(deprecated)] - CompressionMethod::from_u16(compression_method) - }; + file.compression_method = compression_method; + } + 0x5455 => { + // extended timestamp + // https://libzip.org/specifications/extrafld.txt + + file.extra_fields.push(ExtraField::ExtendedTimestamp( + ExtendedTimestamp::try_from_reader(&mut reader, len)?, + )); + + // the reader for ExtendedTimestamp consumes `len` bytes + len_left = 0; } _ => { // Other fields are ignored @@ -818,13 +1064,13 @@ fn parse_extra_field(file: &mut ZipFileData) -> ZipResult<()> { /// Methods for retrieving information on zip files impl<'a> ZipFile<'a> { - fn get_reader(&mut self) -> &mut ZipFileReader<'a> { + fn get_reader(&mut self) -> ZipResult<&mut ZipFileReader<'a>> { if let ZipFileReader::NoReader = self.reader { let data = &self.data; let crypto_reader = self.crypto_reader.take().expect("Invalid reader state"); - self.reader = make_reader(data.compression_method, data.crc32, crypto_reader) + self.reader = make_reader(data.compression_method, data.crc32, crypto_reader)?; } - &mut self.reader + Ok(&mut self.reader) } pub(crate) fn get_raw_reader(&mut self) -> &mut dyn Read { @@ -873,7 +1119,7 @@ impl<'a> ZipFile<'a> { note = "by stripping `..`s from the path, the meaning of paths can change. `mangled_name` can be used if this behaviour is desirable" )] - pub fn sanitized_name(&self) -> ::std::path::PathBuf { + pub fn sanitized_name(&self) -> PathBuf { self.mangled_name() } @@ -889,7 +1135,7 @@ impl<'a> ZipFile<'a> { /// [`ZipFile::enclosed_name`] is the better option in most scenarios. /// /// [`ParentDir`]: `Component::ParentDir` - pub fn mangled_name(&self) -> ::std::path::PathBuf { + pub fn mangled_name(&self) -> PathBuf { self.data.file_name_sanitized() } @@ -903,7 +1149,7 @@ impl<'a> ZipFile<'a> { /// This will read well-formed ZIP files correctly, and is resistant /// to path-based exploits. It is recommended over /// [`ZipFile::mangled_name`]. - pub fn enclosed_name(&self) -> Option<&Path> { + pub fn enclosed_name(&self) -> Option { self.data.enclosed_name() } @@ -935,8 +1181,7 @@ impl<'a> ZipFile<'a> { pub fn is_dir(&self) -> bool { self.name() .chars() - .rev() - .next() + .next_back() .map_or(false, |c| c == '/' || c == '\\') } @@ -956,13 +1201,13 @@ impl<'a> ZipFile<'a> { } /// Get the extra data of the zip header for this file - pub fn extra_data(&self) -> &[u8] { - &self.data.extra_field + pub fn extra_data(&self) -> Option<&[u8]> { + self.data.extra_field.as_ref().map(|v| v.deref().deref()) } /// Get the starting offset of the data of the compressed file pub fn data_start(&self) -> u64 { - self.data.data_start.load() + *self.data.data_start.get().unwrap_or(&0) } /// Get the starting offset of the zip header for this file @@ -973,11 +1218,16 @@ impl<'a> ZipFile<'a> { pub fn central_header_start(&self) -> u64 { self.data.central_header_start } + + /// iterate through all extra fields + pub fn extra_data_fields(&self) -> impl Iterator { + self.data.extra_fields.iter() + } } impl<'a> Read for ZipFile<'a> { fn read(&mut self, buf: &mut [u8]) -> io::Result { - self.get_reader().read(buf) + self.get_reader()?.read(buf) } } @@ -986,29 +1236,20 @@ impl<'a> Drop for ZipFile<'a> { // self.data is Owned, this reader is constructed by a streaming reader. // In this case, we want to exhaust the reader so that the next file is accessible. if let Cow::Owned(_) = self.data { - let mut buffer = [0; 1 << 16]; - // Get the inner `Take` reader so all decryption, decompression and CRC calculation is skipped. - let mut reader: std::io::Take<&mut dyn std::io::Read> = match &mut self.reader { + match &mut self.reader { ZipFileReader::NoReader => { - let innerreader = ::std::mem::replace(&mut self.crypto_reader, None); - innerreader.expect("Invalid reader state").into_inner() + let innerreader = self.crypto_reader.take(); + let _ = copy( + &mut innerreader.expect("Invalid reader state").into_inner(), + &mut sink(), + ); } reader => { - let innerreader = ::std::mem::replace(reader, ZipFileReader::NoReader); - innerreader.into_inner() + let innerreader = std::mem::replace(reader, ZipFileReader::NoReader); + innerreader.drain(); } }; - - loop { - match reader.read(&mut buffer) { - Ok(0) => break, - Ok(_) => (), - Err(e) => { - panic!("Could not consume all of the output of the current ZipFile: {e:?}") - } - } - } } } } @@ -1029,10 +1270,8 @@ impl<'a> Drop for ZipFile<'a> { /// * `comment`: set to an empty string /// * `data_start`: set to 0 /// * `external_attributes`: `unix_mode()`: will return None -pub fn read_zipfile_from_stream<'a, R: io::Read>( - reader: &'a mut R, -) -> ZipResult>> { - let signature = reader.read_u32::()?; +pub fn read_zipfile_from_stream<'a, R: Read>(reader: &'a mut R) -> ZipResult>> { + let signature = reader.read_u32_le()?; match signature { spec::LOCAL_FILE_HEADER_SIGNATURE => (), @@ -1040,33 +1279,33 @@ pub fn read_zipfile_from_stream<'a, R: io::Read>( _ => return Err(ZipError::InvalidArchive("Invalid local file header")), } - let version_made_by = reader.read_u16::()?; - let flags = reader.read_u16::()?; + let version_made_by = reader.read_u16_le()?; + let flags = reader.read_u16_le()?; let encrypted = flags & 1 == 1; let is_utf8 = flags & (1 << 11) != 0; let using_data_descriptor = flags & (1 << 3) != 0; #[allow(deprecated)] - let compression_method = CompressionMethod::from_u16(reader.read_u16::()?); - let last_mod_time = reader.read_u16::()?; - let last_mod_date = reader.read_u16::()?; - let crc32 = reader.read_u32::()?; - let compressed_size = reader.read_u32::()?; - let uncompressed_size = reader.read_u32::()?; - let file_name_length = reader.read_u16::()? as usize; - let extra_field_length = reader.read_u16::()? as usize; + let compression_method = CompressionMethod::from_u16(reader.read_u16_le()?); + let last_mod_time = reader.read_u16_le()?; + let last_mod_date = reader.read_u16_le()?; + let crc32 = reader.read_u32_le()?; + let compressed_size = reader.read_u32_le()?; + let uncompressed_size = reader.read_u32_le()?; + let file_name_length = reader.read_u16_le()? as usize; + let extra_field_length = reader.read_u16_le()? as usize; let mut file_name_raw = vec![0; file_name_length]; reader.read_exact(&mut file_name_raw)?; let mut extra_field = vec![0; extra_field_length]; reader.read_exact(&mut extra_field)?; - let file_name = match is_utf8 { - true => String::from_utf8_lossy(&file_name_raw).into_owned(), - false => file_name_raw.clone().from_cp437(), + let file_name: Box = match is_utf8 { + true => String::from_utf8_lossy(&file_name_raw).into(), + false => file_name_raw.clone().from_cp437().into(), }; let mut result = ZipFileData { - system: System::from_u8((version_made_by >> 8) as u8), + system: System::from((version_made_by >> 8) as u8), version_made_by: version_made_by as u8, encrypted, using_data_descriptor, @@ -1077,13 +1316,15 @@ pub fn read_zipfile_from_stream<'a, R: io::Read>( compressed_size: compressed_size as u64, uncompressed_size: uncompressed_size as u64, file_name, - file_name_raw, - extra_field, - file_comment: String::new(), // file comment is only available in the central directory + file_name_raw: file_name_raw.into(), + extra_field: Some(Arc::new(extra_field)), + central_extra_field: None, + file_comment: String::with_capacity(0).into_boxed_str(), // file comment is only available in the central directory // header_start and data start are not available, but also don't matter, since seeking is // not available. header_start: 0, - data_start: AtomicU64::new(0), + extra_data_start: None, + data_start: OnceLock::new(), central_header_start: 0, // The external_attributes field is only available in the central directory. // We set this to zero, which should be valid as the docs state 'If input came @@ -1091,6 +1332,8 @@ pub fn read_zipfile_from_stream<'a, R: io::Read>( external_attributes: 0, large_file: false, aes_mode: None, + aes_extra_data_start: 0, + extra_fields: Vec::new(), }; match parse_extra_field(&mut result) { @@ -1105,7 +1348,7 @@ pub fn read_zipfile_from_stream<'a, R: io::Read>( return unsupported_zip_error("The file length is not available in the local header"); } - let limit_reader = (reader as &'a mut dyn io::Read).take(result.compressed_size); + let limit_reader = (reader as &'a mut dyn Read).take(result.compressed_size); let result_crc32 = result.crc32; let result_compression_method = result.compression_method; @@ -1119,59 +1362,57 @@ pub fn read_zipfile_from_stream<'a, R: io::Read>( None, #[cfg(feature = "aes-crypto")] result.compressed_size, - )? - .unwrap(); + )?; Ok(Some(ZipFile { data: Cow::Owned(result), crypto_reader: None, - reader: make_reader(result_compression_method, result_crc32, crypto_reader), + reader: make_reader(result_compression_method, result_crc32, crypto_reader)?, })) } #[cfg(test)] mod test { + use crate::ZipArchive; + use std::io::Cursor; + #[test] fn invalid_offset() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/invalid_offset.zip")); - let reader = ZipArchive::new(io::Cursor::new(v)); + let reader = ZipArchive::new(Cursor::new(v)); assert!(reader.is_err()); } #[test] fn invalid_offset2() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/invalid_offset2.zip")); - let reader = ZipArchive::new(io::Cursor::new(v)); + let reader = ZipArchive::new(Cursor::new(v)); assert!(reader.is_err()); } #[test] fn zip64_with_leading_junk() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/zip64_demo.zip")); - let reader = ZipArchive::new(io::Cursor::new(v)).unwrap(); + let reader = ZipArchive::new(Cursor::new(v)).unwrap(); assert_eq!(reader.len(), 1); } #[test] fn zip_contents() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/mimetype.zip")); - let mut reader = ZipArchive::new(io::Cursor::new(v)).unwrap(); + let mut reader = ZipArchive::new(Cursor::new(v)).unwrap(); assert_eq!(reader.comment(), b""); assert_eq!(reader.by_index(0).unwrap().central_header_start(), 77); } @@ -1179,11 +1420,10 @@ mod test { #[test] fn zip_read_streaming() { use super::read_zipfile_from_stream; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/mimetype.zip")); - let mut reader = io::Cursor::new(v); + let mut reader = Cursor::new(v); loop { if read_zipfile_from_stream(&mut reader).unwrap().is_none() { break; @@ -1194,11 +1434,11 @@ mod test { #[test] fn zip_clone() { use super::ZipArchive; - use std::io::{self, Read}; + use std::io::Read; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/mimetype.zip")); - let mut reader1 = ZipArchive::new(io::Cursor::new(v)).unwrap(); + let mut reader1 = ZipArchive::new(Cursor::new(v)).unwrap(); let mut reader2 = reader1.clone(); let mut file1 = reader1.by_index(0).unwrap(); @@ -1235,11 +1475,10 @@ mod test { #[test] fn file_and_dir_predicates() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!("../tests/data/files_and_dirs.zip")); - let mut zip = ZipArchive::new(io::Cursor::new(v)).unwrap(); + let mut zip = ZipArchive::new(Cursor::new(v)).unwrap(); for i in 0..zip.len() { let zip_file = zip.by_index(i).unwrap(); @@ -1252,20 +1491,35 @@ mod test { } } + #[test] + fn zip64_magic_in_filenames() { + let files = vec![ + include_bytes!("../tests/data/zip64_magic_in_filename_1.zip").to_vec(), + include_bytes!("../tests/data/zip64_magic_in_filename_2.zip").to_vec(), + include_bytes!("../tests/data/zip64_magic_in_filename_3.zip").to_vec(), + include_bytes!("../tests/data/zip64_magic_in_filename_4.zip").to_vec(), + include_bytes!("../tests/data/zip64_magic_in_filename_5.zip").to_vec(), + ]; + // Although we don't allow adding files whose names contain the ZIP64 CDB-end or + // CDB-end-locator signatures, we still read them when they aren't genuinely ambiguous. + for file in files { + ZipArchive::new(Cursor::new(file)).unwrap(); + } + } + /// test case to ensure we don't preemptively over allocate based on the /// declared number of files in the CDE of an invalid zip when the number of /// files declared is more than the alleged offset in the CDE #[test] fn invalid_cde_number_of_files_allocation_smaller_offset() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!( "../tests/data/invalid_cde_number_of_files_allocation_smaller_offset.zip" )); - let reader = ZipArchive::new(io::Cursor::new(v)); - assert!(reader.is_err()); + let reader = ZipArchive::new(Cursor::new(v)); + assert!(reader.is_err() || reader.unwrap().is_empty()); } /// test case to ensure we don't preemptively over allocate based on the @@ -1274,13 +1528,45 @@ mod test { #[test] fn invalid_cde_number_of_files_allocation_greater_offset() { use super::ZipArchive; - use std::io; let mut v = Vec::new(); v.extend_from_slice(include_bytes!( "../tests/data/invalid_cde_number_of_files_allocation_greater_offset.zip" )); - let reader = ZipArchive::new(io::Cursor::new(v)); + let reader = ZipArchive::new(Cursor::new(v)); assert!(reader.is_err()); } + + #[cfg(feature = "deflate64")] + #[test] + fn deflate64_index_out_of_bounds() -> std::io::Result<()> { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!( + "../tests/data/raw_deflate64_index_out_of_bounds.zip" + )); + let mut reader = ZipArchive::new(Cursor::new(v))?; + std::io::copy(&mut reader.by_index(0)?, &mut std::io::sink()).expect_err("Invalid file"); + Ok(()) + } + + #[cfg(feature = "deflate64")] + #[test] + fn deflate64_not_enough_space() { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/deflate64_issue_25.zip")); + ZipArchive::new(Cursor::new(v)).expect_err("Invalid file"); + } + + #[cfg(feature = "_deflate-any")] + #[test] + fn test_read_with_data_descriptor() { + use std::io::Read; + + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/data_descriptor.zip")); + let mut reader = ZipArchive::new(Cursor::new(v)).unwrap(); + let mut decompressed = [0u8; 16]; + let mut file = reader.by_index(0).unwrap(); + assert_eq!(file.read(&mut decompressed).unwrap(), 12); + } } diff --git a/src/read/lzma.rs b/src/read/lzma.rs new file mode 100644 index 00000000..04b6edd8 --- /dev/null +++ b/src/read/lzma.rs @@ -0,0 +1,52 @@ +use lzma_rs::decompress::{Options, Stream, UnpackedSize}; +use std::collections::VecDeque; +use std::io::{copy, Error, Read, Result, Write}; + +const COMPRESSED_BYTES_TO_BUFFER: usize = 4096; + +const OPTIONS: Options = Options { + unpacked_size: UnpackedSize::ReadFromHeader, + memlimit: None, + allow_incomplete: true, +}; + +#[derive(Debug)] +pub struct LzmaDecoder { + compressed_reader: R, + stream: Stream>, +} + +impl LzmaDecoder { + pub fn new(inner: R) -> Self { + LzmaDecoder { + compressed_reader: inner, + stream: Stream::new_with_options(&OPTIONS, VecDeque::new()), + } + } + + pub fn finish(mut self) -> Result> { + copy(&mut self.compressed_reader, &mut self.stream)?; + self.stream.finish().map_err(Error::from) + } +} + +impl Read for LzmaDecoder { + fn read(&mut self, buf: &mut [u8]) -> Result { + let mut bytes_read = self.stream.get_output_mut().unwrap().read(buf)?; + while bytes_read < buf.len() { + let mut next_compressed = [0u8; COMPRESSED_BYTES_TO_BUFFER]; + let compressed_bytes_read = self.compressed_reader.read(&mut next_compressed)?; + if compressed_bytes_read == 0 { + break; + } + self.stream + .write_all(&next_compressed[..compressed_bytes_read])?; + bytes_read += self + .stream + .get_output_mut() + .unwrap() + .read(&mut buf[bytes_read..])?; + } + Ok(bytes_read) + } +} diff --git a/src/read/stream.rs b/src/read/stream.rs index 5a01b23f..40cb9efc 100644 --- a/src/read/stream.rs +++ b/src/read/stream.rs @@ -1,21 +1,20 @@ +use crate::unstable::LittleEndianReadExt; use std::fs; use std::io::{self, Read}; -use std::path::Path; +use std::path::{Path, PathBuf}; use super::{ central_header_to_zip_file_inner, read_zipfile_from_stream, spec, ZipError, ZipFile, ZipFileData, ZipResult, }; -use byteorder::{LittleEndian, ReadBytesExt}; - /// Stream decoder for zip. #[derive(Debug)] pub struct ZipStreamReader(R); impl ZipStreamReader { /// Create a new ZipStreamReader - pub fn new(reader: R) -> Self { + pub const fn new(reader: R) -> Self { Self(reader) } } @@ -28,7 +27,7 @@ impl ZipStreamReader { let central_header_start = 0; // Parse central header - let signature = self.0.read_u32::()?; + let signature = self.0.read_u32_le()?; if signature != spec::CENTRAL_DIRECTORY_HEADER_SIGNATURE { Ok(None) } else { @@ -67,7 +66,7 @@ impl ZipStreamReader { let outpath = self.0.join(filepath); - if file.name().ends_with('/') { + if file.is_dir() { fs::create_dir_all(&outpath)?; } else { if let Some(p) = outpath.parent() { @@ -153,16 +152,14 @@ impl ZipStreamFileMetadata { /// Rewrite the path, ignoring any path components with special meaning. /// /// - Absolute paths are made relative - /// - [`ParentDir`]s are ignored + /// - [std::path::Component::ParentDir]s are ignored /// - Truncates the filename at a NULL byte /// /// This is appropriate if you need to be able to extract *something* from /// any archive, but will easily misrepresent trivial paths like /// `foo/../bar` as `foo/bar` (instead of `bar`). Because of this, /// [`ZipFile::enclosed_name`] is the better option in most scenarios. - /// - /// [`ParentDir`]: `Component::ParentDir` - pub fn mangled_name(&self) -> ::std::path::PathBuf { + pub fn mangled_name(&self) -> PathBuf { self.0.file_name_sanitized() } @@ -176,7 +173,7 @@ impl ZipStreamFileMetadata { /// This will read well-formed ZIP files correctly, and is resistant /// to path-based exploits. It is recommended over /// [`ZipFile::mangled_name`]. - pub fn enclosed_name(&self) -> Option<&Path> { + pub fn enclosed_name(&self) -> Option { self.0.enclosed_name() } @@ -184,8 +181,7 @@ impl ZipStreamFileMetadata { pub fn is_dir(&self) -> bool { self.name() .chars() - .rev() - .next() + .next_back() .map_or(false, |c| c == '/' || c == '\\') } @@ -201,11 +197,11 @@ impl ZipStreamFileMetadata { /// Get the starting offset of the data of the compressed file pub fn data_start(&self) -> u64 { - self.0.data_start.load() + *self.0.data_start.get().unwrap_or(&0) } /// Get unix mode for the file - pub fn unix_mode(&self) -> Option { + pub const fn unix_mode(&self) -> Option { self.0.unix_mode() } } @@ -214,7 +210,6 @@ impl ZipStreamFileMetadata { mod test { use super::*; use std::collections::BTreeSet; - use std::io; struct DummyVisitor; impl ZipStreamVisitor for DummyVisitor { diff --git a/src/result.rs b/src/result.rs old mode 100644 new mode 100755 index 00d558cb..391a6a82 --- a/src/result.rs +++ b/src/result.rs @@ -1,64 +1,36 @@ +#![allow(unknown_lints)] // non_local_definitions isn't in Rust 1.70 +#![allow(non_local_definitions)] //! Error types that can be emitted from this library +use displaydoc::Display; +use thiserror::Error; + use std::error::Error; use std::fmt; use std::io; +use std::num::TryFromIntError; /// Generic result type with ZipError as its error variant pub type ZipResult = Result; -/// The given password is wrong -#[derive(Debug)] -pub struct InvalidPassword; - -impl fmt::Display for InvalidPassword { - fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - write!(fmt, "invalid password for file in archive") - } -} - -impl Error for InvalidPassword {} - /// Error type for Zip -#[derive(Debug)] +#[derive(Debug, Display, Error)] +#[non_exhaustive] pub enum ZipError { - /// An Error caused by I/O - Io(io::Error), + /// i/o error: {0} + Io(#[from] io::Error), - /// This file is probably not a zip archive + /// invalid Zip archive: {0} InvalidArchive(&'static str), - /// This archive is not supported + /// unsupported Zip archive: {0} UnsupportedArchive(&'static str), - /// The requested file could not be found in the archive + /// specified file not found in archive FileNotFound, -} -impl From for ZipError { - fn from(err: io::Error) -> ZipError { - ZipError::Io(err) - } -} - -impl fmt::Display for ZipError { - fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - match self { - ZipError::Io(err) => write!(fmt, "{err}"), - ZipError::InvalidArchive(err) => write!(fmt, "invalid Zip archive: {err}"), - ZipError::UnsupportedArchive(err) => write!(fmt, "unsupported Zip archive: {err}"), - ZipError::FileNotFound => write!(fmt, "specified file not found in archive"), - } - } -} - -impl Error for ZipError { - fn source(&self) -> Option<&(dyn Error + 'static)> { - match self { - ZipError::Io(err) => Some(err), - _ => None, - } - } + /// The password provided is incorrect + InvalidPassword, } impl ZipError { @@ -78,7 +50,15 @@ impl ZipError { impl From for io::Error { fn from(err: ZipError) -> io::Error { - io::Error::new(io::ErrorKind::Other, err) + let kind = match &err { + ZipError::Io(err) => err.kind(), + ZipError::InvalidArchive(_) => io::ErrorKind::InvalidData, + ZipError::UnsupportedArchive(_) => io::ErrorKind::Unsupported, + ZipError::FileNotFound => io::ErrorKind::NotFound, + ZipError::InvalidPassword => io::ErrorKind::InvalidInput, + }; + + io::Error::new(kind, err) } } @@ -86,6 +66,13 @@ impl From for io::Error { #[derive(Debug)] pub struct DateTimeRangeError; +// TryFromIntError is also an out-of-range error. +impl From for DateTimeRangeError { + fn from(_value: TryFromIntError) -> Self { + DateTimeRangeError + } +} + impl fmt::Display for DateTimeRangeError { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { write!( diff --git a/src/spec.rs b/src/spec.rs index 1d8cb0a6..89481faf 100644 --- a/src/spec.rs +++ b/src/spec.rs @@ -1,13 +1,16 @@ use crate::result::{ZipError, ZipResult}; -use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +use crate::unstable::{LittleEndianReadExt, LittleEndianWriteExt}; +use core::mem::size_of_val; +use std::borrow::Cow; use std::io; use std::io::prelude::*; +use std::path::{Component, Path, MAIN_SEPARATOR}; pub const LOCAL_FILE_HEADER_SIGNATURE: u32 = 0x04034b50; pub const CENTRAL_DIRECTORY_HEADER_SIGNATURE: u32 = 0x02014b50; -const CENTRAL_DIRECTORY_END_SIGNATURE: u32 = 0x06054b50; +pub(crate) const CENTRAL_DIRECTORY_END_SIGNATURE: u32 = 0x06054b50; pub const ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE: u32 = 0x06064b50; -const ZIP64_CENTRAL_DIRECTORY_END_LOCATOR_SIGNATURE: u32 = 0x07064b50; +pub(crate) const ZIP64_CENTRAL_DIRECTORY_END_LOCATOR_SIGNATURE: u32 = 0x07064b50; pub const ZIP64_BYTES_THR: u64 = u32::MAX as u64; pub const ZIP64_ENTRY_THR: usize = u16::MAX as usize; @@ -19,35 +22,23 @@ pub struct CentralDirectoryEnd { pub number_of_files: u16, pub central_directory_size: u32, pub central_directory_offset: u32, - pub zip_file_comment: Vec, + pub zip_file_comment: Box<[u8]>, } impl CentralDirectoryEnd { - // Per spec 4.4.1.4 - a CentralDirectoryEnd field might be insufficient to hold the - // required data. In this case the file SHOULD contain a ZIP64 format record - // and the field of this record will be set to -1 - pub(crate) fn record_too_small(&self) -> bool { - self.disk_number == 0xFFFF - || self.disk_with_central_directory == 0xFFFF - || self.number_of_files_on_this_disk == 0xFFFF - || self.number_of_files == 0xFFFF - || self.central_directory_size == 0xFFFFFFFF - || self.central_directory_offset == 0xFFFFFFFF - } - pub fn parse(reader: &mut T) -> ZipResult { - let magic = reader.read_u32::()?; + let magic = reader.read_u32_le()?; if magic != CENTRAL_DIRECTORY_END_SIGNATURE { return Err(ZipError::InvalidArchive("Invalid digital signature header")); } - let disk_number = reader.read_u16::()?; - let disk_with_central_directory = reader.read_u16::()?; - let number_of_files_on_this_disk = reader.read_u16::()?; - let number_of_files = reader.read_u16::()?; - let central_directory_size = reader.read_u32::()?; - let central_directory_offset = reader.read_u32::()?; - let zip_file_comment_length = reader.read_u16::()? as usize; - let mut zip_file_comment = vec![0; zip_file_comment_length]; + let disk_number = reader.read_u16_le()?; + let disk_with_central_directory = reader.read_u16_le()?; + let number_of_files_on_this_disk = reader.read_u16_le()?; + let number_of_files = reader.read_u16_le()?; + let central_directory_size = reader.read_u32_le()?; + let central_directory_offset = reader.read_u32_le()?; + let zip_file_comment_length = reader.read_u16_le()? as usize; + let mut zip_file_comment = vec![0; zip_file_comment_length].into_boxed_slice(); reader.read_exact(&mut zip_file_comment)?; Ok(CentralDirectoryEnd { @@ -61,14 +52,13 @@ impl CentralDirectoryEnd { }) } - pub fn find_and_parse( - reader: &mut T, - ) -> ZipResult<(CentralDirectoryEnd, u64)> { + pub fn find_and_parse(reader: &mut T) -> ZipResult<(CentralDirectoryEnd, u64)> { const HEADER_SIZE: u64 = 22; + const MAX_HEADER_AND_COMMENT_SIZE: u64 = 66000; const BYTES_BETWEEN_MAGIC_AND_COMMENT_SIZE: u64 = HEADER_SIZE - 6; let file_length = reader.seek(io::SeekFrom::End(0))?; - let search_upper_bound = file_length.saturating_sub(HEADER_SIZE + ::std::u16::MAX as u64); + let search_upper_bound = file_length.saturating_sub(MAX_HEADER_AND_COMMENT_SIZE); if file_length < HEADER_SIZE { return Err(ZipError::InvalidArchive("Invalid zip header")); @@ -76,15 +66,23 @@ impl CentralDirectoryEnd { let mut pos = file_length - HEADER_SIZE; while pos >= search_upper_bound { + let mut have_signature = false; reader.seek(io::SeekFrom::Start(pos))?; - if reader.read_u32::()? == CENTRAL_DIRECTORY_END_SIGNATURE { + if reader.read_u32_le()? == CENTRAL_DIRECTORY_END_SIGNATURE { + have_signature = true; reader.seek(io::SeekFrom::Current( BYTES_BETWEEN_MAGIC_AND_COMMENT_SIZE as i64, ))?; let cde_start_pos = reader.seek(io::SeekFrom::Start(pos))?; - return CentralDirectoryEnd::parse(reader).map(|cde| (cde, cde_start_pos)); + if let Ok(end_header) = CentralDirectoryEnd::parse(reader) { + return Ok((end_header, cde_start_pos)); + } } - pos = match pos.checked_sub(1) { + pos = match pos.checked_sub(if have_signature { + size_of_val(&CENTRAL_DIRECTORY_END_SIGNATURE) as u64 + } else { + 1 + }) { Some(p) => p, None => break, }; @@ -95,14 +93,14 @@ impl CentralDirectoryEnd { } pub fn write(&self, writer: &mut T) -> ZipResult<()> { - writer.write_u32::(CENTRAL_DIRECTORY_END_SIGNATURE)?; - writer.write_u16::(self.disk_number)?; - writer.write_u16::(self.disk_with_central_directory)?; - writer.write_u16::(self.number_of_files_on_this_disk)?; - writer.write_u16::(self.number_of_files)?; - writer.write_u32::(self.central_directory_size)?; - writer.write_u32::(self.central_directory_offset)?; - writer.write_u16::(self.zip_file_comment.len() as u16)?; + writer.write_u32_le(CENTRAL_DIRECTORY_END_SIGNATURE)?; + writer.write_u16_le(self.disk_number)?; + writer.write_u16_le(self.disk_with_central_directory)?; + writer.write_u16_le(self.number_of_files_on_this_disk)?; + writer.write_u16_le(self.number_of_files)?; + writer.write_u32_le(self.central_directory_size)?; + writer.write_u32_le(self.central_directory_offset)?; + writer.write_u16_le(self.zip_file_comment.len() as u16)?; writer.write_all(&self.zip_file_comment)?; Ok(()) } @@ -116,15 +114,15 @@ pub struct Zip64CentralDirectoryEndLocator { impl Zip64CentralDirectoryEndLocator { pub fn parse(reader: &mut T) -> ZipResult { - let magic = reader.read_u32::()?; + let magic = reader.read_u32_le()?; if magic != ZIP64_CENTRAL_DIRECTORY_END_LOCATOR_SIGNATURE { return Err(ZipError::InvalidArchive( "Invalid zip64 locator digital signature header", )); } - let disk_with_central_directory = reader.read_u32::()?; - let end_of_central_directory_offset = reader.read_u64::()?; - let number_of_disks = reader.read_u32::()?; + let disk_with_central_directory = reader.read_u32_le()?; + let end_of_central_directory_offset = reader.read_u64_le()?; + let number_of_disks = reader.read_u32_le()?; Ok(Zip64CentralDirectoryEndLocator { disk_with_central_directory, @@ -134,10 +132,10 @@ impl Zip64CentralDirectoryEndLocator { } pub fn write(&self, writer: &mut T) -> ZipResult<()> { - writer.write_u32::(ZIP64_CENTRAL_DIRECTORY_END_LOCATOR_SIGNATURE)?; - writer.write_u32::(self.disk_with_central_directory)?; - writer.write_u64::(self.end_of_central_directory_offset)?; - writer.write_u32::(self.number_of_disks)?; + writer.write_u32_le(ZIP64_CENTRAL_DIRECTORY_END_LOCATOR_SIGNATURE)?; + writer.write_u32_le(self.disk_with_central_directory)?; + writer.write_u64_le(self.end_of_central_directory_offset)?; + writer.write_u32_le(self.number_of_disks)?; Ok(()) } } @@ -155,32 +153,34 @@ pub struct Zip64CentralDirectoryEnd { } impl Zip64CentralDirectoryEnd { - pub fn find_and_parse( + pub fn find_and_parse( reader: &mut T, nominal_offset: u64, search_upper_bound: u64, - ) -> ZipResult<(Zip64CentralDirectoryEnd, u64)> { - let mut pos = nominal_offset; + ) -> ZipResult> { + let mut results = Vec::new(); + let mut pos = search_upper_bound; - while pos <= search_upper_bound { + while pos >= nominal_offset { + let mut have_signature = false; reader.seek(io::SeekFrom::Start(pos))?; - - if reader.read_u32::()? == ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE { + if reader.read_u32_le()? == ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE { + have_signature = true; let archive_offset = pos - nominal_offset; - let _record_size = reader.read_u64::()?; + let _record_size = reader.read_u64_le()?; // We would use this value if we did anything with the "zip64 extensible data sector". - let version_made_by = reader.read_u16::()?; - let version_needed_to_extract = reader.read_u16::()?; - let disk_number = reader.read_u32::()?; - let disk_with_central_directory = reader.read_u32::()?; - let number_of_files_on_this_disk = reader.read_u64::()?; - let number_of_files = reader.read_u64::()?; - let central_directory_size = reader.read_u64::()?; - let central_directory_offset = reader.read_u64::()?; + let version_made_by = reader.read_u16_le()?; + let version_needed_to_extract = reader.read_u16_le()?; + let disk_number = reader.read_u32_le()?; + let disk_with_central_directory = reader.read_u32_le()?; + let number_of_files_on_this_disk = reader.read_u64_le()?; + let number_of_files = reader.read_u64_le()?; + let central_directory_size = reader.read_u64_le()?; + let central_directory_offset = reader.read_u64_le()?; - return Ok(( + results.push(( Zip64CentralDirectoryEnd { version_made_by, version_needed_to_extract, @@ -194,26 +194,82 @@ impl Zip64CentralDirectoryEnd { archive_offset, )); } - - pos += 1; + pos = match pos.checked_sub(if have_signature { + size_of_val(&ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE) as u64 + } else { + 1 + }) { + None => break, + Some(p) => p, + } + } + if results.is_empty() { + Err(ZipError::InvalidArchive( + "Could not find ZIP64 central directory end", + )) + } else { + Ok(results) } - - Err(ZipError::InvalidArchive( - "Could not find ZIP64 central directory end", - )) } pub fn write(&self, writer: &mut T) -> ZipResult<()> { - writer.write_u32::(ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE)?; - writer.write_u64::(44)?; // record size - writer.write_u16::(self.version_made_by)?; - writer.write_u16::(self.version_needed_to_extract)?; - writer.write_u32::(self.disk_number)?; - writer.write_u32::(self.disk_with_central_directory)?; - writer.write_u64::(self.number_of_files_on_this_disk)?; - writer.write_u64::(self.number_of_files)?; - writer.write_u64::(self.central_directory_size)?; - writer.write_u64::(self.central_directory_offset)?; + writer.write_u32_le(ZIP64_CENTRAL_DIRECTORY_END_SIGNATURE)?; + writer.write_u64_le(44)?; // record size + writer.write_u16_le(self.version_made_by)?; + writer.write_u16_le(self.version_needed_to_extract)?; + writer.write_u32_le(self.disk_number)?; + writer.write_u32_le(self.disk_with_central_directory)?; + writer.write_u64_le(self.number_of_files_on_this_disk)?; + writer.write_u64_le(self.number_of_files)?; + writer.write_u64_le(self.central_directory_size)?; + writer.write_u64_le(self.central_directory_offset)?; Ok(()) } } + +/// Converts a path to the ZIP format (forward-slash-delimited and normalized). +pub(crate) fn path_to_string>(path: T) -> Box { + let mut maybe_original = None; + if let Some(original) = path.as_ref().to_str() { + if (MAIN_SEPARATOR == '/' || !original[1..].contains(MAIN_SEPARATOR)) + && !original.ends_with('.') + && !original.starts_with(['.', MAIN_SEPARATOR]) + && !original.starts_with(['.', '.', MAIN_SEPARATOR]) + && !original.contains([MAIN_SEPARATOR, MAIN_SEPARATOR]) + && !original.contains([MAIN_SEPARATOR, '.', MAIN_SEPARATOR]) + && !original.contains([MAIN_SEPARATOR, '.', '.', MAIN_SEPARATOR]) + { + if original.starts_with(MAIN_SEPARATOR) { + maybe_original = Some(&original[1..]); + } else { + maybe_original = Some(original); + } + } + } + let mut recreate = maybe_original.is_none(); + let mut normalized_components = Vec::new(); + + for component in path.as_ref().components() { + match component { + Component::Normal(os_str) => match os_str.to_str() { + Some(valid_str) => normalized_components.push(Cow::Borrowed(valid_str)), + None => { + recreate = true; + normalized_components.push(os_str.to_string_lossy()); + } + }, + Component::ParentDir => { + recreate = true; + normalized_components.pop(); + } + _ => { + recreate = true; + } + } + } + if recreate { + normalized_components.join("/").into() + } else { + maybe_original.unwrap().into() + } +} diff --git a/src/types.rs b/src/types.rs index c3d0a45d..00a851da 100644 --- a/src/types.rs +++ b/src/types.rs @@ -1,74 +1,49 @@ //! Types that specify what is contained in a ZIP. +use path::{Component, Path, PathBuf}; use std::path; +use std::sync::{Arc, OnceLock}; -#[cfg(not(any( - all(target_arch = "arm", target_pointer_width = "32"), - target_arch = "mips", - target_arch = "powerpc" -)))] -use std::sync::atomic; -#[cfg(not(feature = "time"))] -use std::time::SystemTime; +#[cfg(feature = "chrono")] +use chrono::{Datelike, NaiveDate, NaiveDateTime, NaiveTime, Timelike}; #[cfg(doc)] use {crate::read::ZipFile, crate::write::FileOptions}; -mod ffi { +pub(crate) mod ffi { pub const S_IFDIR: u32 = 0o0040000; pub const S_IFREG: u32 = 0o0100000; } -#[cfg(any( - all(target_arch = "arm", target_pointer_width = "32"), - target_arch = "mips", - target_arch = "powerpc" -))] -mod atomic { - use crossbeam_utils::sync::ShardedLock; - pub use std::sync::atomic::Ordering; - - #[derive(Debug, Default)] - pub struct AtomicU64 { - value: ShardedLock, - } - - impl AtomicU64 { - pub fn new(v: u64) -> Self { - Self { - value: ShardedLock::new(v), - } - } - pub fn get_mut(&mut self) -> &mut u64 { - self.value.get_mut().unwrap() - } - pub fn load(&self, _: Ordering) -> u64 { - *self.value.read().unwrap() - } - pub fn store(&self, value: u64, _: Ordering) { - *self.value.write().unwrap() = value; - } - } -} - -#[cfg(feature = "time")] +use crate::extra_fields::ExtraField; use crate::result::DateTimeRangeError; +use crate::types::ffi::S_IFDIR; +use crate::CompressionMethod; #[cfg(feature = "time")] use time::{error::ComponentRange, Date, Month, OffsetDateTime, PrimitiveDateTime, Time}; #[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[repr(u8)] pub enum System { Dos = 0, Unix = 3, Unknown, } -impl System { - pub fn from_u8(system: u8) -> System { - use self::System::*; - +impl From for System { + fn from(system: u8) -> Self { match system { - 0 => Dos, - 3 => Unix, - _ => Unknown, + 0 => Self::Dos, + 3 => Self::Unix, + _ => Self::Unknown, + } + } +} + +impl From for u8 { + fn from(system: System) -> Self { + match system { + System::Dos => 0, + System::Unix => 3, + System::Unknown => 4, } } } @@ -100,7 +75,51 @@ pub struct DateTime { second: u8, } -impl ::std::default::Default for DateTime { +#[cfg(fuzzing)] +impl arbitrary::Arbitrary<'_> for DateTime { + fn arbitrary(u: &mut arbitrary::Unstructured) -> arbitrary::Result { + Ok(DateTime { + year: u.int_in_range(1980..=2107)?, + month: u.int_in_range(1..=12)?, + day: u.int_in_range(1..=31)?, + hour: u.int_in_range(0..=23)?, + minute: u.int_in_range(0..=59)?, + second: u.int_in_range(0..=60)?, + }) + } +} + +#[cfg(feature = "chrono")] +impl TryFrom for DateTime { + type Error = DateTimeRangeError; + + fn try_from(value: NaiveDateTime) -> Result { + DateTime::from_date_and_time( + value.year().try_into()?, + value.month().try_into()?, + value.day().try_into()?, + value.hour().try_into()?, + value.minute().try_into()?, + value.second().try_into()?, + ) + } +} + +#[cfg(feature = "chrono")] +impl TryInto for DateTime { + type Error = DateTimeRangeError; + + fn try_into(self) -> Result { + let date = NaiveDate::from_ymd_opt(self.year.into(), self.month.into(), self.day.into()) + .ok_or(DateTimeRangeError)?; + let time = + NaiveTime::from_hms_opt(self.hour.into(), self.minute.into(), self.second.into()) + .ok_or(DateTimeRangeError)?; + Ok(NaiveDateTime::new(date, time)) + } +} + +impl Default for DateTime { /// Constructs an 'default' datetime of 1980-01-01 00:00:00 fn default() -> DateTime { DateTime { @@ -116,7 +135,7 @@ impl ::std::default::Default for DateTime { impl DateTime { /// Converts an msdos (u16, u16) pair to a DateTime object - pub fn from_msdos(datepart: u16, timepart: u16) -> DateTime { + pub const fn from_msdos(datepart: u16, timepart: u16) -> DateTime { let seconds = (timepart & 0b0000000000011111) << 1; let minutes = (timepart & 0b0000011111100000) >> 5; let hours = (timepart & 0b1111100000000000) >> 11; @@ -143,7 +162,6 @@ impl DateTime { /// * hour: [0, 23] /// * minute: [0, 59] /// * second: [0, 60] - #[allow(clippy::result_unit_err)] pub fn from_date_and_time( year: u16, month: u8, @@ -151,7 +169,7 @@ impl DateTime { hour: u8, minute: u8, second: u8, - ) -> Result { + ) -> Result { if (1980..=2107).contains(&year) && (1..=12).contains(&month) && (1..=31).contains(&day) @@ -168,27 +186,39 @@ impl DateTime { second, }) } else { - Err(()) + Err(DateTimeRangeError) } } + /// Indicates whether this date and time can be written to a zip archive. + pub fn is_valid(&self) -> bool { + DateTime::from_date_and_time( + self.year, + self.month, + self.day, + self.hour, + self.minute, + self.second, + ) + .is_ok() + } + #[cfg(feature = "time")] /// Converts a OffsetDateTime object to a DateTime /// /// Returns `Err` when this object is out of bounds - #[allow(clippy::result_unit_err)] #[deprecated(note = "use `DateTime::try_from()`")] - pub fn from_time(dt: OffsetDateTime) -> Result { - dt.try_into().map_err(|_err| ()) + pub fn from_time(dt: OffsetDateTime) -> Result { + dt.try_into().map_err(|_err| DateTimeRangeError) } /// Gets the time portion of this datetime in the msdos representation - pub fn timepart(&self) -> u16 { + pub const fn timepart(&self) -> u16 { ((self.second as u16) >> 1) | ((self.minute as u16) << 5) | ((self.hour as u16) << 11) } /// Gets the date portion of this datetime in the msdos representation - pub fn datepart(&self) -> u16 { + pub const fn datepart(&self) -> u16 { (self.day as u16) | ((self.month as u16) << 5) | ((self.year - 1980) << 9) } @@ -202,7 +232,7 @@ impl DateTime { } /// Get the year. There is no epoch, i.e. 2018 will be returned as 2018. - pub fn year(&self) -> u16 { + pub const fn year(&self) -> u16 { self.year } @@ -211,7 +241,7 @@ impl DateTime { /// # Warning /// /// When read from a zip file, this may not be a reasonable value - pub fn month(&self) -> u8 { + pub const fn month(&self) -> u8 { self.month } @@ -220,7 +250,7 @@ impl DateTime { /// # Warning /// /// When read from a zip file, this may not be a reasonable value - pub fn day(&self) -> u8 { + pub const fn day(&self) -> u8 { self.day } @@ -229,7 +259,7 @@ impl DateTime { /// # Warning /// /// When read from a zip file, this may not be a reasonable value - pub fn hour(&self) -> u8 { + pub const fn hour(&self) -> u8 { self.hour } @@ -238,7 +268,7 @@ impl DateTime { /// # Warning /// /// When read from a zip file, this may not be a reasonable value - pub fn minute(&self) -> u8 { + pub const fn minute(&self) -> u8 { self.minute } @@ -247,7 +277,7 @@ impl DateTime { /// # Warning /// /// When read from a zip file, this may not be a reasonable value - pub fn second(&self) -> u8 { + pub const fn second(&self) -> u8 { self.second } } @@ -259,8 +289,8 @@ impl TryFrom for DateTime { fn try_from(dt: OffsetDateTime) -> Result { if dt.year() >= 1980 && dt.year() <= 2107 { Ok(DateTime { - year: (dt.year()) as u16, - month: (dt.month()) as u8, + year: dt.year().try_into()?, + month: dt.month().into(), day: dt.day(), hour: dt.hour(), minute: dt.minute(), @@ -274,37 +304,6 @@ impl TryFrom for DateTime { pub const DEFAULT_VERSION: u8 = 46; -/// A type like `AtomicU64` except it implements `Clone` and has predefined -/// ordering. -/// -/// It uses `Relaxed` ordering because it is not used for synchronisation. -#[derive(Debug)] -pub struct AtomicU64(atomic::AtomicU64); - -impl AtomicU64 { - pub fn new(v: u64) -> Self { - Self(atomic::AtomicU64::new(v)) - } - - pub fn load(&self) -> u64 { - self.0.load(atomic::Ordering::Relaxed) - } - - pub fn store(&self, val: u64) { - self.0.store(val, atomic::Ordering::Relaxed) - } - - pub fn get_mut(&mut self) -> &mut u64 { - self.0.get_mut() - } -} - -impl Clone for AtomicU64 { - fn clone(&self) -> Self { - Self(atomic::AtomicU64::new(self.load())) - } -} - /// Structure representing a ZIP file. #[derive(Debug, Clone)] pub struct ZipFileData { @@ -319,7 +318,7 @@ pub struct ZipFileData { /// Compression method used to store the file pub compression_method: crate::compression::CompressionMethod, /// Compression level to store the file - pub compression_level: Option, + pub compression_level: Option, /// Last modified time. This will only have a 2 second precision. pub last_modified_time: DateTime, /// CRC32 checksum @@ -329,31 +328,40 @@ pub struct ZipFileData { /// Size of the file when extracted pub uncompressed_size: u64, /// Name of the file - pub file_name: String, + pub file_name: Box, /// Raw file name. To be used when file_name was incorrectly decoded. - pub file_name_raw: Vec, + pub file_name_raw: Box<[u8]>, /// Extra field usually used for storage expansion - pub extra_field: Vec, + pub extra_field: Option>>, + /// Extra field only written to central directory + pub central_extra_field: Option>>, /// File comment - pub file_comment: String, + pub file_comment: Box, /// Specifies where the local header of the file starts pub header_start: u64, + /// Specifies where the extra data of the file starts + pub extra_data_start: Option, /// Specifies where the central header of the file starts /// /// Note that when this is not known, it is set to 0 pub central_header_start: u64, /// Specifies where the compressed data of the file starts - pub data_start: AtomicU64, + pub data_start: OnceLock, /// External file attributes pub external_attributes: u32, /// Reserve local ZIP64 extra field pub large_file: bool, /// AES mode if applicable - pub aes_mode: Option<(AesMode, AesVendorVersion)>, + pub aes_mode: Option<(AesMode, AesVendorVersion, CompressionMethod)>, + /// Specifies where in the extra data the AES metadata starts + pub aes_extra_data_start: u64, + + /// extra fields, see + pub extra_fields: Vec, } impl ZipFileData { - pub fn file_name_sanitized(&self) -> ::std::path::PathBuf { + pub fn file_name_sanitized(&self) -> PathBuf { let no_null_filename = match self.file_name.find('\0') { Some(index) => &self.file_name[0..index], None => &self.file_name, @@ -363,7 +371,7 @@ impl ZipFileData { // zip files can contain both / and \ as separators regardless of the OS // and as we want to return a sanitized PathBuf that only supports the // OS separator let's convert incompatible separators to compatible ones - let separator = ::std::path::MAIN_SEPARATOR; + let separator = path::MAIN_SEPARATOR; let opposite_separator = match separator { '/' => '\\', _ => '/', @@ -371,34 +379,34 @@ impl ZipFileData { let filename = no_null_filename.replace(&opposite_separator.to_string(), &separator.to_string()); - ::std::path::Path::new(&filename) + Path::new(&filename) .components() - .filter(|component| matches!(*component, ::std::path::Component::Normal(..))) - .fold(::std::path::PathBuf::new(), |mut path, ref cur| { + .filter(|component| matches!(*component, Component::Normal(..))) + .fold(PathBuf::new(), |mut path, ref cur| { path.push(cur.as_os_str()); path }) } - pub(crate) fn enclosed_name(&self) -> Option<&path::Path> { + pub(crate) fn enclosed_name(&self) -> Option { if self.file_name.contains('\0') { return None; } - let path = path::Path::new(&self.file_name); + let path = PathBuf::from(self.file_name.to_string()); let mut depth = 0usize; for component in path.components() { match component { - path::Component::Prefix(_) | path::Component::RootDir => return None, - path::Component::ParentDir => depth = depth.checked_sub(1)?, - path::Component::Normal(_) => depth += 1, - path::Component::CurDir => (), + Component::Prefix(_) | Component::RootDir => return None, + Component::ParentDir => depth = depth.checked_sub(1)?, + Component::Normal(_) => depth += 1, + Component::CurDir => (), } } Some(path) } /// Get unix mode for the file - pub(crate) fn unix_mode(&self) -> Option { + pub(crate) const fn unix_mode(&self) -> Option { if self.external_attributes == 0 { return None; } @@ -422,20 +430,56 @@ impl ZipFileData { } } - pub fn zip64_extension(&self) -> bool { - self.uncompressed_size > 0xFFFFFFFF - || self.compressed_size > 0xFFFFFFFF - || self.header_start > 0xFFFFFFFF - } - + /// PKZIP version needed to open this file (from APPNOTE 4.4.3.2). pub fn version_needed(&self) -> u16 { - // higher versions matched first - match (self.zip64_extension(), self.compression_method) { + let compression_version: u16 = match self.compression_method { + CompressionMethod::Stored => 10, + #[cfg(feature = "_deflate-any")] + CompressionMethod::Deflated => 20, #[cfg(feature = "bzip2")] - (_, crate::compression::CompressionMethod::Bzip2) => 46, - (true, _) => 45, - _ => 20, - } + CompressionMethod::Bzip2 => 46, + #[cfg(feature = "deflate64")] + CompressionMethod::Deflate64 => 21, + #[cfg(feature = "lzma")] + CompressionMethod::Lzma => 63, + // APPNOTE doesn't specify a version for Zstandard + _ => DEFAULT_VERSION as u16, + }; + let crypto_version: u16 = if self.aes_mode.is_some() { + 51 + } else if self.encrypted { + 20 + } else { + 10 + }; + let misc_feature_version: u16 = if self.large_file { + 45 + } else if self + .unix_mode() + .is_some_and(|mode| mode & S_IFDIR == S_IFDIR) + { + // file is directory + 20 + } else { + 10 + }; + compression_version + .max(crypto_version) + .max(misc_feature_version) + } + #[inline(always)] + pub(crate) fn extra_field_len(&self) -> usize { + self.extra_field + .as_ref() + .map(|v| v.len()) + .unwrap_or_default() + } + #[inline(always)] + pub(crate) fn central_extra_field_len(&self) -> usize { + self.central_extra_field + .as_ref() + .map(|v| v.len()) + .unwrap_or_default() } } @@ -444,26 +488,34 @@ impl ZipFileData { /// According to the [specification](https://www.winzip.com/win/en/aes_info.html#winzip11) AE-2 /// does not make use of the CRC check. #[derive(Copy, Clone, Debug)] +#[repr(u16)] pub enum AesVendorVersion { - Ae1, - Ae2, + Ae1 = 0x0001, + Ae2 = 0x0002, } /// AES variant used. #[derive(Copy, Clone, Debug)] +#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))] +#[repr(u8)] pub enum AesMode { - Aes128, - Aes192, - Aes256, + /// 128-bit AES encryption. + Aes128 = 0x01, + /// 192-bit AES encryption. + Aes192 = 0x02, + /// 256-bit AES encryption. + Aes256 = 0x03, } #[cfg(feature = "aes-crypto")] impl AesMode { - pub fn salt_length(&self) -> usize { + /// Length of the salt for the given AES mode. + pub const fn salt_length(&self) -> usize { self.key_length() / 2 } - pub fn key_length(&self) -> usize { + /// Length of the key for the given AES mode. + pub const fn key_length(&self) -> usize { match self { Self::Aes128 => 16, Self::Aes192 => 24, @@ -477,10 +529,14 @@ mod test { #[test] fn system() { use super::System; - assert_eq!(System::Dos as u16, 0u16); - assert_eq!(System::Unix as u16, 3u16); - assert_eq!(System::from_u8(0), System::Dos); - assert_eq!(System::from_u8(3), System::Unix); + assert_eq!(u8::from(System::Dos), 0u8); + assert_eq!(System::Dos as u8, 0u8); + assert_eq!(System::Unix as u8, 3u8); + assert_eq!(u8::from(System::Unix), 3u8); + assert_eq!(System::from(0), System::Dos); + assert_eq!(System::from(3), System::Unix); + assert_eq!(u8::from(System::Unknown), 4u8); + assert_eq!(System::Unknown as u8, 4u8); } #[test] @@ -498,21 +554,22 @@ mod test { crc32: 0, compressed_size: 0, uncompressed_size: 0, - file_name: file_name.clone(), - file_name_raw: file_name.into_bytes(), - extra_field: Vec::new(), - file_comment: String::new(), + file_name: file_name.clone().into_boxed_str(), + file_name_raw: file_name.into_bytes().into_boxed_slice(), + extra_field: None, + central_extra_field: None, + file_comment: String::with_capacity(0).into_boxed_str(), header_start: 0, - data_start: AtomicU64::new(0), + extra_data_start: None, + data_start: OnceLock::new(), central_header_start: 0, external_attributes: 0, large_file: false, aes_mode: None, + aes_extra_data_start: 0, + extra_fields: Vec::new(), }; - assert_eq!( - data.file_name_sanitized(), - ::std::path::PathBuf::from("path/etc/passwd") - ); + assert_eq!(data.file_name_sanitized(), PathBuf::from("path/etc/passwd")); } #[test] diff --git a/src/unstable.rs b/src/unstable.rs index f8b46a97..85f2b396 100644 --- a/src/unstable.rs +++ b/src/unstable.rs @@ -1,20 +1,69 @@ +#![allow(missing_docs)] + +use std::io; +use std::io::{Read, Write}; + /// Provides high level API for reading from a stream. pub mod stream { pub use crate::read::stream::*; } /// Types for creating ZIP archives. pub mod write { - use crate::write::FileOptions; + use crate::write::{FileOptionExtension, FileOptions}; /// Unstable methods for [`FileOptions`]. pub trait FileOptionsExt { /// Write the file with the given password using the deprecated ZipCrypto algorithm. - /// + /// /// This is not recommended for new archives, as ZipCrypto is not secure. fn with_deprecated_encryption(self, password: &[u8]) -> Self; } - impl FileOptionsExt for FileOptions { - fn with_deprecated_encryption(self, password: &[u8]) -> Self { + impl<'k, T: FileOptionExtension> FileOptionsExt for FileOptions<'k, T> { + fn with_deprecated_encryption(self, password: &[u8]) -> FileOptions<'static, T> { self.with_deprecated_encryption(password) } } -} \ No newline at end of file +} + +/// Helper methods for writing unsigned integers in little-endian form. +pub trait LittleEndianWriteExt: Write { + fn write_u16_le(&mut self, input: u16) -> io::Result<()> { + self.write_all(&input.to_le_bytes()) + } + + fn write_u32_le(&mut self, input: u32) -> io::Result<()> { + self.write_all(&input.to_le_bytes()) + } + + fn write_u64_le(&mut self, input: u64) -> io::Result<()> { + self.write_all(&input.to_le_bytes()) + } + + fn write_u128_le(&mut self, input: u128) -> io::Result<()> { + self.write_all(&input.to_le_bytes()) + } +} + +impl LittleEndianWriteExt for W {} + +/// Helper methods for reading unsigned integers in little-endian form. +pub trait LittleEndianReadExt: Read { + fn read_u16_le(&mut self) -> io::Result { + let mut out = [0u8; 2]; + self.read_exact(&mut out)?; + Ok(u16::from_le_bytes(out)) + } + + fn read_u32_le(&mut self) -> io::Result { + let mut out = [0u8; 4]; + self.read_exact(&mut out)?; + Ok(u32::from_le_bytes(out)) + } + + fn read_u64_le(&mut self) -> io::Result { + let mut out = [0u8; 8]; + self.read_exact(&mut out)?; + Ok(u64::from_le_bytes(out)) + } +} + +impl LittleEndianReadExt for R {} diff --git a/src/write.rs b/src/write.rs index 210e5026..63c0a8e2 100644 --- a/src/write.rs +++ b/src/write.rs @@ -1,24 +1,33 @@ //! Types for creating ZIP archives +#[cfg(feature = "aes-crypto")] +use crate::aes::AesWriter; use crate::compression::CompressionMethod; -use crate::read::{central_header_to_zip_file, ZipArchive, ZipFile}; +use crate::read::{find_content, ZipArchive, ZipFile, ZipFileReader}; use crate::result::{ZipError, ZipResult}; use crate::spec; -use crate::types::{AtomicU64, DateTime, System, ZipFileData, DEFAULT_VERSION}; -use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +#[cfg(feature = "aes-crypto")] +use crate::types::AesMode; +use crate::types::{ffi, AesVendorVersion, DateTime, System, ZipFileData, DEFAULT_VERSION}; +#[cfg(any(feature = "_deflate-any", feature = "bzip2", feature = "zstd",))] +use core::num::NonZeroU64; use crc32fast::Hasher; -use std::convert::TryInto; +use indexmap::IndexMap; use std::default::Default; use std::io; use std::io::prelude::*; +use std::io::{BufReader, SeekFrom}; +use std::marker::PhantomData; use std::mem; +use std::str::{from_utf8, Utf8Error}; +use std::sync::{Arc, OnceLock}; #[cfg(any( feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" + feature = "deflate-zlib", + feature = "deflate-zlib-ng" ))] -use flate2::write::DeflateEncoder; +use flate2::{write::DeflateEncoder, Compression}; #[cfg(feature = "bzip2")] use bzip2::write::BzEncoder; @@ -26,41 +35,59 @@ use bzip2::write::BzEncoder; #[cfg(feature = "time")] use time::OffsetDateTime; +#[cfg(feature = "deflate-zopfli")] +use zopfli::Options; + +#[cfg(feature = "deflate-zopfli")] +use std::io::BufWriter; +use std::path::Path; + #[cfg(feature = "zstd")] use zstd::stream::write::Encoder as ZstdEncoder; enum MaybeEncrypted { Unencrypted(W), - Encrypted(crate::zipcrypto::ZipCryptoWriter), + #[cfg(feature = "aes-crypto")] + Aes(crate::aes::AesWriter), + ZipCrypto(crate::zipcrypto::ZipCryptoWriter), } impl Write for MaybeEncrypted { fn write(&mut self, buf: &[u8]) -> io::Result { match self { MaybeEncrypted::Unencrypted(w) => w.write(buf), - MaybeEncrypted::Encrypted(w) => w.write(buf), + #[cfg(feature = "aes-crypto")] + MaybeEncrypted::Aes(w) => w.write(buf), + MaybeEncrypted::ZipCrypto(w) => w.write(buf), } } fn flush(&mut self) -> io::Result<()> { match self { MaybeEncrypted::Unencrypted(w) => w.flush(), - MaybeEncrypted::Encrypted(w) => w.flush(), + #[cfg(feature = "aes-crypto")] + MaybeEncrypted::Aes(w) => w.flush(), + MaybeEncrypted::ZipCrypto(w) => w.flush(), } } } -enum GenericZipWriter { +enum GenericZipWriter { Closed, Storer(MaybeEncrypted), #[cfg(any( feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" + feature = "deflate-zlib", + feature = "deflate-zlib-ng" ))] Deflater(DeflateEncoder>), + #[cfg(feature = "deflate-zopfli")] + ZopfliDeflater(zopfli::DeflateEncoder>), + #[cfg(feature = "deflate-zopfli")] + BufferedZopfliDeflater(BufWriter>>), #[cfg(feature = "bzip2")] Bzip2(BzEncoder>), #[cfg(feature = "zstd")] Zstd(ZstdEncoder<'static, MaybeEncrypted>), } + // Put the struct declaration in a private module to convince rustdoc to display ZipWriter nicely pub(crate) mod zip_writer { use super::*; @@ -74,13 +101,13 @@ pub(crate) mod zip_writer { /// # { /// # use zip::ZipWriter; /// use std::io::Write; - /// use zip::write::FileOptions; + /// use zip::write::SimpleFileOptions; /// /// // We use a buffer here, though you'd normally use a `File` /// let mut buf = [0; 65536]; - /// let mut zip = zip::ZipWriter::new(std::io::Cursor::new(&mut buf[..])); + /// let mut zip = ZipWriter::new(std::io::Cursor::new(&mut buf[..])); /// - /// let options = zip::write::FileOptions::default().compression_method(zip::CompressionMethod::Stored); + /// let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); /// zip.start_file("hello_world.txt", options)?; /// zip.write(b"Hello, World!")?; /// @@ -92,17 +119,26 @@ pub(crate) mod zip_writer { /// # } /// # doit().unwrap(); /// ``` - pub struct ZipWriter { + pub struct ZipWriter { pub(super) inner: GenericZipWriter, - pub(super) files: Vec, + pub(super) files: IndexMap, ZipFileData>, pub(super) stats: ZipWriterStats, pub(super) writing_to_file: bool, - pub(super) writing_to_extra_field: bool, - pub(super) writing_to_central_extra_field_only: bool, pub(super) writing_raw: bool, - pub(super) comment: Vec, + pub(super) comment: Box<[u8]>, + pub(super) flush_on_finish_file: bool, } } +#[doc(inline)] +pub use self::sealed::FileOptionExtension; +use crate::result::ZipError::InvalidArchive; +#[cfg(feature = "lzma")] +use crate::result::ZipError::UnsupportedArchive; +use crate::spec::path_to_string; +use crate::unstable::LittleEndianWriteExt; +use crate::write::GenericZipWriter::{Closed, Storer}; +use crate::zipcrypto::ZipCryptoKeys; +use crate::CompressionMethod::Stored; pub use zip_writer::ZipWriter; #[derive(Default)] @@ -117,25 +153,140 @@ struct ZipRawValues { compressed_size: u64, uncompressed_size: u64, } +mod sealed { + use std::sync::Arc; -/// Metadata for a file to be written -#[derive(Copy, Clone)] -pub struct FileOptions { - compression_method: CompressionMethod, - compression_level: Option, - last_modified_time: DateTime, - permissions: Option, - large_file: bool, - encrypt_with: Option, + use super::ExtendedFileOptions; + + pub trait Sealed {} + /// File options Extensions + #[doc(hidden)] + pub trait FileOptionExtension: Default + Sealed { + /// Extra Data + fn extra_data(&self) -> Option<&Arc>>; + /// Central Extra Data + fn central_extra_data(&self) -> Option<&Arc>>; + } + impl Sealed for () {} + impl FileOptionExtension for () { + fn extra_data(&self) -> Option<&Arc>> { + None + } + fn central_extra_data(&self) -> Option<&Arc>> { + None + } + } + impl Sealed for ExtendedFileOptions {} + + impl FileOptionExtension for ExtendedFileOptions { + fn extra_data(&self) -> Option<&Arc>> { + Some(&self.extra_data) + } + fn central_extra_data(&self) -> Option<&Arc>> { + Some(&self.central_extra_data) + } + } } -impl FileOptions { +#[derive(Copy, Clone, Debug)] +enum EncryptWith<'k> { + #[cfg(feature = "aes-crypto")] + Aes { + mode: AesMode, + password: &'k str, + }, + ZipCrypto(ZipCryptoKeys, PhantomData<&'k ()>), +} + +#[cfg(fuzzing)] +impl<'a> arbitrary::Arbitrary<'a> for EncryptWith<'a> { + fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result { + #[cfg(feature = "aes-crypto")] + if bool::arbitrary(u)? { + return Ok(EncryptWith::Aes { + mode: AesMode::arbitrary(u)?, + password: u.arbitrary::<&str>()?, + }); + } + + Ok(EncryptWith::ZipCrypto( + ZipCryptoKeys::arbitrary(u)?, + PhantomData, + )) + } +} + +/// Metadata for a file to be written +#[derive(Clone, Debug, Copy)] +pub struct FileOptions<'k, T: FileOptionExtension> { + pub(crate) compression_method: CompressionMethod, + pub(crate) compression_level: Option, + pub(crate) last_modified_time: DateTime, + pub(crate) permissions: Option, + pub(crate) large_file: bool, + encrypt_with: Option>, + extended_options: T, + alignment: u16, + #[cfg(feature = "deflate-zopfli")] + pub(super) zopfli_buffer_size: Option, +} +/// Simple File Options. Can be copied and good for simple writing zip files +pub type SimpleFileOptions = FileOptions<'static, ()>; +/// Adds Extra Data and Central Extra Data. It does not implement copy. +pub type FullFileOptions<'k> = FileOptions<'k, ExtendedFileOptions>; +/// The Extension for Extra Data and Central Extra Data +#[derive(Clone, Debug, Default)] +pub struct ExtendedFileOptions { + extra_data: Arc>, + central_extra_data: Arc>, +} + +#[cfg(fuzzing)] +impl<'a> arbitrary::Arbitrary<'a> for FileOptions<'a, ExtendedFileOptions> { + fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result { + let mut options = FullFileOptions { + compression_method: CompressionMethod::arbitrary(u)?, + compression_level: if bool::arbitrary(u)? { + Some(u.int_in_range(0..=24)?) + } else { + None + }, + last_modified_time: DateTime::arbitrary(u)?, + permissions: Option::::arbitrary(u)?, + large_file: bool::arbitrary(u)?, + encrypt_with: Option::::arbitrary(u)?, + alignment: u16::arbitrary(u)?, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, + ..Default::default() + }; + #[cfg(feature = "deflate-zopfli")] + if options.compression_method == CompressionMethod::Deflated && bool::arbitrary(u)? { + options.zopfli_buffer_size = Some(1 << u.int_in_range(9..=30)?); + } + u.arbitrary_loop(Some(0), Some((u16::MAX / 4) as u32), |u| { + options + .add_extra_data( + u16::arbitrary(u)?, + &Vec::::arbitrary(u)?, + bool::arbitrary(u)?, + ) + .map_err(|_| arbitrary::Error::IncorrectFormat)?; + Ok(core::ops::ControlFlow::Continue(())) + })?; + Ok(options) + } +} + +impl<'k, T: FileOptionExtension> FileOptions<'k, T> { /// Set the compression method for the new file /// - /// The default is `CompressionMethod::Deflated`. If the deflate compression feature is - /// disabled, `CompressionMethod::Stored` becomes the default. + /// The default is `CompressionMethod::Deflated` if it is enabled. If not, + /// `CompressionMethod::Bzip2` is the default if it is enabled. If neither `bzip2` nor `deflate` + /// is enabled, `CompressionMethod::Zlib` is the default. If all else fails, + /// `CompressionMethod::Stored` becomes the default and files are written uncompressed. #[must_use] - pub fn compression_method(mut self, method: CompressionMethod) -> FileOptions { + pub const fn compression_method(mut self, method: CompressionMethod) -> Self { self.compression_method = method; self } @@ -145,12 +296,13 @@ impl FileOptions { /// `None` value specifies default compression level. /// /// Range of values depends on compression method: - /// * `Deflated`: 0 - 9. Default is 6 + /// * `Deflated`: 10 - 264 for Zopfli, 0 - 9 for other encoders. Default is 24 if Zopfli is the + /// only encoder, or 6 otherwise. /// * `Bzip2`: 0 - 9. Default is 6 /// * `Zstd`: -7 - 22, with zero being mapped to default level. Default is 3 /// * others: only `None` is allowed #[must_use] - pub fn compression_level(mut self, level: Option) -> FileOptions { + pub const fn compression_level(mut self, level: Option) -> Self { self.compression_level = level; self } @@ -160,7 +312,7 @@ impl FileOptions { /// The default is the current timestamp if the 'time' feature is enabled, and 1980-01-01 /// otherwise #[must_use] - pub fn last_modified_time(mut self, mod_time: DateTime) -> FileOptions { + pub const fn last_modified_time(mut self, mod_time: DateTime) -> Self { self.last_modified_time = mod_time; self } @@ -175,43 +327,120 @@ impl FileOptions { /// higher file mode bits. So it cannot be used to denote an entry as a directory, /// symlink, or other special file type. #[must_use] - pub fn unix_permissions(mut self, mode: u32) -> FileOptions { + pub const fn unix_permissions(mut self, mode: u32) -> Self { self.permissions = Some(mode & 0o777); self } /// Set whether the new file's compressed and uncompressed size is less than 4 GiB. /// - /// If set to `false` and the file exceeds the limit, an I/O error is thrown. If set to `true`, - /// readers will require ZIP64 support and if the file does not exceed the limit, 20 B are - /// wasted. The default is `false`. + /// If set to `false` and the file exceeds the limit, an I/O error is thrown and the file is + /// aborted. If set to `true`, readers will require ZIP64 support and if the file does not + /// exceed the limit, 20 B are wasted. The default is `false`. #[must_use] - pub fn large_file(mut self, large: bool) -> FileOptions { + pub const fn large_file(mut self, large: bool) -> Self { self.large_file = large; self } - pub(crate) fn with_deprecated_encryption(mut self, password: &[u8]) -> FileOptions { - self.encrypt_with = Some(crate::zipcrypto::ZipCryptoKeys::derive(password)); + + pub(crate) fn with_deprecated_encryption(self, password: &[u8]) -> FileOptions<'static, T> { + FileOptions { + encrypt_with: Some(EncryptWith::ZipCrypto( + ZipCryptoKeys::derive(password), + PhantomData, + )), + ..self + } + } + + /// Set the AES encryption parameters. + #[cfg(feature = "aes-crypto")] + pub fn with_aes_encryption(self, mode: AesMode, password: &str) -> FileOptions<'_, T> { + FileOptions { + encrypt_with: Some(EncryptWith::Aes { mode, password }), + ..self + } + } + + /// Sets the size of the buffer used to hold the next block that Zopfli will compress. The + /// larger the buffer, the more effective the compression, but the more memory is required. + /// A value of `None` indicates no buffer, which is recommended only when all non-empty writes + /// are larger than about 32 KiB. + #[must_use] + #[cfg(feature = "deflate-zopfli")] + pub const fn with_zopfli_buffer(mut self, size: Option) -> Self { + self.zopfli_buffer_size = size; + self + } + + /// Returns the compression level currently set. + pub const fn get_compression_level(&self) -> Option { + self.compression_level + } + /// Sets the alignment to the given number of bytes. + #[must_use] + pub const fn with_alignment(mut self, alignment: u16) -> Self { + self.alignment = alignment; self } } +impl<'k> FileOptions<'k, ExtendedFileOptions> { + /// Adds an extra data field. + pub fn add_extra_data( + &mut self, + header_id: u16, + data: &[u8], + central_only: bool, + ) -> ZipResult<()> { + validate_extra_data(header_id, data)?; + let len = data.len() + 4; + if self.extended_options.extra_data.len() + + self.extended_options.central_extra_data.len() + + len + > u16::MAX as usize + { + Err(InvalidArchive( + "Extra data field would be longer than allowed", + )) + } else { + let field = if central_only { + &mut self.extended_options.central_extra_data + } else { + &mut self.extended_options.extra_data + }; + let vec = Arc::get_mut(field); + let vec = match vec { + Some(exclusive) => exclusive, + None => { + *field = Arc::new(field.to_vec()); + Arc::get_mut(field).unwrap() + } + }; + vec.reserve_exact(data.len() + 4); + vec.write_u16_le(header_id)?; + vec.write_u16_le(data.len() as u16)?; + vec.write_all(data)?; + Ok(()) + } + } -impl Default for FileOptions { + /// Removes the extra data fields. + #[must_use] + pub fn clear_extra_data(mut self) -> Self { + if self.extended_options.extra_data.len() > 0 { + self.extended_options.extra_data = Arc::new(vec![]); + } + if self.extended_options.central_extra_data.len() > 0 { + self.extended_options.central_extra_data = Arc::new(vec![]); + } + self + } +} +impl<'k, T: FileOptionExtension> Default for FileOptions<'k, T> { /// Construct a new FileOptions object fn default() -> Self { Self { - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] - compression_method: CompressionMethod::Deflated, - #[cfg(not(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - )))] - compression_method: CompressionMethod::Stored, + compression_method: Default::default(), compression_level: None, #[cfg(feature = "time")] last_modified_time: OffsetDateTime::now_utc().try_into().unwrap_or_default(), @@ -220,11 +449,15 @@ impl Default for FileOptions { permissions: None, large_file: false, encrypt_with: None, + extended_options: T::default(), + alignment: 1, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: Some(1 << 15), } } } -impl Write for ZipWriter { +impl Write for ZipWriter { fn write(&mut self, buf: &[u8]) -> io::Result { if !self.writing_to_file { return Err(io::Error::new( @@ -232,30 +465,29 @@ impl Write for ZipWriter { "No file has been started", )); } + if buf.is_empty() { + return Ok(0); + } match self.inner.ref_mut() { Some(ref mut w) => { - if self.writing_to_extra_field { - self.files.last_mut().unwrap().extra_field.write(buf) - } else { - let write_result = w.write(buf); - if let Ok(count) = write_result { - self.stats.update(&buf[0..count]); - if self.stats.bytes_written > spec::ZIP64_BYTES_THR - && !self.files.last_mut().unwrap().large_file - { - let _inner = mem::replace(&mut self.inner, GenericZipWriter::Closed); - return Err(io::Error::new( - io::ErrorKind::Other, - "Large file option has not been set", - )); - } + let write_result = w.write(buf); + if let Ok(count) = write_result { + self.stats.update(&buf[0..count]); + if self.stats.bytes_written > spec::ZIP64_BYTES_THR + && !self.files.last_mut().unwrap().1.large_file + { + self.abort_file().unwrap(); + return Err(io::Error::new( + io::ErrorKind::Other, + "Large file option has not been set", + )); } - write_result } + write_result } None => Err(io::Error::new( io::ErrorKind::BrokenPipe, - "ZipWriter was already closed", + "write(): ZipWriter was already closed", )), } } @@ -265,7 +497,7 @@ impl Write for ZipWriter { Some(ref mut w) => w.flush(), None => Err(io::Error::new( io::ErrorKind::BrokenPipe, - "ZipWriter was already closed", + "flush(): ZipWriter was already closed", )), } } @@ -278,90 +510,227 @@ impl ZipWriterStats { } } -impl ZipWriter { +impl ZipWriter { /// Initializes the archive from an existing ZIP archive, making it ready for append. pub fn new_append(mut readwriter: A) -> ZipResult> { let (footer, cde_start_pos) = spec::CentralDirectoryEnd::find_and_parse(&mut readwriter)?; - - if footer.disk_number != footer.disk_with_central_directory { - return Err(ZipError::UnsupportedArchive( - "Support for multi-disk files is not implemented", - )); - } - - let (archive_offset, directory_start, number_of_files) = - ZipArchive::get_directory_counts(&mut readwriter, &footer, cde_start_pos)?; - - if readwriter - .seek(io::SeekFrom::Start(directory_start)) - .is_err() - { - return Err(ZipError::InvalidArchive( - "Could not seek to start of central directory", - )); - } - - let files = (0..number_of_files) - .map(|_| central_header_to_zip_file(&mut readwriter, archive_offset)) - .collect::, _>>()?; - - let _ = readwriter.seek(io::SeekFrom::Start(directory_start)); // seek directory_start to overwrite it + let metadata = ZipArchive::get_metadata(&mut readwriter, &footer, cde_start_pos)?; Ok(ZipWriter { - inner: GenericZipWriter::Storer(MaybeEncrypted::Unencrypted(readwriter)), - files, + inner: Storer(MaybeEncrypted::Unencrypted(readwriter)), + files: metadata.files, stats: Default::default(), writing_to_file: false, - writing_to_extra_field: false, - writing_to_central_extra_field_only: false, comment: footer.zip_file_comment, writing_raw: true, // avoid recomputing the last file's header + flush_on_finish_file: false, }) } + + /// `flush_on_finish_file` is designed to support a streaming `inner` that may unload flushed + /// bytes. It flushes a file's header and body once it starts writing another file. A ZipWriter + /// will not try to seek back into where a previous file was written unless + /// either [`ZipWriter::abort_file`] is called while [`ZipWriter::is_writing_file`] returns + /// false, or [`ZipWriter::deep_copy_file`] is called. In the latter case, it will only need to + /// read previously-written files and not overwrite them. + /// + /// Note: when using an `inner` that cannot overwrite flushed bytes, do not wrap it in a + /// [std::io::BufWriter], because that has a [Seek::seek] method that implicitly calls + /// [BufWriter::flush], and ZipWriter needs to seek backward to update each file's header with + /// the size and checksum after writing the body. + /// + /// This setting is false by default. + pub fn set_flush_on_finish_file(&mut self, flush_on_finish_file: bool) { + self.flush_on_finish_file = flush_on_finish_file; + } } -impl ZipWriter { +impl ZipWriter { + /// Adds another copy of a file already in this archive. This will produce a larger but more + /// widely-compatible archive compared to [Self::shallow_copy_file]. Does not copy alignment. + pub fn deep_copy_file(&mut self, src_name: &str, dest_name: &str) -> ZipResult<()> { + self.finish_file()?; + let write_position = self.inner.get_plain().stream_position()?; + let src_index = self.index_by_name(src_name)?; + let src_data = &self.files[src_index]; + let data_start = *src_data.data_start.get().unwrap_or(&0); + let compressed_size = src_data.compressed_size; + debug_assert!(compressed_size <= write_position - data_start); + let uncompressed_size = src_data.uncompressed_size; + + let raw_values = ZipRawValues { + crc32: src_data.crc32, + compressed_size, + uncompressed_size, + }; + let mut reader = BufReader::new(ZipFileReader::Raw(find_content( + src_data, + self.inner.get_plain(), + )?)); + let mut copy = Vec::with_capacity(compressed_size as usize); + reader.read_to_end(&mut copy)?; + drop(reader); + self.inner + .get_plain() + .seek(SeekFrom::Start(write_position))?; + if src_data.extra_field.is_some() || src_data.central_extra_field.is_some() { + let mut options = FileOptions:: { + compression_method: src_data.compression_method, + compression_level: src_data.compression_level, + last_modified_time: src_data.last_modified_time, + permissions: src_data.unix_mode(), + large_file: src_data.large_file, + encrypt_with: None, + extended_options: ExtendedFileOptions { + extra_data: src_data.extra_field.clone().unwrap_or_default(), + central_extra_data: src_data.central_extra_field.clone().unwrap_or_default(), + }, + alignment: 1, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, + }; + if let Some(perms) = src_data.unix_mode() { + options = options.unix_permissions(perms); + } + Self::normalize_options(&mut options); + self.start_entry(dest_name, options, Some(raw_values))?; + } else { + let mut options = FileOptions::<()> { + compression_method: src_data.compression_method, + compression_level: src_data.compression_level, + last_modified_time: src_data.last_modified_time, + permissions: src_data.unix_mode(), + large_file: src_data.large_file, + encrypt_with: None, + extended_options: (), + alignment: 1, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, + }; + if let Some(perms) = src_data.unix_mode() { + options = options.unix_permissions(perms); + } + Self::normalize_options(&mut options); + self.start_entry(dest_name, options, Some(raw_values))?; + } + + self.writing_to_file = true; + self.writing_raw = true; + if let Err(e) = self.write_all(©) { + self.abort_file().unwrap(); + return Err(e.into()); + } + self.finish_file() + } + + /// Like `deep_copy_file`, but uses Path arguments. + /// + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn deep_copy_file_from_path, U: AsRef>( + &mut self, + src_path: T, + dest_path: U, + ) -> ZipResult<()> { + self.deep_copy_file(&path_to_string(src_path), &path_to_string(dest_path)) + } + + /// Write the zip file into the backing stream, then produce a readable archive of that data. + /// + /// This method avoids parsing the central directory records at the end of the stream for + /// a slight performance improvement over running [`ZipArchive::new()`] on the output of + /// [`Self::finish()`]. + /// + ///``` + /// # fn main() -> Result<(), zip::result::ZipError> { + /// use std::io::{Cursor, prelude::*}; + /// use zip::{ZipArchive, ZipWriter, write::SimpleFileOptions}; + /// + /// let buf = Cursor::new(Vec::new()); + /// let mut zip = ZipWriter::new(buf); + /// let options = SimpleFileOptions::default(); + /// zip.start_file("a.txt", options)?; + /// zip.write_all(b"hello\n")?; + /// + /// let mut zip = zip.finish_into_readable()?; + /// let mut s: String = String::new(); + /// zip.by_name("a.txt")?.read_to_string(&mut s)?; + /// assert_eq!(s, "hello\n"); + /// # Ok(()) + /// # } + ///``` + pub fn finish_into_readable(mut self) -> ZipResult> { + let central_start = self.finalize()?; + let inner = mem::replace(&mut self.inner, Closed).unwrap(); + let comment = mem::take(&mut self.comment); + let files = mem::take(&mut self.files); + let archive = ZipArchive::from_finalized_writer(files, comment, inner, central_start)?; + Ok(archive) + } +} + +impl ZipWriter { /// Initializes the archive. /// /// Before writing to this object, the [`ZipWriter::start_file`] function should be called. + /// After a successful write, the file remains open for writing. After a failed write, call + /// [`ZipWriter::is_writing_file`] to determine if the file remains open. pub fn new(inner: W) -> ZipWriter { ZipWriter { - inner: GenericZipWriter::Storer(MaybeEncrypted::Unencrypted(inner)), - files: Vec::new(), + inner: Storer(MaybeEncrypted::Unencrypted(inner)), + files: IndexMap::new(), stats: Default::default(), writing_to_file: false, - writing_to_extra_field: false, - writing_to_central_extra_field_only: false, writing_raw: false, - comment: Vec::new(), + comment: Box::new([]), + flush_on_finish_file: false, } } + /// Returns true if a file is currently open for writing. + pub const fn is_writing_file(&self) -> bool { + self.writing_to_file && !self.inner.is_closed() + } + /// Set ZIP archive comment. pub fn set_comment(&mut self, comment: S) where - S: Into, + S: Into>, { - self.set_raw_comment(comment.into().into()) + self.set_raw_comment(comment.into().into_boxed_bytes()) } /// Set ZIP archive comment. /// /// This sets the raw bytes of the comment. The comment /// is typically expected to be encoded in UTF-8 - pub fn set_raw_comment(&mut self, comment: Vec) { + pub fn set_raw_comment(&mut self, comment: Box<[u8]>) { self.comment = comment; } + /// Get ZIP archive comment. + pub fn get_comment(&mut self) -> Result<&str, Utf8Error> { + from_utf8(self.get_raw_comment()) + } + + /// Get ZIP archive comment. + /// + /// This returns the raw bytes of the comment. The comment + /// is typically expected to be encoded in UTF-8 + pub const fn get_raw_comment(&self) -> &[u8] { + &self.comment + } + /// Start a new file for with the requested options. - fn start_entry( + fn start_entry( &mut self, name: S, - options: FileOptions, + options: FileOptions, raw_values: Option, ) -> ZipResult<()> where - S: Into, + S: Into>, { self.finish_file()?; @@ -371,289 +740,428 @@ impl ZipWriter { uncompressed_size: 0, }); + #[allow(unused_mut)] + let mut extra_field = options.extended_options.extra_data().cloned(); + + // Write AES encryption extra data. + #[allow(unused_mut)] + let mut aes_extra_data_start = 0; + #[cfg(feature = "aes-crypto")] + if let Some(EncryptWith::Aes { .. }) = options.encrypt_with { + const AES_DUMMY_EXTRA_DATA: [u8; 11] = [ + 0x01, 0x99, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ]; + + let extra_data = extra_field.get_or_insert_with(Default::default); + let extra_data = match Arc::get_mut(extra_data) { + Some(exclusive) => exclusive, + None => { + let new = Arc::new(extra_data.to_vec()); + Arc::get_mut(extra_field.insert(new)).unwrap() + } + }; + + if extra_data.len() + AES_DUMMY_EXTRA_DATA.len() > u16::MAX as usize { + let _ = self.abort_file(); + return Err(InvalidArchive("Extra data field is too large")); + } + + aes_extra_data_start = extra_data.len() as u64; + + // We write zero bytes for now since we need to update the data when finishing the + // file. + extra_data.write_all(&AES_DUMMY_EXTRA_DATA)?; + } + { - let writer = self.inner.get_plain(); - let header_start = writer.stream_position()?; + let header_start = self.inner.get_plain().stream_position()?; let permissions = options.permissions.unwrap_or(0o100644); - let mut file = ZipFileData { + let (compression_method, aes_mode) = match options.encrypt_with { + #[cfg(feature = "aes-crypto")] + Some(EncryptWith::Aes { mode, .. }) => ( + CompressionMethod::Aes, + Some((mode, AesVendorVersion::Ae2, options.compression_method)), + ), + _ => (options.compression_method, None), + }; + let file = ZipFileData { system: System::Unix, version_made_by: DEFAULT_VERSION, encrypted: options.encrypt_with.is_some(), using_data_descriptor: false, - compression_method: options.compression_method, + compression_method, compression_level: options.compression_level, last_modified_time: options.last_modified_time, crc32: raw_values.crc32, compressed_size: raw_values.compressed_size, uncompressed_size: raw_values.uncompressed_size, - file_name: String::new(), // Never used for saving + file_name: Box::new([]), // Never used for saving file_name_raw: name.into().bytes().collect(), - extra_field: Vec::new(), - file_comment: String::new(), + extra_field, + central_extra_field: options.extended_options.central_extra_data().cloned(), + file_comment: String::with_capacity(0).into_boxed_str(), header_start, - data_start: AtomicU64::new(0), + extra_data_start: None, + data_start: OnceLock::new(), central_header_start: 0, external_attributes: permissions << 16, large_file: options.large_file, - aes_mode: None, + aes_mode, + aes_extra_data_start, + + extra_fields: Vec::new(), }; - write_local_file_header(writer, &file)?; + let index = self.insert_file_data(file)?; + let file = &mut self.files[index]; + let writer = self.inner.get_plain(); + writer.write_u32_le(spec::LOCAL_FILE_HEADER_SIGNATURE)?; + // version needed to extract + writer.write_u16_le(file.version_needed())?; + // general purpose bit flag + let flag = if !file.file_name.is_ascii() { + 1u16 << 11 + } else { + 0 + } | if file.encrypted { 1u16 << 0 } else { 0 }; + writer.write_u16_le(flag)?; + // Compression method + #[allow(deprecated)] + writer.write_u16_le(file.compression_method.to_u16())?; + // last mod file time and last mod file date + writer.write_u16_le(file.last_modified_time.timepart())?; + writer.write_u16_le(file.last_modified_time.datepart())?; + // crc-32 + writer.write_u32_le(file.crc32)?; + // compressed size and uncompressed size + if file.large_file { + writer.write_u32_le(spec::ZIP64_BYTES_THR as u32)?; + writer.write_u32_le(spec::ZIP64_BYTES_THR as u32)?; + } else { + writer.write_u32_le(file.compressed_size as u32)?; + writer.write_u32_le(file.uncompressed_size as u32)?; + } + // file name length + writer.write_u16_le(file.file_name.as_bytes().len() as u16)?; + // extra field length + let mut extra_field_length = file.extra_field_len(); + if file.large_file { + extra_field_length += 20; + } + if extra_field_length + file.central_extra_field_len() > u16::MAX as usize { + let _ = self.abort_file(); + return Err(InvalidArchive("Extra data field is too large")); + } + let extra_field_length = extra_field_length as u16; + writer.write_u16_le(extra_field_length)?; + // file name + writer.write_all(file.file_name.as_bytes())?; + // zip64 extra field + if file.large_file { + write_local_zip64_extra_field(writer, file)?; + } + if let Some(extra_field) = &file.extra_field { + file.extra_data_start = Some(writer.stream_position()?); + writer.write_all(extra_field)?; + } + let mut header_end = writer.stream_position()?; + if options.alignment > 1 { + let align = options.alignment as u64; + let unaligned_header_bytes = header_end % align; + if unaligned_header_bytes != 0 { + let pad_length = (align - unaligned_header_bytes) as usize; + let Some(new_extra_field_length) = + (pad_length as u16).checked_add(extra_field_length) + else { + let _ = self.abort_file(); + return Err(InvalidArchive( + "Extra data field would be larger than allowed after aligning", + )); + }; + if pad_length >= 4 { + // Add an extra field to the extra_data + let pad_body = vec![0; pad_length - 4]; + writer.write_all(b"za").map_err(ZipError::from)?; // 0x617a + writer + .write_u16_le(pad_body.len() as u16) + .map_err(ZipError::from)?; + writer.write_all(&pad_body).map_err(ZipError::from)?; + } else { + // extra_data padding is too small for an extra field header, so pad with + // zeroes + let pad = vec![0; pad_length]; + writer.write_all(&pad).map_err(ZipError::from)?; + } + header_end = writer.stream_position()?; - let header_end = writer.stream_position()?; + // Update extra field length in local file header. + writer.seek(SeekFrom::Start(file.header_start + 28))?; + writer.write_u16_le(new_extra_field_length)?; + writer.seek(SeekFrom::Start(header_end))?; + debug_assert_eq!(header_end % align, 0); + } + } + match options.encrypt_with { + #[cfg(feature = "aes-crypto")] + Some(EncryptWith::Aes { mode, password }) => { + let aeswriter = AesWriter::new( + mem::replace(&mut self.inner, GenericZipWriter::Closed).unwrap(), + mode, + password.as_bytes(), + )?; + self.inner = GenericZipWriter::Storer(MaybeEncrypted::Aes(aeswriter)); + } + Some(EncryptWith::ZipCrypto(keys, ..)) => { + let mut zipwriter = crate::zipcrypto::ZipCryptoWriter { + writer: mem::replace(&mut self.inner, Closed).unwrap(), + buffer: vec![], + keys, + }; + let crypto_header = [0u8; 12]; + + zipwriter.write_all(&crypto_header)?; + header_end = zipwriter.writer.stream_position()?; + self.inner = Storer(MaybeEncrypted::ZipCrypto(zipwriter)); + } + None => {} + } self.stats.start = header_end; - *file.data_start.get_mut() = header_end; - + debug_assert!(file.data_start.get().is_none()); + file.data_start.get_or_init(|| header_end); + self.writing_to_file = true; self.stats.bytes_written = 0; self.stats.hasher = Hasher::new(); - - self.files.push(file); - } - if let Some(keys) = options.encrypt_with { - let mut zipwriter = crate::zipcrypto::ZipCryptoWriter { writer: core::mem::replace(&mut self.inner, GenericZipWriter::Closed).unwrap(), buffer: vec![], keys }; - let mut crypto_header = [0u8; 12]; - - zipwriter.write_all(&crypto_header)?; - self.inner = GenericZipWriter::Storer(MaybeEncrypted::Encrypted(zipwriter)); } Ok(()) } + fn insert_file_data(&mut self, file: ZipFileData) -> ZipResult { + if self.files.contains_key(&file.file_name) { + return Err(InvalidArchive("Duplicate filename")); + } + let name = file.file_name.to_owned(); + self.files.insert(name.clone(), file); + Ok(self.files.get_index_of(&name).unwrap()) + } + fn finish_file(&mut self) -> ZipResult<()> { - if self.writing_to_extra_field { - // Implicitly calling [`ZipWriter::end_extra_data`] for empty files. - self.end_extra_data()?; - } - self.inner.switch_to(CompressionMethod::Stored, None)?; - match core::mem::replace(&mut self.inner, GenericZipWriter::Closed) { - GenericZipWriter::Storer(MaybeEncrypted::Encrypted(writer)) => { - let crc32 = self.stats.hasher.clone().finalize(); - self.inner = GenericZipWriter::Storer(MaybeEncrypted::Unencrypted(writer.finish(crc32)?)) - } - GenericZipWriter::Storer(w) => self.inner = GenericZipWriter::Storer(w), - _ => unreachable!() + if !self.writing_to_file { + return Ok(()); } + + let make_plain_writer = self.inner.prepare_next_writer( + Stored, + None, + #[cfg(feature = "deflate-zopfli")] + None, + )?; + self.inner.switch_to(make_plain_writer)?; + self.switch_to_non_encrypting_writer()?; let writer = self.inner.get_plain(); if !self.writing_raw { let file = match self.files.last_mut() { None => return Ok(()), - Some(f) => f, + Some((_, f)) => f, }; - file.crc32 = self.stats.hasher.clone().finalize(); file.uncompressed_size = self.stats.bytes_written; let file_end = writer.stream_position()?; + debug_assert!(file_end >= self.stats.start); file.compressed_size = file_end - self.stats.start; + file.crc32 = self.stats.hasher.clone().finalize(); + if let Some(aes_mode) = &mut file.aes_mode { + // We prefer using AE-1 which provides an extra CRC check, but for small files we + // switch to AE-2 to prevent being able to use the CRC value to to reconstruct the + // unencrypted contents. + // + // C.f. https://www.winzip.com/en/support/aes-encryption/#crc-faq + aes_mode.1 = if self.stats.bytes_written < 20 { + file.crc32 = 0; + AesVendorVersion::Ae2 + } else { + AesVendorVersion::Ae1 + } + } + + update_aes_extra_data(writer, file)?; update_local_file_header(writer, file)?; - writer.seek(io::SeekFrom::Start(file_end))?; + writer.seek(SeekFrom::Start(file_end))?; + } + if self.flush_on_finish_file { + if let Err(e) = writer.flush() { + self.abort_file()?; + return Err(e.into()); + } } self.writing_to_file = false; + Ok(()) + } + + fn switch_to_non_encrypting_writer(&mut self) -> Result<(), ZipError> { + match mem::replace(&mut self.inner, Closed) { + #[cfg(feature = "aes-crypto")] + Storer(MaybeEncrypted::Aes(writer)) => { + self.inner = Storer(MaybeEncrypted::Unencrypted(writer.finish()?)); + } + Storer(MaybeEncrypted::ZipCrypto(writer)) => { + let crc32 = self.stats.hasher.clone().finalize(); + self.inner = Storer(MaybeEncrypted::Unencrypted(writer.finish(crc32)?)) + } + Storer(MaybeEncrypted::Unencrypted(w)) => { + self.inner = Storer(MaybeEncrypted::Unencrypted(w)) + } + _ => unreachable!(), + } + Ok(()) + } + + /// Removes the file currently being written from the archive if there is one, or else removes + /// the file most recently written. + pub fn abort_file(&mut self) -> ZipResult<()> { + let (_, last_file) = self.files.pop().ok_or(ZipError::FileNotFound)?; + let make_plain_writer = self.inner.prepare_next_writer( + Stored, + None, + #[cfg(feature = "deflate-zopfli")] + None, + )?; + self.inner.switch_to(make_plain_writer)?; + self.switch_to_non_encrypting_writer()?; + // Make sure this is the last file, and that no shallow copies of it remain; otherwise we'd + // overwrite a valid file and corrupt the archive + let rewind_safe: bool = match last_file.data_start.get() { + None => self.files.is_empty(), + Some(last_file_start) => self.files.values().all(|file| { + file.data_start + .get() + .is_some_and(|start| start < last_file_start) + }), + }; + if rewind_safe { + self.inner + .get_plain() + .seek(SeekFrom::Start(last_file.header_start))?; + } + self.writing_to_file = false; + Ok(()) + } + + /// Create a file in the archive and start writing its' contents. The file must not have the + /// same name as a file already in the archive. + /// + /// The data should be written using the [`Write`] implementation on this [`ZipWriter`] + pub fn start_file( + &mut self, + name: S, + mut options: FileOptions, + ) -> ZipResult<()> + where + S: Into>, + { + Self::normalize_options(&mut options); + let make_new_self = self.inner.prepare_next_writer( + options.compression_method, + options.compression_level, + #[cfg(feature = "deflate-zopfli")] + options.zopfli_buffer_size, + )?; + self.start_entry(name, options, None)?; + if let Err(e) = self.inner.switch_to(make_new_self) { + self.abort_file().unwrap(); + return Err(e); + } self.writing_raw = false; Ok(()) } - /// Create a file in the archive and start writing its' contents. + /* TODO: link to/use Self::finish_into_readable() from https://github.com/zip-rs/zip/pull/400 in + * this docstring. */ + /// Copy over the entire contents of another archive verbatim. /// - /// The data should be written using the [`io::Write`] implementation on this [`ZipWriter`] - pub fn start_file(&mut self, name: S, mut options: FileOptions) -> ZipResult<()> + /// This method extracts file metadata from the `source` archive, then simply performs a single + /// big [`io::copy()`](io::copy) to transfer all the actual file contents without any + /// decompression or decryption. This is more performant than the equivalent operation of + /// calling [`Self::raw_copy_file()`] for each entry from the `source` archive in sequence. + /// + ///``` + /// # fn main() -> Result<(), zip::result::ZipError> { + /// use std::io::{Cursor, prelude::*}; + /// use zip::{ZipArchive, ZipWriter, write::SimpleFileOptions}; + /// + /// let buf = Cursor::new(Vec::new()); + /// let mut zip = ZipWriter::new(buf); + /// zip.start_file("a.txt", SimpleFileOptions::default())?; + /// zip.write_all(b"hello\n")?; + /// let src = ZipArchive::new(zip.finish()?)?; + /// + /// let buf = Cursor::new(Vec::new()); + /// let mut zip = ZipWriter::new(buf); + /// zip.start_file("b.txt", SimpleFileOptions::default())?; + /// zip.write_all(b"hey\n")?; + /// let src2 = ZipArchive::new(zip.finish()?)?; + /// + /// let buf = Cursor::new(Vec::new()); + /// let mut zip = ZipWriter::new(buf); + /// zip.merge_archive(src)?; + /// zip.merge_archive(src2)?; + /// let mut result = ZipArchive::new(zip.finish()?)?; + /// + /// let mut s: String = String::new(); + /// result.by_name("a.txt")?.read_to_string(&mut s)?; + /// assert_eq!(s, "hello\n"); + /// s.clear(); + /// result.by_name("b.txt")?.read_to_string(&mut s)?; + /// assert_eq!(s, "hey\n"); + /// # Ok(()) + /// # } + ///``` + pub fn merge_archive(&mut self, mut source: ZipArchive) -> ZipResult<()> where - S: Into, + R: Read + io::Seek, { + self.finish_file()?; + + /* Ensure we accept the file contents on faith (and avoid overwriting the data). + * See raw_copy_file_rename(). */ + self.writing_to_file = true; + self.writing_raw = true; + + let writer = self.inner.get_plain(); + /* Get the file entries from the source archive. */ + let new_files = source.merge_contents(writer)?; + + /* These file entries are now ours! */ + self.files.extend(new_files); + + Ok(()) + } + + fn normalize_options(options: &mut FileOptions) { if options.permissions.is_none() { options.permissions = Some(0o644); } - *options.permissions.as_mut().unwrap() |= 0o100000; - self.start_entry(name, options, None)?; - self.inner - .switch_to(options.compression_method, options.compression_level)?; - self.writing_to_file = true; - Ok(()) + if !options.last_modified_time.is_valid() { + options.last_modified_time = FileOptions::::default().last_modified_time; + } + *options.permissions.as_mut().unwrap() |= ffi::S_IFREG; } /// Starts a file, taking a Path as argument. /// - /// This function ensures that the '/' path separator is used. It also ignores all non 'Normal' - /// Components, such as a starting '/' or '..' and '.'. - #[deprecated( - since = "0.5.7", - note = "by stripping `..`s from the path, the meaning of paths can change. Use `start_file` instead." - )] - pub fn start_file_from_path( + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn start_file_from_path>( &mut self, - path: &std::path::Path, - options: FileOptions, + path: P, + options: FileOptions, ) -> ZipResult<()> { self.start_file(path_to_string(path), options) } - /// Create an aligned file in the archive and start writing its' contents. - /// - /// Returns the number of padding bytes required to align the file. - /// - /// The data should be written using the [`io::Write`] implementation on this [`ZipWriter`] - pub fn start_file_aligned( - &mut self, - name: S, - options: FileOptions, - align: u16, - ) -> Result - where - S: Into, - { - let data_start = self.start_file_with_extra_data(name, options)?; - let align = align as u64; - if align > 1 && data_start % align != 0 { - let pad_length = (align - (data_start + 4) % align) % align; - let pad = vec![0; pad_length as usize]; - self.write_all(b"za").map_err(ZipError::from)?; // 0x617a - self.write_u16::(pad.len() as u16) - .map_err(ZipError::from)?; - self.write_all(&pad).map_err(ZipError::from)?; - assert_eq!(self.end_local_start_central_extra_data()? % align, 0); - } - let extra_data_end = self.end_extra_data()?; - Ok(extra_data_end - data_start) - } - - /// Create a file in the archive and start writing its extra data first. - /// - /// Finish writing extra data and start writing file data with [`ZipWriter::end_extra_data`]. - /// Optionally, distinguish local from central extra data with - /// [`ZipWriter::end_local_start_central_extra_data`]. - /// - /// Returns the preliminary starting offset of the file data without any extra data allowing to - /// align the file data by calculating a pad length to be prepended as part of the extra data. - /// - /// The data should be written using the [`io::Write`] implementation on this [`ZipWriter`] - /// - /// ``` - /// use byteorder::{LittleEndian, WriteBytesExt}; - /// use zip::{ZipArchive, ZipWriter, result::ZipResult}; - /// use zip::{write::FileOptions, CompressionMethod}; - /// use std::io::{Write, Cursor}; - /// - /// # fn main() -> ZipResult<()> { - /// let mut archive = Cursor::new(Vec::new()); - /// - /// { - /// let mut zip = ZipWriter::new(&mut archive); - /// let options = FileOptions::default() - /// .compression_method(CompressionMethod::Stored); - /// - /// zip.start_file_with_extra_data("identical_extra_data.txt", options)?; - /// let extra_data = b"local and central extra data"; - /// zip.write_u16::(0xbeef)?; - /// zip.write_u16::(extra_data.len() as u16)?; - /// zip.write_all(extra_data)?; - /// zip.end_extra_data()?; - /// zip.write_all(b"file data")?; - /// - /// let data_start = zip.start_file_with_extra_data("different_extra_data.txt", options)?; - /// let extra_data = b"local extra data"; - /// zip.write_u16::(0xbeef)?; - /// zip.write_u16::(extra_data.len() as u16)?; - /// zip.write_all(extra_data)?; - /// let data_start = data_start as usize + 4 + extra_data.len() + 4; - /// let align = 64; - /// let pad_length = (align - data_start % align) % align; - /// assert_eq!(pad_length, 19); - /// zip.write_u16::(0xdead)?; - /// zip.write_u16::(pad_length as u16)?; - /// zip.write_all(&vec![0; pad_length])?; - /// let data_start = zip.end_local_start_central_extra_data()?; - /// assert_eq!(data_start as usize % align, 0); - /// let extra_data = b"central extra data"; - /// zip.write_u16::(0xbeef)?; - /// zip.write_u16::(extra_data.len() as u16)?; - /// zip.write_all(extra_data)?; - /// zip.end_extra_data()?; - /// zip.write_all(b"file data")?; - /// - /// zip.finish()?; - /// } - /// - /// let mut zip = ZipArchive::new(archive)?; - /// assert_eq!(&zip.by_index(0)?.extra_data()[4..], b"local and central extra data"); - /// assert_eq!(&zip.by_index(1)?.extra_data()[4..], b"central extra data"); - /// # Ok(()) - /// # } - /// ``` - pub fn start_file_with_extra_data( - &mut self, - name: S, - mut options: FileOptions, - ) -> ZipResult - where - S: Into, - { - if options.permissions.is_none() { - options.permissions = Some(0o644); - } - *options.permissions.as_mut().unwrap() |= 0o100000; - self.start_entry(name, options, None)?; - self.writing_to_file = true; - self.writing_to_extra_field = true; - Ok(self.files.last().unwrap().data_start.load()) - } - - /// End local and start central extra data. Requires [`ZipWriter::start_file_with_extra_data`]. - /// - /// Returns the final starting offset of the file data. - pub fn end_local_start_central_extra_data(&mut self) -> ZipResult { - let data_start = self.end_extra_data()?; - self.files.last_mut().unwrap().extra_field.clear(); - self.writing_to_extra_field = true; - self.writing_to_central_extra_field_only = true; - Ok(data_start) - } - - /// End extra data and start file data. Requires [`ZipWriter::start_file_with_extra_data`]. - /// - /// Returns the final starting offset of the file data. - pub fn end_extra_data(&mut self) -> ZipResult { - // Require `start_file_with_extra_data()`. Ensures `file` is some. - if !self.writing_to_extra_field { - return Err(ZipError::Io(io::Error::new( - io::ErrorKind::Other, - "Not writing to extra field", - ))); - } - let file = self.files.last_mut().unwrap(); - - validate_extra_data(file)?; - - let data_start = file.data_start.get_mut(); - - if !self.writing_to_central_extra_field_only { - let writer = self.inner.get_plain(); - - // Append extra data to local file header and keep it for central file header. - writer.write_all(&file.extra_field)?; - - // Update final `data_start`. - let header_end = *data_start + file.extra_field.len() as u64; - self.stats.start = header_end; - *data_start = header_end; - - // Update extra field length in local file header. - let extra_field_length = - if file.large_file { 20 } else { 0 } + file.extra_field.len() as u16; - writer.seek(io::SeekFrom::Start(file.header_start + 28))?; - writer.write_u16::(extra_field_length)?; - writer.seek(io::SeekFrom::Start(header_end))?; - - self.inner - .switch_to(file.compression_method, file.compression_level)?; - } - - self.writing_to_extra_field = false; - self.writing_to_central_extra_field_only = false; - Ok(*data_start) - } - /// Add a new file using the already compressed data from a ZIP file being read and renames it, this /// allows faster copies of the `ZipFile` since there is no need to decompress and compress it again. /// Any `ZipFile` metadata is copied and not checked, for example the file CRC. @@ -682,15 +1190,16 @@ impl ZipWriter { /// ``` pub fn raw_copy_file_rename(&mut self, mut file: ZipFile, name: S) -> ZipResult<()> where - S: Into, + S: Into>, { - let mut options = FileOptions::default() + let mut options = SimpleFileOptions::default() .large_file(file.compressed_size().max(file.size()) > spec::ZIP64_BYTES_THR) .last_modified_time(file.last_modified()) .compression_method(file.compression()); if let Some(perms) = file.unix_mode() { options = options.unix_permissions(perms); } + Self::normalize_options(&mut options); let raw_values = ZipRawValues { crc32: file.crc32(), @@ -707,6 +1216,19 @@ impl ZipWriter { Ok(()) } + /// Like `raw_copy_file_to_path`, but uses Path arguments. + /// + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn raw_copy_file_to_path>( + &mut self, + file: ZipFile, + path: P, + ) -> ZipResult<()> { + self.raw_copy_file_rename(file, path_to_string(path)) + } + /// Add a new file using the already compressed data from a ZIP file being read, this allows faster /// copies of the `ZipFile` since there is no need to decompress and compress it again. Any `ZipFile` /// metadata is copied and not checked, for example the file CRC. @@ -738,7 +1260,11 @@ impl ZipWriter { /// Add a directory entry. /// /// As directories have no content, you must not call [`ZipWriter::write`] before adding a new file. - pub fn add_directory(&mut self, name: S, mut options: FileOptions) -> ZipResult<()> + pub fn add_directory( + &mut self, + name: S, + mut options: FileOptions, + ) -> ZipResult<()> where S: Into, { @@ -746,7 +1272,8 @@ impl ZipWriter { options.permissions = Some(0o755); } *options.permissions.as_mut().unwrap() |= 0o40000; - options.compression_method = CompressionMethod::Stored; + options.compression_method = Stored; + options.encrypt_with = None; let name_as_string = name.into(); // Append a slash to the filename if it does not end with it. @@ -757,21 +1284,19 @@ impl ZipWriter { self.start_entry(name_with_slash, options, None)?; self.writing_to_file = false; + self.switch_to_non_encrypting_writer()?; Ok(()) } /// Add a directory entry, taking a Path as argument. /// - /// This function ensures that the '/' path separator is used. It also ignores all non 'Normal' - /// Components, such as a starting '/' or '..' and '.'. - #[deprecated( - since = "0.5.7", - note = "by stripping `..`s from the path, the meaning of paths can change. Use `add_directory` instead." - )] - pub fn add_directory_from_path( + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn add_directory_from_path>( &mut self, - path: &std::path::Path, - options: FileOptions, + path: P, + options: FileOptions, ) -> ZipResult<()> { self.add_directory(path_to_string(path), options) } @@ -780,9 +1305,9 @@ impl ZipWriter { /// /// This will return the writer, but one should normally not append any data to the end of the file. /// Note that the zipfile will also be finished on drop. - pub fn finish(&mut self) -> ZipResult { - self.finalize()?; - let inner = mem::replace(&mut self.inner, GenericZipWriter::Closed); + pub fn finish(mut self) -> ZipResult { + let _central_start = self.finalize()?; + let inner = mem::replace(&mut self.inner, Closed); Ok(inner.unwrap()) } @@ -798,15 +1323,15 @@ impl ZipWriter { /// implementations may materialize a symlink as a regular file, possibly with the /// content incorrectly set to the symlink target. For maximum portability, consider /// storing a regular file instead. - pub fn add_symlink( + pub fn add_symlink( &mut self, name: N, target: T, - mut options: FileOptions, + mut options: FileOptions, ) -> ZipResult<()> where - N: Into, - T: Into, + N: Into>, + T: Into>, { if options.permissions.is_none() { options.permissions = Some(0o777); @@ -814,272 +1339,386 @@ impl ZipWriter { *options.permissions.as_mut().unwrap() |= 0o120000; // The symlink target is stored as file content. And compressing the target path // likely wastes space. So always store. - options.compression_method = CompressionMethod::Stored; + options.compression_method = Stored; self.start_entry(name, options, None)?; self.writing_to_file = true; - self.write_all(target.into().as_bytes())?; - self.writing_to_file = false; + if let Err(e) = self.write_all(target.into().as_bytes()) { + self.abort_file().unwrap(); + return Err(e.into()); + } + self.writing_raw = false; + self.finish_file()?; Ok(()) } - fn finalize(&mut self) -> ZipResult<()> { + /// Add a symlink entry, taking Paths to the location and target as arguments. + /// + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn add_symlink_from_path, T: AsRef, E: FileOptionExtension>( + &mut self, + path: P, + target: T, + options: FileOptions, + ) -> ZipResult<()> { + self.add_symlink(path_to_string(path), path_to_string(target), options) + } + + fn finalize(&mut self) -> ZipResult { self.finish_file()?; - { + let central_start = { + let central_start = self.write_central_and_footer()?; let writer = self.inner.get_plain(); - - let central_start = writer.stream_position()?; - for file in self.files.iter() { - write_central_directory_header(writer, file)?; + let footer_end = writer.stream_position()?; + let file_end = writer.seek(SeekFrom::End(0))?; + if footer_end < file_end { + // Data from an aborted file is past the end of the footer, so rewrite the footer at + // the actual end. + let central_and_footer_size = footer_end - central_start; + writer.seek(SeekFrom::End(-(central_and_footer_size as i64)))?; + self.write_central_and_footer()?; } - let central_size = writer.stream_position()? - central_start; + central_start + }; - if self.files.len() > spec::ZIP64_ENTRY_THR - || central_size.max(central_start) > spec::ZIP64_BYTES_THR - { - let zip64_footer = spec::Zip64CentralDirectoryEnd { - version_made_by: DEFAULT_VERSION as u16, - version_needed_to_extract: DEFAULT_VERSION as u16, - disk_number: 0, - disk_with_central_directory: 0, - number_of_files_on_this_disk: self.files.len() as u64, - number_of_files: self.files.len() as u64, - central_directory_size: central_size, - central_directory_offset: central_start, - }; + Ok(central_start) + } - zip64_footer.write(writer)?; + fn write_central_and_footer(&mut self) -> Result { + let writer = self.inner.get_plain(); - let zip64_footer = spec::Zip64CentralDirectoryEndLocator { - disk_with_central_directory: 0, - end_of_central_directory_offset: central_start + central_size, - number_of_disks: 1, - }; + let central_start = writer.stream_position()?; + for file in self.files.values() { + write_central_directory_header(writer, file)?; + } + let central_size = writer.stream_position()? - central_start; - zip64_footer.write(writer)?; - } - - let number_of_files = self.files.len().min(spec::ZIP64_ENTRY_THR) as u16; - let footer = spec::CentralDirectoryEnd { + if self.files.len() > spec::ZIP64_ENTRY_THR + || central_size.max(central_start) > spec::ZIP64_BYTES_THR + { + let zip64_footer = spec::Zip64CentralDirectoryEnd { + version_made_by: DEFAULT_VERSION as u16, + version_needed_to_extract: DEFAULT_VERSION as u16, disk_number: 0, disk_with_central_directory: 0, - zip_file_comment: self.comment.clone(), - number_of_files_on_this_disk: number_of_files, - number_of_files, - central_directory_size: central_size.min(spec::ZIP64_BYTES_THR) as u32, - central_directory_offset: central_start.min(spec::ZIP64_BYTES_THR) as u32, + number_of_files_on_this_disk: self.files.len() as u64, + number_of_files: self.files.len() as u64, + central_directory_size: central_size, + central_directory_offset: central_start, }; - footer.write(writer)?; + zip64_footer.write(writer)?; + + let zip64_footer = spec::Zip64CentralDirectoryEndLocator { + disk_with_central_directory: 0, + end_of_central_directory_offset: central_start + central_size, + number_of_disks: 1, + }; + + zip64_footer.write(writer)?; } + let number_of_files = self.files.len().min(spec::ZIP64_ENTRY_THR) as u16; + let footer = spec::CentralDirectoryEnd { + disk_number: 0, + disk_with_central_directory: 0, + zip_file_comment: self.comment.clone(), + number_of_files_on_this_disk: number_of_files, + number_of_files, + central_directory_size: central_size.min(spec::ZIP64_BYTES_THR) as u32, + central_directory_offset: central_start.min(spec::ZIP64_BYTES_THR) as u32, + }; + + footer.write(writer)?; + Ok(central_start) + } + + fn index_by_name(&self, name: &str) -> ZipResult { + self.files.get_index_of(name).ok_or(ZipError::FileNotFound) + } + + /// Adds another entry to the central directory referring to the same content as an existing + /// entry. The file's local-file header will still refer to it by its original name, so + /// unzipping the file will technically be unspecified behavior. [ZipArchive] ignores the + /// filename in the local-file header and treat the central directory as authoritative. However, + /// some other software (e.g. Minecraft) will refuse to extract a file copied this way. + pub fn shallow_copy_file(&mut self, src_name: &str, dest_name: &str) -> ZipResult<()> { + self.finish_file()?; + let src_index = self.index_by_name(src_name)?; + let mut dest_data = self.files[src_index].to_owned(); + dest_data.file_name = dest_name.into(); + self.insert_file_data(dest_data)?; Ok(()) } + + /// Like `shallow_copy_file`, but uses Path arguments. + /// + /// This function ensures that the '/' path separator is used and normalizes `.` and `..`. It + /// ignores any `..` or Windows drive letter that would produce a path outside the ZIP file's + /// root. + pub fn shallow_copy_file_from_path, U: AsRef>( + &mut self, + src_path: T, + dest_path: U, + ) -> ZipResult<()> { + self.shallow_copy_file(&path_to_string(src_path), &path_to_string(dest_path)) + } } -impl Drop for ZipWriter { +impl Drop for ZipWriter { fn drop(&mut self) { if !self.inner.is_closed() { if let Err(e) = self.finalize() { - let _ = write!(io::stderr(), "ZipWriter drop failed: {e:?}"); + let _ = write!(io::stderr(), "ZipWriter drop failed: {:?}", e); } } } } -impl GenericZipWriter { - fn switch_to( - &mut self, +type SwitchWriterFunction = Box) -> GenericZipWriter>; + +impl GenericZipWriter { + fn prepare_next_writer( + &self, compression: CompressionMethod, - compression_level: Option, - ) -> ZipResult<()> { - match self.current_compression() { - Some(method) if method == compression => return Ok(()), - None => { - return Err(io::Error::new( - io::ErrorKind::BrokenPipe, - "ZipWriter was already closed", - ) - .into()) - } - _ => {} + compression_level: Option, + #[cfg(feature = "deflate-zopfli")] zopfli_buffer_size: Option, + ) -> ZipResult> { + if let Closed = self { + return Err( + io::Error::new(io::ErrorKind::BrokenPipe, "ZipWriter was already closed").into(), + ); } - let bare = match mem::replace(self, GenericZipWriter::Closed) { - GenericZipWriter::Storer(w) => w, + { + #[allow(deprecated)] + #[allow(unreachable_code)] + match compression { + Stored => { + if compression_level.is_some() { + Err(ZipError::UnsupportedArchive( + "Unsupported compression level", + )) + } else { + Ok(Box::new(|bare| Storer(bare))) + } + } + #[cfg(feature = "_deflate-any")] + CompressionMethod::Deflated => { + let default = if cfg!(feature = "deflate-zopfli") { + 24 + } else { + Compression::default().level() as i64 + }; + + let level = clamp_opt( + compression_level.unwrap_or(default), + deflate_compression_level_range(), + ) + .ok_or(ZipError::UnsupportedArchive( + "Unsupported compression level", + ))? as u32; + + #[cfg(feature = "deflate-zopfli")] + { + let best_non_zopfli = Compression::best().level(); + if level > best_non_zopfli { + let options = Options { + iteration_count: NonZeroU64::try_from( + (level - best_non_zopfli) as u64, + ) + .unwrap(), + ..Default::default() + }; + return Ok(Box::new(move |bare| match zopfli_buffer_size { + Some(size) => GenericZipWriter::BufferedZopfliDeflater( + BufWriter::with_capacity( + size, + zopfli::DeflateEncoder::new( + options, + Default::default(), + bare, + ), + ), + ), + None => GenericZipWriter::ZopfliDeflater( + zopfli::DeflateEncoder::new(options, Default::default(), bare), + ), + })); + } + } + + #[cfg(any( + feature = "deflate", + feature = "deflate-zlib", + feature = "deflate-zlib-ng", + ))] + { + Ok(Box::new(move |bare| { + GenericZipWriter::Deflater(DeflateEncoder::new( + bare, + Compression::new(level), + )) + })) + } + } + #[cfg(feature = "deflate64")] + CompressionMethod::Deflate64 => Err(ZipError::UnsupportedArchive( + "Compressing Deflate64 is not supported", + )), + #[cfg(feature = "bzip2")] + CompressionMethod::Bzip2 => { + let level = clamp_opt( + compression_level.unwrap_or(bzip2::Compression::default().level() as i64), + bzip2_compression_level_range(), + ) + .ok_or(ZipError::UnsupportedArchive( + "Unsupported compression level", + ))? as u32; + Ok(Box::new(move |bare| { + GenericZipWriter::Bzip2(BzEncoder::new( + bare, + bzip2::Compression::new(level), + )) + })) + } + CompressionMethod::AES => Err(ZipError::UnsupportedArchive( + "AES encryption is enabled through FileOptions::with_aes_encryption", + )), + #[cfg(feature = "zstd")] + CompressionMethod::Zstd => { + let level = clamp_opt( + compression_level.unwrap_or(zstd::DEFAULT_COMPRESSION_LEVEL as i64), + zstd::compression_level_range(), + ) + .ok_or(ZipError::UnsupportedArchive( + "Unsupported compression level", + ))?; + Ok(Box::new(move |bare| { + GenericZipWriter::Zstd(ZstdEncoder::new(bare, level as i32).unwrap()) + })) + } + #[cfg(feature = "lzma")] + CompressionMethod::Lzma => { + Err(UnsupportedArchive("LZMA isn't supported for compression")) + } + CompressionMethod::Unsupported(..) => { + Err(ZipError::UnsupportedArchive("Unsupported compression")) + } + } + } + } + + fn switch_to(&mut self, make_new_self: SwitchWriterFunction) -> ZipResult<()> { + let bare = match mem::replace(self, Closed) { + Storer(w) => w, #[cfg(any( feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" + feature = "deflate-zlib", + feature = "deflate-zlib-ng" ))] GenericZipWriter::Deflater(w) => w.finish()?, + #[cfg(feature = "deflate-zopfli")] + GenericZipWriter::ZopfliDeflater(w) => w.finish()?, + #[cfg(feature = "deflate-zopfli")] + GenericZipWriter::BufferedZopfliDeflater(w) => w + .into_inner() + .map_err(|e| ZipError::Io(e.into_error()))? + .finish()?, #[cfg(feature = "bzip2")] GenericZipWriter::Bzip2(w) => w.finish()?, #[cfg(feature = "zstd")] GenericZipWriter::Zstd(w) => w.finish()?, - GenericZipWriter::Closed => { + Closed => { return Err(io::Error::new( io::ErrorKind::BrokenPipe, "ZipWriter was already closed", ) - .into()) + .into()); } }; - - *self = { - #[allow(deprecated)] - match compression { - CompressionMethod::Stored => { - if compression_level.is_some() { - return Err(ZipError::UnsupportedArchive( - "Unsupported compression level", - )); - } - - GenericZipWriter::Storer(bare) - } - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] - CompressionMethod::Deflated => GenericZipWriter::Deflater(DeflateEncoder::new( - bare, - flate2::Compression::new( - clamp_opt( - compression_level - .unwrap_or(flate2::Compression::default().level() as i32), - deflate_compression_level_range(), - ) - .ok_or(ZipError::UnsupportedArchive( - "Unsupported compression level", - ))? as u32, - ), - )), - #[cfg(feature = "bzip2")] - CompressionMethod::Bzip2 => GenericZipWriter::Bzip2(BzEncoder::new( - bare, - bzip2::Compression::new( - clamp_opt( - compression_level - .unwrap_or(bzip2::Compression::default().level() as i32), - bzip2_compression_level_range(), - ) - .ok_or(ZipError::UnsupportedArchive( - "Unsupported compression level", - ))? as u32, - ), - )), - CompressionMethod::AES => { - return Err(ZipError::UnsupportedArchive( - "AES compression is not supported for writing", - )) - } - #[cfg(feature = "zstd")] - CompressionMethod::Zstd => GenericZipWriter::Zstd( - ZstdEncoder::new( - bare, - clamp_opt( - compression_level.unwrap_or(zstd::DEFAULT_COMPRESSION_LEVEL), - zstd::compression_level_range(), - ) - .ok_or(ZipError::UnsupportedArchive( - "Unsupported compression level", - ))?, - ) - .unwrap(), - ), - CompressionMethod::Unsupported(..) => { - return Err(ZipError::UnsupportedArchive("Unsupported compression")) - } - } - }; - + *self = make_new_self(bare); Ok(()) } fn ref_mut(&mut self) -> Option<&mut dyn Write> { - match *self { - GenericZipWriter::Storer(ref mut w) => Some(w as &mut dyn Write), + match self { + Storer(ref mut w) => Some(w as &mut dyn Write), #[cfg(any( feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" + feature = "deflate-zlib", + feature = "deflate-zlib-ng" ))] GenericZipWriter::Deflater(ref mut w) => Some(w as &mut dyn Write), + #[cfg(feature = "deflate-zopfli")] + GenericZipWriter::ZopfliDeflater(w) => Some(w as &mut dyn Write), + #[cfg(feature = "deflate-zopfli")] + GenericZipWriter::BufferedZopfliDeflater(w) => Some(w as &mut dyn Write), #[cfg(feature = "bzip2")] GenericZipWriter::Bzip2(ref mut w) => Some(w as &mut dyn Write), #[cfg(feature = "zstd")] GenericZipWriter::Zstd(ref mut w) => Some(w as &mut dyn Write), - GenericZipWriter::Closed => None, + Closed => None, } } - fn is_closed(&self) -> bool { + const fn is_closed(&self) -> bool { matches!(*self, GenericZipWriter::Closed) } fn get_plain(&mut self) -> &mut W { match *self { - GenericZipWriter::Storer(MaybeEncrypted::Unencrypted(ref mut w)) => w, + Storer(MaybeEncrypted::Unencrypted(ref mut w)) => w, _ => panic!("Should have switched to stored and unencrypted beforehand"), } } - fn current_compression(&self) -> Option { - match *self { - GenericZipWriter::Storer(..) => Some(CompressionMethod::Stored), - #[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" - ))] - GenericZipWriter::Deflater(..) => Some(CompressionMethod::Deflated), - #[cfg(feature = "bzip2")] - GenericZipWriter::Bzip2(..) => Some(CompressionMethod::Bzip2), - #[cfg(feature = "zstd")] - GenericZipWriter::Zstd(..) => Some(CompressionMethod::Zstd), - GenericZipWriter::Closed => None, - } - } - fn unwrap(self) -> W { match self { - GenericZipWriter::Storer(MaybeEncrypted::Unencrypted(w)) => w, + Storer(MaybeEncrypted::Unencrypted(w)) => w, _ => panic!("Should have switched to stored and unencrypted beforehand"), } } } -#[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib" -))] -fn deflate_compression_level_range() -> std::ops::RangeInclusive { - let min = flate2::Compression::none().level() as i32; - let max = flate2::Compression::best().level() as i32; +#[cfg(feature = "_deflate-any")] +fn deflate_compression_level_range() -> std::ops::RangeInclusive { + let min = if cfg!(feature = "deflate") + || cfg!(feature = "deflate-zlib") + || cfg!(feature = "deflate-zlib-ng") + { + Compression::none().level() as i64 + } else { + Compression::best().level() as i64 + 1 + }; + + let max = Compression::best().level() as i64 + + if cfg!(feature = "deflate-zopfli") { + u8::MAX as i64 + } else { + 0 + }; + min..=max } #[cfg(feature = "bzip2")] -fn bzip2_compression_level_range() -> std::ops::RangeInclusive { - let min = bzip2::Compression::none().level() as i32; - let max = bzip2::Compression::best().level() as i32; +fn bzip2_compression_level_range() -> std::ops::RangeInclusive { + let min = bzip2::Compression::fast().level() as i64; + let max = bzip2::Compression::best().level() as i64; min..=max } -#[cfg(any( - feature = "deflate", - feature = "deflate-miniz", - feature = "deflate-zlib", - feature = "bzip2", - feature = "zstd" -))] -fn clamp_opt(value: T, range: std::ops::RangeInclusive) -> Option { - if range.contains(&value) { +#[cfg(any(feature = "_deflate-any", feature = "bzip2", feature = "zstd"))] +fn clamp_opt>( + value: T, + range: std::ops::RangeInclusive, +) -> Option { + if range.contains(&value.try_into().ok()?) { Some(value) } else { None @@ -1125,16 +1764,54 @@ fn write_local_file_header(writer: &mut T, file: &ZipFileData) -> ZipR write_local_zip64_extra_field(writer, file)?; } +fn update_aes_extra_data( + writer: &mut W, + file: &mut ZipFileData, +) -> ZipResult<()> { + let Some((aes_mode, version, compression_method)) = file.aes_mode else { + return Ok(()); + }; + + let extra_data_start = file.extra_data_start.unwrap(); + + writer.seek(io::SeekFrom::Start( + extra_data_start + file.aes_extra_data_start, + ))?; + + let mut buf = Vec::new(); + + // Extra field header ID. + buf.write_u16_le(0x9901)?; + // Data size. + buf.write_u16_le(7)?; + // Integer version number. + buf.write_u16_le(version as u16)?; + // Vendor ID. + buf.write_all(b"AE")?; + // AES encryption strength. + buf.write_all(&[aes_mode as u8])?; + // Real compression method. + #[allow(deprecated)] + buf.write_u16_le(compression_method.to_u16())?; + + writer.write_all(&buf)?; + + let aes_extra_data_start = file.aes_extra_data_start as usize; + let extra_field = Arc::get_mut(file.extra_field.as_mut().unwrap()).unwrap(); + extra_field + .splice( + aes_extra_data_start..(aes_extra_data_start + buf.len()), + buf, + ) + .count(); + Ok(()) } -fn update_local_file_header( - writer: &mut T, - file: &ZipFileData, -) -> ZipResult<()> { +fn update_local_file_header(writer: &mut T, file: &ZipFileData) -> ZipResult<()> { const CRC32_OFFSET: u64 = 14; - writer.seek(io::SeekFrom::Start(file.header_start + CRC32_OFFSET))?; - writer.write_u32::(file.crc32)?; + writer.seek(SeekFrom::Start(file.header_start + CRC32_OFFSET))?; + writer.write_u32_le(file.crc32)?; if file.large_file { update_local_zip64_extra_field(writer, file)?; } else { @@ -1145,9 +1822,9 @@ fn update_local_file_header( "Large file option has not been set", ))); } - writer.write_u32::(file.compressed_size as u32)?; + writer.write_u32_le(file.compressed_size as u32)?; // uncompressed size is already checked on write to catch it as soon as possible - writer.write_u32::(file.uncompressed_size as u32)?; + writer.write_u32_le(file.uncompressed_size as u32)?; } Ok(()) } @@ -1159,12 +1836,12 @@ fn write_central_directory_header(writer: &mut T, file: &ZipFileData) write_central_zip64_extra_field(&mut zip64_extra_field.as_mut(), file)?; // central file header signature - writer.write_u32::(spec::CENTRAL_DIRECTORY_HEADER_SIGNATURE)?; + writer.write_u32_le(spec::CENTRAL_DIRECTORY_HEADER_SIGNATURE)?; // version made by let version_made_by = (file.system as u16) << 8 | (file.version_made_by as u16); - writer.write_u16::(version_made_by)?; + writer.write_u16_le(version_made_by)?; // version needed to extract - writer.write_u16::(file.version_needed())?; + writer.write_u16_le(file.version_needed())?; // general puprose bit flag let is_utf8 = std::str::from_utf8(&file.file_name_raw).is_ok(); let is_ascii = file.file_name_raw.is_ascii(); @@ -1173,91 +1850,79 @@ fn write_central_directory_header(writer: &mut T, file: &ZipFileData) writer.write_u16::(flag)?; // compression method #[allow(deprecated)] - writer.write_u16::(file.compression_method.to_u16())?; + writer.write_u16_le(file.compression_method.to_u16())?; // last mod file time + date - writer.write_u16::(file.last_modified_time.timepart())?; - writer.write_u16::(file.last_modified_time.datepart())?; + writer.write_u16_le(file.last_modified_time.timepart())?; + writer.write_u16_le(file.last_modified_time.datepart())?; // crc-32 - writer.write_u32::(file.crc32)?; + writer.write_u32_le(file.crc32)?; // compressed size - writer.write_u32::(file.compressed_size.min(spec::ZIP64_BYTES_THR) as u32)?; + writer.write_u32_le(file.compressed_size.min(spec::ZIP64_BYTES_THR) as u32)?; // uncompressed size - writer.write_u32::(file.uncompressed_size.min(spec::ZIP64_BYTES_THR) as u32)?; + writer.write_u32_le(file.uncompressed_size.min(spec::ZIP64_BYTES_THR) as u32)?; // file name length - writer.write_u16::(file.file_name_raw.len() as u16)?; + writer.write_u16_le(file.file_name_raw.len() as u16)?; // extra field length - writer.write_u16::(zip64_extra_field_length + file.extra_field.len() as u16)?; + writer.write_u16_le( + zip64_extra_field_length + + file.extra_field_len() as u16 + + file.central_extra_field_len() as u16, + )?; // file comment length - writer.write_u16::(0)?; + writer.write_u16_le(0)?; // disk number start - writer.write_u16::(0)?; - // internal file attribytes - writer.write_u16::(0)?; + writer.write_u16_le(0)?; + // internal file attributes + writer.write_u16_le(0)?; // external file attributes - writer.write_u32::(file.external_attributes)?; + writer.write_u32_le(file.external_attributes)?; // relative offset of local header - writer.write_u32::(file.header_start.min(spec::ZIP64_BYTES_THR) as u32)?; + writer.write_u32_le(file.header_start.min(spec::ZIP64_BYTES_THR) as u32)?; // file name writer.write_all(&file.file_name_raw)?; // zip64 extra field writer.write_all(&zip64_extra_field[..zip64_extra_field_length as usize])?; // extra field - writer.write_all(&file.extra_field)?; + if let Some(extra_field) = &file.extra_field { + writer.write_all(extra_field)?; + } + if let Some(central_extra_field) = &file.central_extra_field { + writer.write_all(central_extra_field)?; + } // file comment // Ok(()) } -fn validate_extra_data(file: &ZipFileData) -> ZipResult<()> { - let mut data = file.extra_field.as_slice(); - - if data.len() > spec::ZIP64_ENTRY_THR { +fn validate_extra_data(header_id: u16, data: &[u8]) -> ZipResult<()> { + if data.len() > u16::MAX as usize { return Err(ZipError::Io(io::Error::new( - io::ErrorKind::InvalidData, - "Extra data exceeds extra field", + io::ErrorKind::Other, + "Extra-data field can't exceed u16::MAX bytes", + ))); + } + if header_id == 0x0001 { + return Err(ZipError::Io(io::Error::new( + io::ErrorKind::Other, + "No custom ZIP64 extra data allowed", ))); } - while !data.is_empty() { - let left = data.len(); - if left < 4 { - return Err(ZipError::Io(io::Error::new( - io::ErrorKind::Other, - "Incomplete extra data header", - ))); - } - let kind = data.read_u16::()?; - let size = data.read_u16::()? as usize; - let left = left - 4; - - if kind == 0x0001 { - return Err(ZipError::Io(io::Error::new( - io::ErrorKind::Other, - "No custom ZIP64 extra data allowed", - ))); - } - - #[cfg(not(feature = "unreserved"))] + #[cfg(not(feature = "unreserved"))] + { + if header_id <= 31 + || EXTRA_FIELD_MAPPING + .iter() + .any(|&mapped| mapped == header_id) { - if kind <= 31 || EXTRA_FIELD_MAPPING.iter().any(|&mapped| mapped == kind) { - return Err(ZipError::Io(io::Error::new( - io::ErrorKind::Other, - format!( - "Extra data header ID {kind:#06} requires crate feature \"unreserved\"", - ), - ))); - } - } - - if size > left { return Err(ZipError::Io(io::Error::new( io::ErrorKind::Other, - "Extra data size exceeds extra field", + format!( + "Extra data header ID {header_id:#06} requires crate feature \"unreserved\"", + ), ))); } - - data = &data[size..]; } Ok(()) @@ -1266,23 +1931,23 @@ fn validate_extra_data(file: &ZipFileData) -> ZipResult<()> { fn write_local_zip64_extra_field(writer: &mut T, file: &ZipFileData) -> ZipResult<()> { // This entry in the Local header MUST include BOTH original // and compressed file size fields. - writer.write_u16::(0x0001)?; - writer.write_u16::(16)?; - writer.write_u64::(file.uncompressed_size)?; - writer.write_u64::(file.compressed_size)?; + writer.write_u16_le(0x0001)?; + writer.write_u16_le(16)?; + writer.write_u64_le(file.uncompressed_size)?; + writer.write_u64_le(file.compressed_size)?; // Excluded fields: // u32: disk start number Ok(()) } -fn update_local_zip64_extra_field( +fn update_local_zip64_extra_field( writer: &mut T, file: &ZipFileData, ) -> ZipResult<()> { let zip64_extra_field = file.header_start + 30 + file.file_name_raw.len() as u64; - writer.seek(io::SeekFrom::Start(zip64_extra_field + 4))?; - writer.write_u64::(file.uncompressed_size)?; - writer.write_u64::(file.compressed_size)?; + writer.seek(SeekFrom::Start(zip64_extra_field + 4))?; + writer.write_u64_le(file.uncompressed_size)?; + writer.write_u64_le(file.compressed_size)?; // Excluded fields: // u32: disk start number Ok(()) @@ -1307,18 +1972,18 @@ fn write_central_zip64_extra_field(writer: &mut T, file: &ZipFileData) size += 8; } if size > 0 { - writer.write_u16::(0x0001)?; - writer.write_u16::(size)?; + writer.write_u16_le(0x0001)?; + writer.write_u16_le(size)?; size += 4; if uncompressed_size { - writer.write_u64::(file.uncompressed_size)?; + writer.write_u64_le(file.uncompressed_size)?; } if compressed_size { - writer.write_u64::(file.compressed_size)?; + writer.write_u64_le(file.compressed_size)?; } if header_start { - writer.write_u64::(file.header_start)?; + writer.write_u64_le(file.header_start)?; } // Excluded fields: // u32: disk start number @@ -1326,26 +1991,27 @@ fn write_central_zip64_extra_field(writer: &mut T, file: &ZipFileData) Ok(size) } -fn path_to_string(path: &std::path::Path) -> String { - let mut path_str = String::new(); - for component in path.components() { - if let std::path::Component::Normal(os_str) = component { - if !path_str.is_empty() { - path_str.push('/'); - } - path_str.push_str(&os_str.to_string_lossy()); - } - } - path_str -} +#[cfg(not(feature = "unreserved"))] +const EXTRA_FIELD_MAPPING: [u16; 49] = [ + 0x0001, 0x0007, 0x0008, 0x0009, 0x000a, 0x000c, 0x000d, 0x000e, 0x000f, 0x0014, 0x0015, 0x0016, + 0x0017, 0x0018, 0x0019, 0x0020, 0x0021, 0x0022, 0x0023, 0x0065, 0x0066, 0x4690, 0x07c8, 0x2605, + 0x2705, 0x2805, 0x334d, 0x4341, 0x4453, 0x4704, 0x470f, 0x4b46, 0x4c41, 0x4d49, 0x4f4c, 0x5356, + 0x5455, 0x554e, 0x5855, 0x6375, 0x6542, 0x7075, 0x756e, 0x7855, 0xa11e, 0xa220, 0xfd4a, 0x9901, + 0x9902, +]; #[cfg(test)] mod test { use super::{FileOptions, ZipWriter}; use crate::compression::CompressionMethod; + use crate::result::ZipResult; use crate::types::DateTime; + use crate::write::SimpleFileOptions; + use crate::CompressionMethod::Stored; + use crate::ZipArchive; use std::io; - use std::io::Write; + use std::io::{Cursor, Read, Write}; + use std::path::PathBuf; #[test] fn write_empty_zip() { @@ -1362,7 +2028,7 @@ mod test { #[test] fn unix_permissions_bitmask() { // unix_permissions() throws away upper bits. - let options = FileOptions::default().unix_permissions(0o120777); + let options = SimpleFileOptions::default().unix_permissions(0o120777); assert_eq!(options.permissions, Some(0o777)); } @@ -1372,7 +2038,7 @@ mod test { writer .add_directory( "test", - FileOptions::default().last_modified_time( + SimpleFileOptions::default().last_modified_time( DateTime::from_date_and_time(2018, 8, 15, 20, 45, 6).unwrap(), ), ) @@ -1401,7 +2067,7 @@ mod test { .add_symlink( "name", "target", - FileOptions::default().last_modified_time( + SimpleFileOptions::default().last_modified_time( DateTime::from_date_and_time(2018, 8, 15, 20, 45, 6).unwrap(), ), ) @@ -1414,15 +2080,31 @@ mod test { assert_eq!( *result.get_ref(), &[ - 80u8, 75, 3, 4, 20, 0, 0, 0, 0, 0, 163, 165, 15, 77, 252, 47, 111, 70, 6, 0, 0, 0, + 80u8, 75, 3, 4, 10, 0, 0, 0, 0, 0, 163, 165, 15, 77, 252, 47, 111, 70, 6, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 110, 97, 109, 101, 116, 97, 114, 103, 101, 116, 80, 75, 1, - 2, 46, 3, 20, 0, 0, 0, 0, 0, 163, 165, 15, 77, 252, 47, 111, 70, 6, 0, 0, 0, 6, 0, + 2, 46, 3, 10, 0, 0, 0, 0, 0, 163, 165, 15, 77, 252, 47, 111, 70, 6, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 161, 0, 0, 0, 0, 110, 97, 109, 101, 80, 75, 5, 6, 0, 0, 0, 0, 1, 0, 1, 0, 50, 0, 0, 0, 40, 0, 0, 0, 0, 0 ] as &[u8], ); } + #[test] + fn test_path_normalization() { + let mut path = PathBuf::new(); + path.push("foo"); + path.push("bar"); + path.push(".."); + path.push("."); + path.push("example.txt"); + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file_from_path(path, SimpleFileOptions::default()) + .unwrap(); + let archive = ZipArchive::new(writer.finish().unwrap()).unwrap(); + assert_eq!(Some("foo/example.txt"), archive.name_for_index(0)); + } + #[test] fn write_symlink_wonky_paths() { let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); @@ -1430,7 +2112,7 @@ mod test { .add_symlink( "directory\\link", "/absolute/symlink\\with\\mixed/slashes", - FileOptions::default().last_modified_time( + SimpleFileOptions::default().last_modified_time( DateTime::from_date_and_time(2018, 8, 15, 20, 45, 6).unwrap(), ), ) @@ -1443,11 +2125,11 @@ mod test { assert_eq!( *result.get_ref(), &[ - 80u8, 75, 3, 4, 20, 0, 0, 0, 0, 0, 163, 165, 15, 77, 95, 41, 81, 245, 36, 0, 0, 0, + 80u8, 75, 3, 4, 10, 0, 0, 0, 0, 0, 163, 165, 15, 77, 95, 41, 81, 245, 36, 0, 0, 0, 36, 0, 0, 0, 14, 0, 0, 0, 100, 105, 114, 101, 99, 116, 111, 114, 121, 92, 108, 105, 110, 107, 47, 97, 98, 115, 111, 108, 117, 116, 101, 47, 115, 121, 109, 108, 105, 110, 107, 92, 119, 105, 116, 104, 92, 109, 105, 120, 101, 100, 47, 115, 108, 97, - 115, 104, 101, 115, 80, 75, 1, 2, 46, 3, 20, 0, 0, 0, 0, 0, 163, 165, 15, 77, 95, + 115, 104, 101, 115, 80, 75, 1, 2, 46, 3, 10, 0, 0, 0, 0, 0, 163, 165, 15, 77, 95, 41, 81, 245, 36, 0, 0, 0, 36, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 161, 0, 0, 0, 0, 100, 105, 114, 101, 99, 116, 111, 114, 121, 92, 108, 105, 110, 107, 80, 75, 5, 6, 0, 0, 0, 0, 1, 0, 1, 0, 60, 0, 0, 0, 80, 0, 0, 0, 0, 0 @@ -1465,6 +2147,10 @@ mod test { permissions: Some(33188), large_file: false, encrypt_with: None, + extended_options: (), + alignment: 1, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, }; writer.start_file("mimetype", options).unwrap(); writer @@ -1478,6 +2164,16 @@ mod test { assert_eq!(result.get_ref(), &v); } + const RT_TEST_TEXT: &str = "And I can't stop thinking about the moments that I lost to you\ + And I can't stop thinking of things I used to do\ + And I can't stop making bad decisions\ + And I can't stop eating stuff you make me chew\ + I put on a smile like you wanna see\ + Another day goes by that I long to be like you"; + const RT_TEST_FILENAME: &str = "subfolder/sub-subfolder/can't_stop.txt"; + const SECOND_FILENAME: &str = "different_name.xyz"; + const THIRD_FILENAME: &str = "third_name.xyz"; + #[test] fn write_non_utf8() { let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); @@ -1524,13 +2220,368 @@ mod test { let path_str = super::path_to_string(&path); assert_eq!(path_str, "windows/system32"); } -} -#[cfg(not(feature = "unreserved"))] -const EXTRA_FIELD_MAPPING: [u16; 49] = [ - 0x0001, 0x0007, 0x0008, 0x0009, 0x000a, 0x000c, 0x000d, 0x000e, 0x000f, 0x0014, 0x0015, 0x0016, - 0x0017, 0x0018, 0x0019, 0x0020, 0x0021, 0x0022, 0x0023, 0x0065, 0x0066, 0x4690, 0x07c8, 0x2605, - 0x2705, 0x2805, 0x334d, 0x4341, 0x4453, 0x4704, 0x470f, 0x4b46, 0x4c41, 0x4d49, 0x4f4c, 0x5356, - 0x5455, 0x554e, 0x5855, 0x6375, 0x6542, 0x7075, 0x756e, 0x7855, 0xa11e, 0xa220, 0xfd4a, 0x9901, - 0x9902, -]; + #[test] + fn test_shallow_copy() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + let options = FileOptions { + compression_method: CompressionMethod::default(), + compression_level: None, + last_modified_time: DateTime::default(), + permissions: Some(33188), + large_file: false, + encrypt_with: None, + extended_options: (), + alignment: 0, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, + }; + writer.start_file(RT_TEST_FILENAME, options).unwrap(); + writer.write_all(RT_TEST_TEXT.as_ref()).unwrap(); + writer + .shallow_copy_file(RT_TEST_FILENAME, SECOND_FILENAME) + .unwrap(); + writer + .shallow_copy_file(RT_TEST_FILENAME, SECOND_FILENAME) + .expect_err("Duplicate filename"); + let zip = writer.finish().unwrap(); + let mut writer = ZipWriter::new_append(zip).unwrap(); + writer + .shallow_copy_file(SECOND_FILENAME, SECOND_FILENAME) + .expect_err("Duplicate filename"); + let zip = writer.finish().unwrap(); + let mut reader = ZipArchive::new(zip).unwrap(); + let mut file_names: Vec<&str> = reader.file_names().collect(); + file_names.sort(); + let mut expected_file_names = vec![RT_TEST_FILENAME, SECOND_FILENAME]; + expected_file_names.sort(); + assert_eq!(file_names, expected_file_names); + let mut first_file_content = String::new(); + reader + .by_name(RT_TEST_FILENAME) + .unwrap() + .read_to_string(&mut first_file_content) + .unwrap(); + assert_eq!(first_file_content, RT_TEST_TEXT); + let mut second_file_content = String::new(); + reader + .by_name(SECOND_FILENAME) + .unwrap() + .read_to_string(&mut second_file_content) + .unwrap(); + assert_eq!(second_file_content, RT_TEST_TEXT); + } + + #[test] + fn test_deep_copy() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + let options = FileOptions { + compression_method: CompressionMethod::default(), + compression_level: None, + last_modified_time: DateTime::default(), + permissions: Some(33188), + large_file: false, + encrypt_with: None, + extended_options: (), + alignment: 0, + #[cfg(feature = "deflate-zopfli")] + zopfli_buffer_size: None, + }; + writer.start_file(RT_TEST_FILENAME, options).unwrap(); + writer.write_all(RT_TEST_TEXT.as_ref()).unwrap(); + writer + .deep_copy_file(RT_TEST_FILENAME, SECOND_FILENAME) + .unwrap(); + let zip = writer.finish().unwrap(); + let mut writer = ZipWriter::new_append(zip).unwrap(); + writer + .deep_copy_file(RT_TEST_FILENAME, THIRD_FILENAME) + .unwrap(); + let zip = writer.finish().unwrap(); + let mut reader = ZipArchive::new(zip).unwrap(); + let mut file_names: Vec<&str> = reader.file_names().collect(); + file_names.sort(); + let mut expected_file_names = vec![RT_TEST_FILENAME, SECOND_FILENAME, THIRD_FILENAME]; + expected_file_names.sort(); + assert_eq!(file_names, expected_file_names); + let mut first_file_content = String::new(); + reader + .by_name(RT_TEST_FILENAME) + .unwrap() + .read_to_string(&mut first_file_content) + .unwrap(); + assert_eq!(first_file_content, RT_TEST_TEXT); + let mut second_file_content = String::new(); + reader + .by_name(SECOND_FILENAME) + .unwrap() + .read_to_string(&mut second_file_content) + .unwrap(); + assert_eq!(second_file_content, RT_TEST_TEXT); + } + + #[test] + fn duplicate_filenames() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file("foo/bar/test", SimpleFileOptions::default()) + .unwrap(); + writer + .write_all("The quick brown 🦊 jumps over the lazy 🐕".as_bytes()) + .unwrap(); + writer + .start_file("foo/bar/test", SimpleFileOptions::default()) + .expect_err("Expected duplicate filename not to be allowed"); + } + + #[test] + fn test_filename_looks_like_zip64_locator() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file( + "PK\u{6}\u{7}\0\0\0\u{11}\0\0\0\0\0\0\0\0\0\0\0\0", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + let _ = ZipArchive::new(zip).unwrap(); + } + + #[test] + fn test_filename_looks_like_zip64_locator_2() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file( + "PK\u{6}\u{6}\0\0\0\0\0\0\0\0\0\0PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + println!("{:02x?}", zip.get_ref()); + let _ = ZipArchive::new(zip).unwrap(); + } + + #[test] + fn test_filename_looks_like_zip64_locator_2a() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file( + "PK\u{6}\u{6}PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + println!("{:02x?}", zip.get_ref()); + let _ = ZipArchive::new(zip).unwrap(); + } + + #[test] + fn test_filename_looks_like_zip64_locator_3() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file("\0PK\u{6}\u{6}", SimpleFileOptions::default()) + .unwrap(); + writer + .start_file( + "\0\u{4}\0\0PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u{3}", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + println!("{:02x?}", zip.get_ref()); + let _ = ZipArchive::new(zip).unwrap(); + } + + #[test] + fn test_filename_looks_like_zip64_locator_4() { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file("PK\u{6}\u{6}", SimpleFileOptions::default()) + .unwrap(); + writer + .start_file("\0\0\0\0\0\0", SimpleFileOptions::default()) + .unwrap(); + writer + .start_file("\0", SimpleFileOptions::default()) + .unwrap(); + writer.start_file("", SimpleFileOptions::default()).unwrap(); + writer + .start_file("\0\0", SimpleFileOptions::default()) + .unwrap(); + writer + .start_file( + "\0\0\0PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + println!("{:02x?}", zip.get_ref()); + let _ = ZipArchive::new(zip).unwrap(); + } + + #[test] + fn test_filename_looks_like_zip64_locator_5() -> ZipResult<()> { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .add_directory("", SimpleFileOptions::default().with_alignment(21)) + .unwrap(); + let mut writer = ZipWriter::new_append(writer.finish().unwrap()).unwrap(); + writer.shallow_copy_file("/", "").unwrap(); + writer.shallow_copy_file("", "\0").unwrap(); + writer.shallow_copy_file("\0", "PK\u{6}\u{6}").unwrap(); + let mut writer = ZipWriter::new_append(writer.finish().unwrap()).unwrap(); + writer + .start_file("\0\0\0\0\0\0", SimpleFileOptions::default()) + .unwrap(); + let mut writer = ZipWriter::new_append(writer.finish().unwrap()).unwrap(); + writer + .start_file( + "#PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + SimpleFileOptions::default(), + ) + .unwrap(); + let zip = writer.finish().unwrap(); + println!("{:02x?}", zip.get_ref()); + let _ = ZipArchive::new(zip).unwrap(); + Ok(()) + } + + #[test] + fn remove_shallow_copy_keeps_original() -> ZipResult<()> { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer + .start_file("original", SimpleFileOptions::default()) + .unwrap(); + writer.write_all(RT_TEST_TEXT.as_bytes()).unwrap(); + writer + .shallow_copy_file("original", "shallow_copy") + .unwrap(); + writer.abort_file().unwrap(); + let mut zip = ZipArchive::new(writer.finish().unwrap()).unwrap(); + let mut file = zip.by_name("original").unwrap(); + let mut contents = Vec::new(); + file.read_to_end(&mut contents).unwrap(); + assert_eq!(RT_TEST_TEXT.as_bytes(), contents); + Ok(()) + } + + #[test] + fn remove_encrypted_file() -> ZipResult<()> { + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + let first_file_options = SimpleFileOptions::default() + .with_alignment(65535) + .with_deprecated_encryption(b"Password"); + writer.start_file("", first_file_options).unwrap(); + writer.abort_file().unwrap(); + let zip = writer.finish().unwrap(); + let mut writer = ZipWriter::new(zip); + writer.start_file("", SimpleFileOptions::default()).unwrap(); + Ok(()) + } + + #[test] + fn remove_encrypted_aligned_symlink() -> ZipResult<()> { + let mut options = SimpleFileOptions::default(); + options = options.with_deprecated_encryption(b"Password"); + options.alignment = 65535; + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer.add_symlink("", "s\t\0\0ggggg\0\0", options).unwrap(); + writer.abort_file().unwrap(); + let zip = writer.finish().unwrap(); + println!("{:0>2x?}", zip.get_ref()); + let mut writer = ZipWriter::new_append(zip).unwrap(); + writer.start_file("", SimpleFileOptions::default()).unwrap(); + Ok(()) + } + + #[cfg(feature = "deflate-zopfli")] + #[test] + fn zopfli_empty_write() -> ZipResult<()> { + let mut options = SimpleFileOptions::default(); + options = options + .compression_method(CompressionMethod::default()) + .compression_level(Some(264)); + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + writer.start_file("", options).unwrap(); + writer.write_all(&[]).unwrap(); + writer.write_all(&[]).unwrap(); + Ok(()) + } + + #[test] + fn crash_with_no_features() -> ZipResult<()> { + const ORIGINAL_FILE_NAME: &str = "PK\u{6}\u{6}\0\0\0\0\0\0\0\0\0\u{2}g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u{1}\0\0\0\0\0\0\0\0\0\0PK\u{6}\u{7}\0\0\0\0\0\0\0\0\0\0\0\0\u{7}\0\t'"; + let mut writer = ZipWriter::new(io::Cursor::new(Vec::new())); + let mut options = SimpleFileOptions::default(); + options = options + .with_alignment(3584) + .compression_method(CompressionMethod::Stored); + writer.start_file(ORIGINAL_FILE_NAME, options)?; + let archive = writer.finish()?; + let mut writer = ZipWriter::new_append(archive)?; + writer.shallow_copy_file(ORIGINAL_FILE_NAME, "\u{6}\\")?; + writer.finish()?; + Ok(()) + } + + #[test] + fn test_alignment() { + let page_size = 4096; + let options = SimpleFileOptions::default() + .compression_method(CompressionMethod::Stored) + .with_alignment(page_size); + let mut zip = ZipWriter::new(io::Cursor::new(Vec::new())); + let contents = b"sleeping"; + let () = zip.start_file("sleep", options).unwrap(); + let _count = zip.write(&contents[..]).unwrap(); + let mut zip = ZipArchive::new(zip.finish().unwrap()).unwrap(); + let file = zip.by_index(0).unwrap(); + assert_eq!(file.name(), "sleep"); + assert_eq!(file.data_start(), page_size.into()); + } + + #[test] + fn test_crash_short_read() { + let mut writer = ZipWriter::new(Cursor::new(Vec::new())); + let comment = vec![ + 1, 80, 75, 5, 6, 237, 237, 237, 237, 237, 237, 237, 237, 44, 255, 191, 255, 255, 255, + 255, 255, 255, 255, 255, 16, + ] + .into_boxed_slice(); + writer.set_raw_comment(comment); + let options = SimpleFileOptions::default() + .compression_method(Stored) + .with_alignment(11823); + writer.start_file("", options).unwrap(); + writer.write_all(&[255, 255, 44, 255, 0]).unwrap(); + let written = writer.finish().unwrap(); + let _ = ZipWriter::new_append(written).unwrap(); + } + + #[cfg(all(feature = "_deflate-any", feature = "aes-crypto"))] + #[test] + fn test_fuzz_failure_2024_05_08() -> ZipResult<()> { + let mut first_writer = ZipWriter::new(Cursor::new(Vec::new())); + let mut second_writer = ZipWriter::new(Cursor::new(Vec::new())); + let options = SimpleFileOptions::default() + .compression_method(Stored) + .with_alignment(46036); + second_writer.add_symlink("\0", "", options)?; + let second_archive = second_writer.finish_into_readable()?.into_inner(); + let mut second_writer = ZipWriter::new_append(second_archive)?; + let options = SimpleFileOptions::default() + .compression_method(CompressionMethod::Deflated) + .large_file(true) + .with_alignment(46036) + .with_aes_encryption(crate::AesMode::Aes128, "\0\0"); + second_writer.add_symlink("", "", options)?; + let second_archive = second_writer.finish_into_readable()?.into_inner(); + let mut second_writer = ZipWriter::new_append(second_archive)?; + let options = SimpleFileOptions::default().compression_method(Stored); + second_writer.start_file(" ", options)?; + let second_archive = second_writer.finish_into_readable()?; + first_writer.merge_archive(second_archive)?; + let _ = ZipArchive::new(first_writer.finish()?)?; + Ok(()) + } +} diff --git a/src/zipcrypto.rs b/src/zipcrypto.rs index c3696e4d..7baac54b 100644 --- a/src/zipcrypto.rs +++ b/src/zipcrypto.rs @@ -3,18 +3,42 @@ //! The following paper was used to implement the ZipCrypto algorithm: //! [https://courses.cs.ut.ee/MTAT.07.022/2015_fall/uploads/Main/dmitri-report-f15-16.pdf](https://courses.cs.ut.ee/MTAT.07.022/2015_fall/uploads/Main/dmitri-report-f15-16.pdf) +use std::fmt::{Debug, Formatter}; +use std::hash::Hash; use std::num::Wrapping; +use crate::result::ZipError; + /// A container to hold the current key state -#[derive(Clone, Copy)] +#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))] +#[derive(Clone, Copy, Hash, Ord, PartialOrd, Eq, PartialEq)] pub(crate) struct ZipCryptoKeys { key_0: Wrapping, key_1: Wrapping, key_2: Wrapping, } +impl Debug for ZipCryptoKeys { + #[allow(unreachable_code)] + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + #[cfg(not(any(test, fuzzing)))] + { + use std::collections::hash_map::DefaultHasher; + use std::hash::Hasher; + let mut t = DefaultHasher::new(); + self.hash(&mut t); + return f.write_fmt(format_args!("ZipCryptoKeys(hash {})", t.finish())); + } + #[cfg(any(test, fuzzing))] + return f.write_fmt(format_args!( + "ZipCryptoKeys({:#10x},{:#10x},{:#10x})", + self.key_0, self.key_1, self.key_2 + )); + } +} + impl ZipCryptoKeys { - fn new() -> ZipCryptoKeys { + const fn new() -> ZipCryptoKeys { ZipCryptoKeys { key_0: Wrapping(0x12345678), key_1: Wrapping(0x23456789), @@ -88,7 +112,7 @@ impl ZipCryptoReader { pub fn validate( mut self, validator: ZipCryptoValidator, - ) -> Result>, std::io::Error> { + ) -> Result, ZipError> { // ZipCrypto prefixes a file with a 12 byte header let mut header_buf = [0u8; 12]; self.file.read_exact(&mut header_buf)?; @@ -103,7 +127,7 @@ impl ZipCryptoReader { // We also use 1 byte CRC. if (crc32_plaintext >> 24) as u8 != header_buf[11] { - return Ok(None); // Wrong password + return Err(ZipError::InvalidPassword); } } ZipCryptoValidator::InfoZipMsdosTime(last_mod_time) => { @@ -115,20 +139,22 @@ impl ZipCryptoReader { // We check only 1 byte. if (last_mod_time >> 8) as u8 != header_buf[11] { - return Ok(None); // Wrong password + return Err(ZipError::InvalidPassword); } } } - Ok(Some(ZipCryptoReaderValid { reader: self })) + Ok(ZipCryptoReaderValid { reader: self }) } } +#[allow(unused)] pub(crate) struct ZipCryptoWriter { pub(crate) writer: W, pub(crate) buffer: Vec, pub(crate) keys: ZipCryptoKeys, } impl ZipCryptoWriter { + #[allow(unused)] pub(crate) fn finish(mut self, crc32: u32) -> std::io::Result { self.buffer[11] = (crc32 >> 24) as u8; for byte in self.buffer.iter_mut() { @@ -159,11 +185,11 @@ impl std::io::Read for ZipCryptoReaderValid { // Note: There might be potential for optimization. Inspiration can be found at: // https://github.com/kornelski/7z/blob/master/CPP/7zip/Crypto/ZipCrypto.cpp - let result = self.reader.file.read(buf); - for byte in buf.iter_mut() { + let n = self.reader.file.read(buf)?; + for byte in buf.iter_mut().take(n) { *byte = self.reader.keys.decrypt_byte(*byte); } - result + Ok(n) } } diff --git a/tests/aes_encryption.rs b/tests/aes_encryption.rs index 4b393ebf..c135914d 100644 --- a/tests/aes_encryption.rs +++ b/tests/aes_encryption.rs @@ -1,7 +1,7 @@ #![cfg(feature = "aes-crypto")] -use std::io::{self, Read}; -use zip::ZipArchive; +use std::io::{self, Read, Write}; +use zip::{result::ZipError, write::SimpleFileOptions, AesMode, CompressionMethod, ZipArchive}; const SECRET_CONTENT: &str = "Lorem ipsum dolor sit amet"; @@ -15,8 +15,7 @@ fn aes256_encrypted_uncompressed_file() { let mut file = archive .by_name_decrypt("secret_data_256_uncompressed", PASSWORD) - .expect("couldn't find file in archive") - .expect("invalid password"); + .expect("couldn't find file in archive"); assert_eq!("secret_data_256_uncompressed", file.name()); let mut content = String::new(); @@ -33,8 +32,7 @@ fn aes256_encrypted_file() { let mut file = archive .by_name_decrypt("secret_data_256", PASSWORD) - .expect("couldn't find file in archive") - .expect("invalid password"); + .expect("couldn't find file in archive"); assert_eq!("secret_data_256", file.name()); let mut content = String::new(); @@ -51,8 +49,7 @@ fn aes192_encrypted_file() { let mut file = archive .by_name_decrypt("secret_data_192", PASSWORD) - .expect("couldn't find file in archive") - .expect("invalid password"); + .expect("couldn't find file in archive"); assert_eq!("secret_data_192", file.name()); let mut content = String::new(); @@ -69,8 +66,7 @@ fn aes128_encrypted_file() { let mut file = archive .by_name_decrypt("secret_data_128", PASSWORD) - .expect("couldn't find file in archive") - .expect("invalid password"); + .expect("couldn't find file in archive"); assert_eq!("secret_data_128", file.name()); let mut content = String::new(); @@ -78,3 +74,81 @@ fn aes128_encrypted_file() { .expect("couldn't read encrypted file"); assert_eq!(SECRET_CONTENT, content); } + +#[test] +fn aes128_stored_roundtrip() { + let cursor = { + let mut zip = zip::ZipWriter::new(io::Cursor::new(Vec::new())); + + zip.start_file( + "test.txt", + SimpleFileOptions::default().with_aes_encryption(AesMode::Aes128, "some password"), + ) + .unwrap(); + zip.write_all(SECRET_CONTENT.as_bytes()).unwrap(); + + zip.finish().unwrap() + }; + + let mut archive = ZipArchive::new(cursor).expect("couldn't open test zip file"); + test_extract_encrypted_file(&mut archive, "test.txt", "some password", "other password"); +} + +#[test] +fn aes256_deflated_roundtrip() { + let cursor = { + let mut zip = zip::ZipWriter::new(io::Cursor::new(Vec::new())); + + zip.start_file( + "test.txt", + SimpleFileOptions::default() + .compression_method(CompressionMethod::Deflated) + .with_aes_encryption(AesMode::Aes256, "some password"), + ) + .unwrap(); + zip.write_all(SECRET_CONTENT.as_bytes()).unwrap(); + + zip.finish().unwrap() + }; + + let mut archive = ZipArchive::new(cursor).expect("couldn't open test zip file"); + test_extract_encrypted_file(&mut archive, "test.txt", "some password", "other password"); +} + +fn test_extract_encrypted_file( + archive: &mut ZipArchive, + file_name: &str, + correct_password: &str, + incorrect_password: &str, +) { + { + let file = archive.by_name(file_name).map(|_| ()); + match file { + Err(ZipError::UnsupportedArchive("Password required to decrypt file")) => {} + Err(err) => { + panic!("Failed to read file for unknown reason: {err:?}"); + } + Ok(_) => { + panic!("Was able to successfully read encrypted file without password"); + } + } + } + + { + match archive.by_name_decrypt(file_name, incorrect_password.as_bytes()) { + Err(ZipError::InvalidPassword) => {} + Err(err) => panic!("Expected invalid password error, got: {err:?}"), + Ok(_) => panic!("Expected invalid password, got decrypted file"), + } + } + + { + let mut content = String::new(); + archive + .by_name_decrypt(file_name, correct_password.as_bytes()) + .expect("couldn't read encrypted file") + .read_to_string(&mut content) + .expect("couldn't read encrypted file"); + assert_eq!(SECRET_CONTENT, content); + } +} diff --git a/tests/data/README.md b/tests/data/README.md new file mode 100644 index 00000000..c1cdf9c4 --- /dev/null +++ b/tests/data/README.md @@ -0,0 +1,6 @@ +A few assets in directory is copied from [dotnet-assets]. + +- [`deflate64.zip`](./deflate64.zip) is originally at https://github.com/dotnet/runtime-assets/blob/95277f38e68b66f1b48600d90d456c32c9ae0fa2/src/System.IO.Compression.TestData/ZipTestData/compat/deflate64.zip +- [`folder/binary.wmv`](./folder/binary.wmv) is originally at https://github.com/dotnet/runtime-assets/tree/95277f38e68b66f1b48600d90d456c32c9ae0fa2/src/System.IO.Compression.TestData/ZipTestData/refzipfolders/normal/binary.wmv + +[dotnet-assets]: https://github.com/dotnet/runtime-assets diff --git a/tests/data/data_descriptor.zip b/tests/data/data_descriptor.zip new file mode 100644 index 00000000..a09f6b79 Binary files /dev/null and b/tests/data/data_descriptor.zip differ diff --git a/tests/data/deflate64.zip b/tests/data/deflate64.zip new file mode 100644 index 00000000..88167f88 Binary files /dev/null and b/tests/data/deflate64.zip differ diff --git a/tests/data/deflate64_issue_25.zip b/tests/data/deflate64_issue_25.zip new file mode 100644 index 00000000..78139edd Binary files /dev/null and b/tests/data/deflate64_issue_25.zip differ diff --git a/tests/data/extended_timestamp.zip b/tests/data/extended_timestamp.zip new file mode 100644 index 00000000..aa93eb62 Binary files /dev/null and b/tests/data/extended_timestamp.zip differ diff --git a/tests/data/folder/binary.wmv b/tests/data/folder/binary.wmv new file mode 100644 index 00000000..aee3e9ce Binary files /dev/null and b/tests/data/folder/binary.wmv differ diff --git a/tests/data/lzma.zip b/tests/data/lzma.zip new file mode 100644 index 00000000..c8e7fd01 Binary files /dev/null and b/tests/data/lzma.zip differ diff --git a/tests/data/mimetype.zip b/tests/data/mimetype.zip index 2d651cbe..c2f82132 100644 Binary files a/tests/data/mimetype.zip and b/tests/data/mimetype.zip differ diff --git a/tests/data/raw_deflate64_index_out_of_bounds.zip b/tests/data/raw_deflate64_index_out_of_bounds.zip new file mode 100644 index 00000000..a0e56c18 Binary files /dev/null and b/tests/data/raw_deflate64_index_out_of_bounds.zip differ diff --git a/tests/data/zip64_magic_in_filename_1.zip b/tests/data/zip64_magic_in_filename_1.zip new file mode 100644 index 00000000..18b9494a Binary files /dev/null and b/tests/data/zip64_magic_in_filename_1.zip differ diff --git a/tests/data/zip64_magic_in_filename_2.zip b/tests/data/zip64_magic_in_filename_2.zip new file mode 100644 index 00000000..5628acd4 Binary files /dev/null and b/tests/data/zip64_magic_in_filename_2.zip differ diff --git a/tests/data/zip64_magic_in_filename_3.zip b/tests/data/zip64_magic_in_filename_3.zip new file mode 100644 index 00000000..4398604c Binary files /dev/null and b/tests/data/zip64_magic_in_filename_3.zip differ diff --git a/tests/data/zip64_magic_in_filename_4.zip b/tests/data/zip64_magic_in_filename_4.zip new file mode 100644 index 00000000..9726a982 Binary files /dev/null and b/tests/data/zip64_magic_in_filename_4.zip differ diff --git a/tests/data/zip64_magic_in_filename_5.zip b/tests/data/zip64_magic_in_filename_5.zip new file mode 100644 index 00000000..bf6a95db Binary files /dev/null and b/tests/data/zip64_magic_in_filename_5.zip differ diff --git a/tests/deflate64.rs b/tests/deflate64.rs new file mode 100644 index 00000000..b0cd95a9 --- /dev/null +++ b/tests/deflate64.rs @@ -0,0 +1,21 @@ +#![cfg(feature = "deflate64")] + +use std::io::{self, Read}; +use zip::ZipArchive; + +#[test] +fn decompress_deflate64() { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("data/deflate64.zip")); + let mut archive = ZipArchive::new(io::Cursor::new(v)).expect("couldn't open test zip file"); + + let mut file = archive + .by_name("binary.wmv") + .expect("couldn't find file in archive"); + assert_eq!("binary.wmv", file.name()); + + let mut content = Vec::new(); + file.read_to_end(&mut content) + .expect("couldn't read encrypted and compressed file"); + assert_eq!(include_bytes!("data/folder/binary.wmv"), &content[..]); +} diff --git a/tests/end_to_end.rs b/tests/end_to_end.rs index 09e7ce47..fc2059c1 100644 --- a/tests/end_to_end.rs +++ b/tests/end_to_end.rs @@ -1,23 +1,29 @@ -use byteorder::{LittleEndian, WriteBytesExt}; use std::collections::HashSet; use std::io::prelude::*; -use std::io::{Cursor, Seek}; -use std::iter::FromIterator; +use std::io::Cursor; +use zip::result::ZipResult; +use zip::unstable::LittleEndianWriteExt; +use zip::write::ExtendedFileOptions; use zip::write::FileOptions; -use zip::{CompressionMethod, SUPPORTED_COMPRESSION_METHODS}; +use zip::write::SimpleFileOptions; +use zip::{CompressionMethod, ZipWriter, SUPPORTED_COMPRESSION_METHODS}; // This test asserts that after creating a zip file, then reading its contents back out, // the extracted data will *always* be exactly the same as the original data. #[test] fn end_to_end() { for &method in SUPPORTED_COMPRESSION_METHODS { + if method == CompressionMethod::DEFLATE64 { + continue; + } let file = &mut Cursor::new(Vec::new()); println!("Writing file with {method} compression"); - write_test_archive(file, method).expect("Couldn't write test zip archive"); + write_test_archive(file, method, true); println!("Checking file contents"); check_archive_file(file, ENTRY_NAME, Some(method), LOREM_IPSUM); + check_archive_file(file, INTERNAL_COPY_ENTRY_NAME, Some(method), LOREM_IPSUM); } } @@ -26,14 +32,17 @@ fn end_to_end() { #[test] fn copy() { for &method in SUPPORTED_COMPRESSION_METHODS { + if method == CompressionMethod::DEFLATE64 { + continue; + } let src_file = &mut Cursor::new(Vec::new()); - write_test_archive(src_file, method).expect("Couldn't write to test file"); + write_test_archive(src_file, method, false); let mut tgt_file = &mut Cursor::new(Vec::new()); { let mut src_archive = zip::ZipArchive::new(src_file).unwrap(); - let mut zip = zip::ZipWriter::new(&mut tgt_file); + let mut zip = ZipWriter::new(&mut tgt_file); { let file = src_archive @@ -65,58 +74,71 @@ fn copy() { #[test] fn append() { for &method in SUPPORTED_COMPRESSION_METHODS { - let mut file = &mut Cursor::new(Vec::new()); - write_test_archive(file, method).expect("Couldn't write to test file"); - - { - let mut zip = zip::ZipWriter::new_append(&mut file).unwrap(); - zip.start_file( - COPY_ENTRY_NAME, - FileOptions::default().compression_method(method), - ) - .unwrap(); - zip.write_all(LOREM_IPSUM).unwrap(); - zip.finish().unwrap(); + if method == CompressionMethod::DEFLATE64 { + continue; } + for shallow_copy in &[false, true] { + println!("Writing file with {method} compression, shallow_copy {shallow_copy}"); + let mut file = &mut Cursor::new(Vec::new()); + write_test_archive(file, method, *shallow_copy); - let mut zip = zip::ZipArchive::new(&mut file).unwrap(); - check_archive_file_contents(&mut zip, ENTRY_NAME, LOREM_IPSUM); - check_archive_file_contents(&mut zip, COPY_ENTRY_NAME, LOREM_IPSUM); + { + let mut zip = ZipWriter::new_append(&mut file).unwrap(); + zip.start_file( + COPY_ENTRY_NAME, + SimpleFileOptions::default() + .compression_method(method) + .unix_permissions(0o755), + ) + .unwrap(); + zip.write_all(LOREM_IPSUM).unwrap(); + zip.finish().unwrap(); + } + + let mut zip = zip::ZipArchive::new(&mut file).unwrap(); + check_archive_file_contents(&mut zip, ENTRY_NAME, LOREM_IPSUM); + check_archive_file_contents(&mut zip, COPY_ENTRY_NAME, LOREM_IPSUM); + check_archive_file_contents(&mut zip, INTERNAL_COPY_ENTRY_NAME, LOREM_IPSUM); + } } } // Write a test zip archive to buffer. -fn write_test_archive( - file: &mut Cursor>, - method: CompressionMethod, -) -> zip::result::ZipResult<()> { - let mut zip = zip::ZipWriter::new(file); +fn write_test_archive(file: &mut Cursor>, method: CompressionMethod, shallow_copy: bool) { + let mut zip = ZipWriter::new(file); - zip.add_directory("test/", Default::default())?; + zip.add_directory("test/", SimpleFileOptions::default()) + .unwrap(); - let options = FileOptions::default() + let mut options = FileOptions::::default() .compression_method(method) .unix_permissions(0o755); - zip.start_file("test/☃.txt", options)?; - zip.write_all(b"Hello, World!\n")?; + zip.start_file(ENTRY_NAME, options.clone()).unwrap(); + zip.write_all(LOREM_IPSUM).unwrap(); - zip.start_file_with_extra_data("test_with_extra_data/🐢.txt", options)?; - zip.write_u16::(0xbeef)?; - zip.write_u16::(EXTRA_DATA.len() as u16)?; - zip.write_all(EXTRA_DATA)?; - zip.end_extra_data()?; - zip.write_all(b"Hello, World! Again.\n")?; + if shallow_copy { + zip.shallow_copy_file(ENTRY_NAME, INTERNAL_COPY_ENTRY_NAME) + .unwrap(); + } else { + zip.deep_copy_file(ENTRY_NAME, INTERNAL_COPY_ENTRY_NAME) + .unwrap(); + } - zip.start_file(ENTRY_NAME, options)?; - zip.write_all(LOREM_IPSUM)?; + zip.start_file("test/☃.txt", options.clone()).unwrap(); + zip.write_all(b"Hello, World!\n").unwrap(); - zip.finish()?; - Ok(()) + options.add_extra_data(0xbeef, EXTRA_DATA, false).unwrap(); + + zip.start_file("test_with_extra_data/🐢.txt", options) + .unwrap(); + zip.write_all(b"Hello, World! Again.\n").unwrap(); + + zip.finish().unwrap(); } // Load an archive from buffer and check for test data. -fn check_test_archive(zip_file: R) -> zip::result::ZipResult> { +fn check_test_archive(zip_file: R) -> ZipResult> { let mut archive = zip::ZipArchive::new(zip_file).unwrap(); // Check archive contains expected file names. @@ -126,6 +148,7 @@ fn check_test_archive(zip_file: R) -> zip::result::ZipResult>(); @@ -136,10 +159,13 @@ fn check_test_archive(zip_file: R) -> zip::result::ZipResult(0xbeef)?; - extra_data.write_u16::(EXTRA_DATA.len() as u16)?; + extra_data.write_u16_le(0xbeef)?; + extra_data.write_u16_le(EXTRA_DATA.len() as u16)?; extra_data.write_all(EXTRA_DATA)?; - assert_eq!(file_with_extra_data.extra_data(), extra_data.as_slice()); + assert_eq!( + file_with_extra_data.extra_data(), + Some(extra_data.as_slice()) + ); } Ok(archive) @@ -149,7 +175,7 @@ fn check_test_archive(zip_file: R) -> zip::result::ZipResult( archive: &mut zip::ZipArchive, name: &str, -) -> zip::result::ZipResult { +) -> ZipResult { let mut file = archive.by_name(name)?; let mut contents = String::new(); @@ -187,6 +213,9 @@ fn check_archive_file_contents( name: &str, expected: &[u8], ) { + let file_permissions: u32 = archive.by_name(name).unwrap().unix_mode().unwrap(); + assert_eq!(file_permissions, 0o100755); + let file_contents: String = read_archive_file(archive, name).unwrap(); assert_eq!(file_contents.as_bytes(), expected); } @@ -203,3 +232,5 @@ const EXTRA_DATA: &[u8] = b"Extra Data"; const ENTRY_NAME: &str = "test/lorem_ipsum.txt"; const COPY_ENTRY_NAME: &str = "test/lorem_ipsum_renamed.txt"; + +const INTERNAL_COPY_ENTRY_NAME: &str = "test/lorem_ipsum_copied.txt"; diff --git a/tests/lzma.rs b/tests/lzma.rs new file mode 100644 index 00000000..01a14a2e --- /dev/null +++ b/tests/lzma.rs @@ -0,0 +1,21 @@ +#![cfg(feature = "lzma")] + +use std::io::{self, Read}; +use zip::ZipArchive; + +#[test] +fn decompress_lzma() { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("data/lzma.zip")); + let mut archive = ZipArchive::new(io::Cursor::new(v)).expect("couldn't open test zip file"); + + let mut file = archive + .by_name("hello.txt") + .expect("couldn't find file in archive"); + assert_eq!("hello.txt", file.name()); + + let mut content = Vec::new(); + file.read_to_end(&mut content) + .expect("couldn't read encrypted and compressed file"); + assert_eq!("Hello world\n", String::from_utf8(content).unwrap()); +} diff --git a/tests/zip_crypto.rs b/tests/zip_crypto.rs index d831c1e6..4c4cc8b2 100644 --- a/tests/zip_crypto.rs +++ b/tests/zip_crypto.rs @@ -16,46 +16,50 @@ // 000000b0 4b 05 06 00 00 00 00 01 00 01 00 5a 00 00 00 55 |K..........Z...U| // 000000c0 00 00 00 00 00 |.....| // 000000c5 +const ZIP_CRYPTO_FILE: &[u8] = &[ + 0x50, 0x4b, 0x03, 0x04, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0xbd, 0xb5, 0x50, 0x2f, 0x20, + 0x79, 0x55, 0x2f, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x65, + 0x73, 0x74, 0x2e, 0x74, 0x78, 0x74, 0xca, 0x2d, 0x1d, 0x27, 0x19, 0x19, 0x63, 0x43, 0x77, 0x9a, + 0x71, 0x76, 0xc9, 0xec, 0xd1, 0x6f, 0xd9, 0xf5, 0x22, 0x67, 0xb3, 0x8f, 0x52, 0xb5, 0x41, 0xbc, + 0x5c, 0x36, 0xf2, 0x1d, 0x84, 0xc3, 0xc0, 0x28, 0x3b, 0xfd, 0xe1, 0x70, 0xc2, 0xcc, 0x0c, 0x11, + 0x0c, 0xc5, 0x95, 0x2f, 0xa4, 0x50, 0x4b, 0x01, 0x02, 0x3f, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x54, 0xbd, 0xb5, 0x50, 0x2f, 0x20, 0x79, 0x55, 0x2f, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x74, 0x78, 0x74, 0x0a, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x31, 0xb2, 0x3b, 0xbf, 0xb8, 0x2f, 0xd6, 0x01, 0x31, + 0xb2, 0x3b, 0xbf, 0xb8, 0x2f, 0xd6, 0x01, 0xa8, 0xc4, 0x45, 0xbd, 0xb8, 0x2f, 0xd6, 0x01, 0x50, + 0x4b, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x55, + 0x00, 0x00, 0x00, 0x00, 0x00, +]; use std::io::Cursor; -use std::io::Read; +use zip::result::ZipError; #[test] fn encrypting_file() { - use zip::unstable::write::FileOptionsExt; use std::io::{Read, Write}; + use zip::unstable::write::FileOptionsExt; let mut buf = vec![0; 2048]; - let mut archive = zip::write::ZipWriter::new(std::io::Cursor::new(&mut buf)); - archive.start_file("name", zip::write::FileOptions::default().with_deprecated_encryption(b"password")).unwrap(); + let mut archive = zip::write::ZipWriter::new(Cursor::new(&mut buf)); + archive + .start_file( + "name", + zip::write::SimpleFileOptions::default().with_deprecated_encryption(b"password"), + ) + .unwrap(); archive.write_all(b"test").unwrap(); archive.finish().unwrap(); - drop(archive); - let mut archive = zip::ZipArchive::new(std::io::Cursor::new(&mut buf)).unwrap(); - let mut file = archive.by_index_decrypt(0, b"password").unwrap().unwrap(); + let mut archive = zip::ZipArchive::new(Cursor::new(&mut buf)).unwrap(); + let mut file = archive.by_index_decrypt(0, b"password").unwrap(); let mut buf = Vec::new(); file.read_to_end(&mut buf).unwrap(); assert_eq!(buf, b"test"); - } #[test] fn encrypted_file() { - let zip_file_bytes = &mut Cursor::new(vec![ - 0x50, 0x4b, 0x03, 0x04, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0xbd, 0xb5, 0x50, 0x2f, - 0x20, 0x79, 0x55, 0x2f, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x74, 0x65, 0x73, 0x74, 0x2e, 0x74, 0x78, 0x74, 0xca, 0x2d, 0x1d, 0x27, 0x19, 0x19, 0x63, - 0x43, 0x77, 0x9a, 0x71, 0x76, 0xc9, 0xec, 0xd1, 0x6f, 0xd9, 0xf5, 0x22, 0x67, 0xb3, 0x8f, - 0x52, 0xb5, 0x41, 0xbc, 0x5c, 0x36, 0xf2, 0x1d, 0x84, 0xc3, 0xc0, 0x28, 0x3b, 0xfd, 0xe1, - 0x70, 0xc2, 0xcc, 0x0c, 0x11, 0x0c, 0xc5, 0x95, 0x2f, 0xa4, 0x50, 0x4b, 0x01, 0x02, 0x3f, - 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0xbd, 0xb5, 0x50, 0x2f, 0x20, 0x79, 0x55, - 0x2f, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x73, 0x74, - 0x2e, 0x74, 0x78, 0x74, 0x0a, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, - 0x00, 0x31, 0xb2, 0x3b, 0xbf, 0xb8, 0x2f, 0xd6, 0x01, 0x31, 0xb2, 0x3b, 0xbf, 0xb8, 0x2f, - 0xd6, 0x01, 0xa8, 0xc4, 0x45, 0xbd, 0xb8, 0x2f, 0xd6, 0x01, 0x50, 0x4b, 0x05, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x00, 0x00, - ]); + use std::io::Read; + let zip_file_bytes = &mut Cursor::new(ZIP_CRYPTO_FILE); let mut archive = zip::ZipArchive::new(zip_file_bytes).unwrap(); assert_eq!(archive.len(), 1); //Only one file inside archive: `test.txt` @@ -78,20 +82,17 @@ fn encrypted_file() { // Wrong password let file = archive.by_index_decrypt(0, b"wrong password"); match file { - Ok(Err(zip::result::InvalidPassword)) => (), + Err(ZipError::InvalidPassword) => (), Err(_) => panic!( "Expected InvalidPassword error when opening encrypted file with wrong password" ), - Ok(Ok(_)) => panic!("Error: Successfully opened encrypted file with wrong password?!"), + Ok(_) => panic!("Error: Successfully opened encrypted file with wrong password?!"), } } { // Correct password, read contents - let mut file = archive - .by_index_decrypt(0, "test".as_bytes()) - .unwrap() - .unwrap(); + let mut file = archive.by_index_decrypt(0, "test".as_bytes()).unwrap(); let file_name = file.enclosed_name().unwrap(); assert_eq!(file_name, std::path::PathBuf::from("test.txt")); @@ -100,3 +101,21 @@ fn encrypted_file() { assert_eq!(data, "abcdefghijklmnopqrstuvwxyz123456789".as_bytes()); } } + +#[test] +fn buffered_read() { + use std::io::{BufReader, Read}; + + // delibirately pick a buffer capacity in a way that when `ZipCryptoReaderValid` read happens, it's not going to take entire buffer, + // for this file it needs to be between 13..=46 bytes (with exception of 44 bytes) + let zip_file_bytes = &mut Cursor::new(ZIP_CRYPTO_FILE); + let buffered = BufReader::with_capacity(13, zip_file_bytes); + let mut archive = zip::ZipArchive::new(buffered).unwrap(); + + let mut file = archive.by_index_decrypt(0, b"test").unwrap(); + + // should not panic with `Custom { kind: Other, error: "Invalid checksum" }` + // or `Custom { kind: InvalidInput, error: "corrupt deflate stream" }` + let mut data = Vec::new(); + file.read_to_end(&mut data).unwrap(); +} diff --git a/tests/zip_extended_timestamp.rs b/tests/zip_extended_timestamp.rs new file mode 100644 index 00000000..983e4fb5 --- /dev/null +++ b/tests/zip_extended_timestamp.rs @@ -0,0 +1,19 @@ +use std::io; +use zip::ZipArchive; + +#[test] +fn test_extended_timestamp() { + let mut v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/extended_timestamp.zip")); + let mut archive = ZipArchive::new(io::Cursor::new(v)).expect("couldn't open test zip file"); + + for field in archive.by_name("test.txt").unwrap().extra_data_fields() { + match field { + zip::ExtraField::ExtendedTimestamp(ts) => { + assert!(ts.ac_time().is_none()); + assert!(ts.cr_time().is_none()); + assert_eq!(*ts.mod_time().unwrap(), 1714635025); + } + } + } +}