Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/zint/backend/tests/fuzz/fuzz_data.c @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 /* fuzz_data.c - fuzzer for libzint (DATA_MODE, all symbologies except GS1_128, DBAR_EXP/STK & composites) */ | |
| 2 /* | |
| 3 libzint - the open source barcode library | |
| 4 Copyright (C) 2024 Robin Stuart <rstuart114@gmail.com> | |
| 5 | |
| 6 Redistribution and use in source and binary forms, with or without | |
| 7 modification, are permitted provided that the following conditions | |
| 8 are met: | |
| 9 | |
| 10 1. Redistributions of source code must retain the above copyright | |
| 11 notice, this list of conditions and the following disclaimer. | |
| 12 2. Redistributions in binary form must reproduce the above copyright | |
| 13 notice, this list of conditions and the following disclaimer in the | |
| 14 documentation and/or other materials provided with the distribution. | |
| 15 3. Neither the name of the project nor the names of its contributors | |
| 16 may be used to endorse or promote products derived from this software | |
| 17 without specific prior written permission. | |
| 18 | |
| 19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
| 20 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE | |
| 23 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| 24 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
| 25 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| 26 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
| 27 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
| 28 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| 29 SUCH DAMAGE. | |
| 30 */ | |
| 31 /* SPDX-License-Identifier: BSD-3-Clause */ | |
| 32 | |
| 33 #ifdef __cplusplus | |
| 34 extern "C" { | |
| 35 #endif /* __cplusplus */ | |
| 36 | |
| 37 #if 0 | |
| 38 #define Z_FUZZ_DEBUG /* Set `symbol->debug` flag */ | |
| 39 #define Z_FUZZ_SET_OUTPUT_OPTIONS /* Set `symbol->output_options` */ | |
| 40 #endif | |
| 41 #include "fuzz.h" | |
| 42 | |
| 43 int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size) { | |
| 44 struct zint_symbol *symbol; | |
| 45 int idx; | |
| 46 | |
| 47 /* Ignore empty or very large input */ | |
| 48 if (size < 1 || size > 10000) { | |
| 49 return 0; | |
| 50 } | |
| 51 | |
| 52 symbol = ZBarcode_Create(); | |
| 53 assert(symbol); | |
| 54 | |
| 55 for (idx = 0; idx < ZARRAY_SIZE(settings); idx++) { | |
| 56 const unsigned char *input; | |
| 57 int length; | |
| 58 int ret; | |
| 59 | |
| 60 if (!ZBarcode_ValidID(idx)) { | |
| 61 continue; | |
| 62 } | |
| 63 if (idx == BARCODE_GS1_128 || idx == BARCODE_DBAR_EXP || idx == BARCODE_DBAR_EXPSTK | |
| 64 || (ZBarcode_Cap(idx, ZINT_CAP_COMPOSITE) & ZINT_CAP_COMPOSITE)) { | |
| 65 continue; | |
| 66 } | |
| 67 | |
| 68 input = data; | |
| 69 length = set_symbol(symbol, idx, 1 /*chk_sane*/, 0 /*no_eci*/, &input, size); | |
| 70 if (!length) { | |
| 71 continue; | |
| 72 } | |
| 73 | |
| 74 ret = ZBarcode_Encode(symbol, input, length); | |
| 75 assert(ret != ZINT_ERROR_ENCODING_PROBLEM); | |
| 76 } | |
| 77 | |
| 78 ZBarcode_Delete(symbol); | |
| 79 | |
| 80 return 0; | |
| 81 } | |
| 82 | |
| 83 #ifdef __cplusplus | |
| 84 } | |
| 85 #endif /* __cplusplus */ | |
| 86 | |
| 87 /* vim: set ts=4 sw=4 et : */ |
