test/fuzzing


Log

Author Commit Date CI Message
Garret Rieger c5c13006 2021-03-31T11:23:46 [subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536
Garret Rieger adca4ce0 2021-03-30T13:20:50 [subset] fixes https://oss-fuzz.com/testcase-detail/6173520787800064. Caused by incorrect bounds check in glyph closure for context lookups.
Garret Rieger 752e393a 2021-03-29T17:23:33 [subset] avoid calling clear on null pool set.
Garret Rieger 8741914a 2021-03-29T16:39:44 [subset] fix memory leak when map insert fails.
Garret Rieger 5b6da6d2 2021-03-29T16:19:17 [subset] add fuzzer test case.
Garret Rieger a804a0c9 2021-03-29T14:25:20 [subset] add fuzzer test case.
Khaled Hosny f2d08578 2021-03-16T00:19:40 [tests] Increase shape-fuzzer timeout
Garret Rieger 5ca353a2 2021-02-12T15:16:59 [subset] fix heap buffer overflow found by fuzzer.
Behdad Esfahbod 33a0f0b6 2021-02-09T12:55:45 [test] Remove fuzzed test font that triggers virus alert Fixes https://github.com/harfbuzz/harfbuzz/issues/2750
Garret Rieger f94bf9f0 2021-01-25T15:57:42 [set fuzzer] limit the total number of set members in a fuzzing input. Currently the fuzzer can create arbitarily long inputs which once big enough will trigger a timeout.
Garret Rieger a4c3732f 2020-09-16T12:35:09 [ENOMEM] fix set clear() causing corruption if the set is in_error().
Khaled Hosny 84dd65a8 2020-10-13T20:21:28 [test] Remove timeout from test runners See https://github.com/harfbuzz/harfbuzz/issues/2707#issuecomment-707744079 This wasn’t inconsistent as well, HB_TEST_SUBSET_FUZZER_TIMEOUT defaulted to 12 in the test runner, but it was overridden to 50 in meson.build, and then meson has its own test timeout.
Garret Rieger bbbcad0d 2020-09-16T11:19:40 Revert "[ENOMEM] don't perform set process operations if the other set is in an error state." This reverts commit f3929abafe3b64f15d0dc2d21ad7b493eeb92dfe.
Garret Rieger f3929aba 2020-09-15T13:06:36 [ENOMEM] don't perform set process operations if the other set is in an error state. Running a process while the other set is in an error state can potentially corrupt this sets map map (for example by overwritting all of the major values with 0).
Garret Rieger 8c3d4de7 2020-09-09T12:38:34 [subset] Fix integer underflow in ContextFormat2.
Garret Rieger 9825e3dd 2020-08-26T17:31:50 [ENOMEM] fix access to unitialized memory. If the serialize() call fails to write the object then we can't safely read varstore_prime fields. Fixes https://oss-fuzz.com/testcase-detail/5137462782066688.
ebraminio 1e48225c 2020-08-13T23:22:14 [ENOMEM] Check whether serialize context isn't in error
Ebrahim Byagowi 6e32145d 2020-08-13T00:13:06 [meson] Make compatbile with 0.47.0
Garret Rieger 9562239f 2020-08-12T13:01:22 [ENOMEM] check for error in lookup visited set.
Garret Rieger 6f754852 2020-08-11T15:40:47 [ENOMEM] skip asserts in to_bias if serializer is in an error state.
Ebrahim Byagowi 057769b1 2020-08-12T02:30:33 [fuzzer] minor
Ebrahim Byagowi 04179380 2020-08-12T02:19:06 [fuzzer] Mark alloc_state as unused It is really unused when failing-alloc isn't on.
Ebrahim Byagowi 51933578 2020-08-11T23:51:59 Revert "Remove autotools build support" This reverts commit 01ac32aab2109681abc58bb2f96a4ef4a7f0c6df.
Ebrahim Byagowi ffe06c8f 2020-08-08T13:17:34 [glyf] Guard all the public APIs against null pool runs Fixes https://crbug.com/oss-fuzz/24575 and https://crbug.com/oss-fuzz/24737
Ebrahim Byagowi 01ac32aa 2020-08-02T11:35:55 Remove autotools build support
Ebrahim Byagowi 679fac87 2020-07-30T15:29:43 Skip hb_shape if buffer object is immutable
Garret Rieger 18ab8029 2020-07-31T14:40:49 [ENOMEM] check vector status in cmap subsetting.
Garret Rieger 06dbb6ac 2020-07-31T15:56:14 [ENOMEM] in GSUB ChainContext subsetting check maps for allocation errors.
Garret Rieger fb147779 2020-07-31T14:00:38 [ENOMEM] Check result of vector resize in CBDT subsetting.
Ebrahim Byagowi efd716de 2020-07-31T08:58:53 [cff] Check for scalars array resize result Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24504
Garret Rieger 040ed094 2020-07-30T15:14:02 [ENOMEM] popragate packed/packed_map errors to the serializer. Will disable further modifications based on a bad state.
Garret Rieger 7f358a55 2020-07-30T13:57:30 [ENOMEM] unchecked resize in CFF2.
Garret Rieger 32f052b0 2020-07-30T13:45:04 [ENOMEM] Fix several instances of not checking resize in CFF.
Garret Rieger 15644ee6 2020-07-29T16:37:39 [ENOMEM] fix memory leak if allocation fails during pop_pack().
Garret Rieger 42237adf 2020-07-29T15:18:25 [ENOMEM] make serializer modification operations no-ops if it's in an error state.
Garret Rieger 4ba8e3c6 2020-07-29T12:33:42 [ENOMEM] Fix failure to check calloc return. Fixes https://oss-fuzz.com/testcase-detail/6246465148813312.
Garret Rieger d307c24a 2020-07-29T12:23:37 [ENOMEM] check resize() return. Fixes https://oss-fuzz.com/testcase-detail/5641892164009984.
Ebrahim Byagowi 48ad7459 2020-07-29T08:09:08 [ENOMEM] Fix buffer's content check logic So now rest of shape fuzzer also can be enabled. Fixes #2571
Ebrahim Byagowi c33e8006 2020-07-14T19:29:58 [fuzz] Implement failing allocator
Ebrahim Byagowi 5c46683a 2020-07-22T17:23:22 [fuzz] increase shape fuzzer timeout as https://circleci.com/gh/harfbuzz/harfbuzz/149203
Ebrahim Byagowi 945bcd72 2020-07-15T09:54:32 minor
Ebrahim Byagowi fa0436dd 2020-07-15T09:52:40 [ENOMEM][fuzzer/subset] early return if the result is null I don't see _or_fail APIs idiomatic for the project but since it is there, let's have this
Ebrahim Byagowi 11d583a9 2020-07-14T06:23:06 [aat] Consume glyph insertion from buffer's max_ops (#2223) Glyph insertion is an expensive operation and we like to have it limited based on buffer's input size which is handled by buffer's max_ops. clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5754958982021120: Before the change: 0.67s user 0.00s system 99% cpu 0.674 total After the change: 0.02s user 0.00s system 98% cpu 0.024 total Which takes much longer on valgrind and tsan bots.
Ebrahim Byagowi cd6f62d9 2020-07-12T23:05:11 [meson] Raise timeout value of subset fuzzer testcases happens when tsan is enabled
Ebrahim Byagowi e4f99691 2020-07-08T15:10:25 [ci] migrate to meson two bots, one bot here (distcheck) and one in travis still run autotools and won't be removed till we decide about autotools
Ebrahim Byagowi e04050e3 2020-07-08T01:06:30 [meson] split fuzzer_ldflags before use
Ebrahim Byagowi c5def347 2020-07-06T23:29:56 [meson] don't underscorify fuzzers names
Ebrahim Byagowi d608f2ac 2020-07-06T22:40:51 [meson] Add fuzzer_ldflags As ots, https://github.com/khaledhosny/ots/commit/4d37b9b
Ebrahim Byagowi a470b0b2 2020-07-04T23:56:10 Minor, disable strict-aliasing warning in set fuzzer ../test/fuzzing/hb-set-fuzzer.cc: In function ‘int LLVMFuzzerTestOneInput(const uint8_t*, size_t)’: ../test/fuzzing/hb-set-fuzzer.cc:38:82: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 38 | const instructions_t &instructions = reinterpret_cast<const instructions_t &> (data); | And it is already disabled at project level so let's disable it here also.
Ebrahim Byagowi a07672d3 2020-07-04T14:12:55 [py] minor, replace os.environ.get with os.getenv
Ebrahim Byagowi 47a0fbec 2020-06-21T02:34:59 [meson] Mark longer tests with slow So one can skip them easily by `meson test -Cbuild --no-suite slow`
Ebrahim Byagowi 08816117 2020-06-20T01:02:50 [fuzzer] Make some use for test_font API calls Making some use for result of some of the test_font calls to make sure compilers in fuzzers aren't just optimizing the calls.
Christoph Reiter 03bd6ead 2020-06-03T23:52:10 [meson] Only pass required dependencies to everything Instead of passing dependencies as required we used one giant shared dependency list containing all dependencies for every library/executable. While this kinda works, the specified deps are also used for generating the pkg-config files and this leads to lots of Requires.private and Libs.private entries which aren't really needed. This removes the "deps" array and replaces it with a few smaller ones and makes sure the public libraries only get passed the dependencies actually needed. Fixes #2441
Ebrahim Byagowi a9d13463 2020-05-30T14:17:56 [meson] Categorize tests using `suite: [...]` So one can run a category of interested tests like meson test -Cbuild --suite aots --suite src --print-errorlogs Intead issuing particular tests which also is possible like meson test -Cbuild test-shape --print-errorlogs
Ebrahim Byagowi 7554f618 2020-05-28T22:51:29 minor, use sys.exit print shorthand
Ebrahim Byagowi f7562672 2020-05-21T17:01:04 [meson] Use / instead join_paths We need some of the very recent features of meson, let's use the new features also
Ebrahim Byagowi b8d1760b 2020-05-21T14:45:41 [meson/ci] Increase cmap fuzzer timeout even more
Ebrahim Byagowi 4b12b846 2020-05-21T14:23:36 [meson] Increase timeout in hope to resolve Actions' bot timeout
Ebrahim Byagowi 1c4dd79c 2020-05-21T08:49:14 [ci] Increase timeout as gh bot issue isn't resolved by serial test
Ebrahim Byagowi 8667df55 2020-05-21T07:19:37 [meson] Unbreak the build, oops
Ebrahim Byagowi 791debdc 2020-05-21T07:15:09 [meson][ci] Don't run subset fuzzer test in parallel resolves https://github.com/harfbuzz/harfbuzz/runs/695051808#step:6:595 failure
Ebrahim Byagowi 8a5368e2 2020-05-21T07:00:40 [tests] Enable more gid misc calls on draw fuzzer
Ebrahim Byagowi c68ab4b5 2020-05-21T00:25:17 Fix _get_ligature_caret's oob read issue AAT::Lookup has no other way to detect whether it is returned from a real and sanitized font data or from a null pool, this checks if the table has been recognized valid by sanitizer by checking table's major version which is zero if returned from a null pool and non-zero if is from a sanitized font data, it is expected the other calls of the table (unlikely to have more calls however) also do a similar version check before calling the lookups used on the table.
ckitagawa b22f61d8 2020-04-21T11:49:05 Fix bug
ariza 22f7c61a 2020-04-17T23:49:51 implement SID to glyph ID mapping with predefined Charset Also fixes oss-fuzz 21769
Qunxin Liu 0d569598 2020-04-05T18:44:26 [subset] fixes dangling object_t issue in FeatureVariationRecord Fixes https://crbug.com/oss-fuzz/21560 revert () does not clean up useless object_t. Adjust the order of subsetting substitutions and conditions to avoid dangling object_t.
Ebrahim Byagowi 57b7de03 2020-04-05T17:07:48 [subset] Fail ClassDefFormat1 serialization if no space available Fixes https://crbug.com/oss-fuzz/21580
Garret Rieger 014e038b 2020-03-31T16:29:29 [subset] Bail out of context lookup expansion once the lookup limit is encountered.
Garret Rieger 5d345d0c 2020-03-31T17:46:19 [subset] Limit the number of lookup indices processed subsetting Feature. > Also, remove two unnessecary full iterations of the lookup index iterator during serialization of the index array. Fixes fuzzer found timeout.
Ebrahim Byagowi 96d792ae 2020-03-24T14:05:47 [avar] Prevent mul overflow Fixes https://crbug.com/oss-fuzz/21350
Garret Rieger 4ad686b9 2020-03-25T23:32:28 [subset] fix fuzzer timeout in layout closure Bail out of chain context lookup expansion once the lookup limit is encountered.
Ebrahim Byagowi 7054b122 2020-03-24T22:35:41 [meson] Mark rest of non-install executables explicitly
Ebrahim Byagowi 600bf21f 2020-03-24T20:08:40 [meson] Add draw-fuzzer runner
Ebrahim Byagowi 28deb6b7 2020-03-24T19:41:53 [meson] test/fuzzing simplify
Ebrahim Byagowi 78622231 2020-03-24T19:39:42 [meson] More comment on tests are causing timeout failure
Ebrahim Byagowi d57fc627 2020-03-24T16:03:04 [meson] raise timeout value of subset fuzzer
Ebrahim Byagowi 76169526 2020-03-19T11:43:37 [tests] Remove py2 workaround for lack of timeout in subprocess
Ebrahim Byagowi b5526a09 2020-03-18T23:58:20 [tools] Remove in-house 'which' now that we have py3
Garret Rieger 430bf696 2020-03-13T11:20:34 Add potentially crashing font as a fuzzer seed.
Ebrahim Byagowi 755a77d6 2020-01-29T22:26:04 Move outline draw API behind HB_EXPERIMENTAL_API directive
Garret Rieger 834a224a 2020-03-12T03:02:36 [subset] Put a limit on the number of lookup indices that can be visited during closures Fixes https://crbug.com/oss-fuzz/21025
Ebrahim Byagowi c494d7ab 2020-03-11T19:44:13 Remove cmake testing and add meson build bot CMake tests are broken anyway as py3 changes so let's get rid of them
Ebrahim Byagowi 1c3f80ba 2020-03-11T19:29:47 [meson] Minor updates
Khaled Hosny 04438554 2018-11-15T00:25:41 meson: Update build files after rebase
Tim-Philipp Müller 618584e9 2018-11-14T20:19:36 meson: rename incbase to incconfig Makes it clearer what it's for: config.h. See #4.
Mathieu Duponchelle d4a72373 2018-05-17T16:25:22 meson: all tests passing on Windows / MSVC
Mathieu Duponchelle 7ee650b1 2018-05-17T23:52:36 meson: refactor fuzzing test
Mathieu Duponchelle 920efc0e 2018-05-17T01:28:53 Add Meson build definitions Fixes #490 http://mesonbuild.com
Ebrahim Byagowi 0d729b4b 2020-03-07T11:53:12 [avar] Fix out-of-bound read when input is bigger than all the coords 'i' shouldn't become equal to array's length which as the increament is happened at end of the loop, if the input is bigger than all the table coords, it will be equal to array's length. Fixes https://crbug.com/oss-fuzz/21092
Ebrahim Byagowi 446d1e3b 2020-03-04T23:32:50 [fuzz] Add more of fixed cases
Ebrahim Byagowi 99b5b3f1 2020-03-04T11:15:46 [gvar] Make sure TupleVarHeader has the needed size Fixes https://crbug.com/oss-fuzz/21026
Ebrahim Byagowi 558f9227 2020-03-03T20:27:19 [fuzz] Avoid empty memcpy and ubsan complain by length checking before memcpy
Ebrahim Byagowi 6543d166 2020-03-03T20:26:46 [fuzz] Remove the not yet fixed timeout, going to investigate
Ebrahim Byagowi 2bbf1c86 2020-03-03T19:42:38 [fuzz] Add more of supposed to already be fixed cases from Chromium bug tracker
Ebrahim Byagowi f253f06c 2020-03-03T18:57:13 [fuzz] Add another fixed case https://crbug.com/oss-fuzz/14626 another numerous subtables count which is fixed by d38360397
Ebrahim Byagowi d3836039 2020-03-02T22:41:08 Limit OT::Lookup subtables (#2219) Fixes https://crbug.com/oss-fuzz/13943
Ebrahim Byagowi 29efd964 2020-03-02T14:22:29 [fuzz] Add cases that marked as wontfix Let's see if they were really false alarms, if so, let's just have them.
Ebrahim Byagowi cb65150f 2020-02-29T16:12:54 [draw] minor
Ebrahim Byagowi 86c40b3a 2020-02-29T14:11:46 [fuzz/draw] Call _get_glyph_extents Other render related APIs also may be added also later such as ot-color and future rendering things.
Michiharu Ariza 5ab50eeb 2020-02-29T01:32:29 collect_unicodes() with clamp, calling add_range() Use add_range instead an inner loop, clamp its input number by number of glyphs a face has. Even the face cmap12 and 13 have 32-bit hb_codepoint_t, which is here used to make timeout, face's maxp has 16-bit gid limitation at least for now, using that makes sure we both fix and the timeout and don't need to change much things here also in order to support 32-bit gids also someday. Fixes #2204