test/fuzzing


Log

Author Commit Date CI Message
Garret Rieger 675ebbeb 2021-06-16T10:40:46 [subset] don't alloc zero bytes. It will be leaked later since hb_blob_create() won't set up the blob to cleanup since it has length zero.
Behdad Esfahbod bdfed8f1 2021-06-14T15:46:04 [blob] Add failing versions of create API Fixes https://github.com/harfbuzz/harfbuzz/issues/2567 New API: +hb_blob_create_or_fail() +hb_blob_create_from_file_or_fail() Use these in util/ to distinguish empty file from not-found file. Only err on the latter.
Qunxin Liu 35d6af69 2021-06-04T10:04:27 [subset] fix fuzzer testcase: https://oss-fuzz.com/testcase-detail/5965777994907648
Qunxin Liu 1b6008ca 2021-06-02T15:07:18 fix fuzzer testcase: https://oss-fuzz.com/testcase-detail/5417934246772736
Qunxin Liu 7ab0f4ed 2021-05-27T11:40:34 fuzzer fix
Garret Rieger 425ba1f4 2021-04-19T18:01:24 [subset] fixes infinite loop in hb_set_get_max(). Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
Garret Rieger ec432106 2021-04-19T17:18:05 [subset] fix infinite loop caused by alloc failure in repacker. Fixes: https://oss-fuzz.com/testcase-detail/5609112151916544.
Garret Rieger 0e845d97 2021-04-19T16:09:37 [subset] fix memory leak in repacker caused by failed alloc. Fixes: https://oss-fuzz.com/testcase-detail/5616763250278400.
Garret Rieger 3fb62cdc 2021-04-05T15:48:34 [subset] fail on offset overflow in tables that we don't repack. Fixes: https://oss-fuzz.com/testcase-detail/5229304507138048
Qunxin Liu 9dc9f038 2021-04-08T11:00:17 [subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/5858518134554624
Qunxin Liu 4af5dace 2021-04-07T10:56:49 [subset] add fuzzer testcase
Garret Rieger 64122b5a 2021-04-05T12:53:08 [subset] don't visit lookup if covered glyph set has failed. If covered glyph set is in error then the same lookup can be recursed into repeatedly potentially causing a fuzzer timeout. Fixes: https://oss-fuzz.com/testcase-detail/5416421032067072.
Garret Rieger 71d6d156 2021-04-05T12:03:17 [subset] clamp distance to prevent shifting outside of the limits of int64. Fixes https://oss-fuzz.com/testcase-detail/4961171477233664.
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