test/fuzzing

Branch


Log

Author Commit Date CI Message
Behdad Esfahbod f159600c 2025-10-17T21:49:40 Fix a draw fuzzer uninitialized-memory issue (#5615) Fixes https://oss-fuzz.com/testcase-detail/5714890590584832
Behdad Esfahbod a89c36e0 2025-09-02T13:05:11 [GPOS/kerx] Support attaching marks to bases after them (#5520) See comments. Fuzzer found. I'm surprised this was not discovered before though. I hope I have not missed anything. Fixes https://oss-fuzz.com/testcase-detail/6399443634290688
Garret Rieger 04d60de6 2025-07-23T18:55:56 [CFF2] Fix fuzzer failure in CFF2. Fixes https://oss-fuzz.com/testcase-detail/5291661985120256
Behdad Esfahbod ba309a18 2025-04-06T13:54:47 [test/fuzzing] Port all to TAP
Behdad Esfahbod 58d7ab2d 2025-04-06T13:42:13 [meson] Remove unneeded dependencies
Behdad Esfahbod 2b5ae9de 2025-04-06T12:46:43 [meson] Use a glob.py instead of ls / dir
Behdad Esfahbod b2179dcf 2025-04-06T02:56:20 [meson.build] Another try
Behdad Esfahbod a777a9c5 2025-04-06T02:47:06 [meson.build] Try fix using of `find`
Behdad Esfahbod e3327777 2025-04-06T02:30:09 [fuzzing/subset] Make TAP protocol
Behdad Esfahbod 740a103b 2025-04-06T02:26:17 [meson] See if this fixes bots
Behdad Esfahbod fbda749b 2025-04-06T02:01:28 [meson.build] Try to bring down required version range() not found
Behdad Esfahbod da5a9fb8 2025-04-06T01:50:01 [meson.build] Remove unused fs module
Behdad Esfahbod 1db93d2f 2025-04-06T01:46:23 [test/fuzzing/subset] Run chunks in parallel
Behdad Esfahbod db953a43 2025-04-06T01:06:25 [meson.build] Cosmetic
Behdad Esfahbod b5300040 2025-04-05T17:15:50 [run-fuzzer-tests] Remove duplicate chunksize
Behdad Esfahbod e0aee581 2025-03-22T13:07:10 [test] Respect MESON_EXE_WRAPPER in more test runners It's not working for me though. Meson doesn't seem to set WINEPATH during testing.
Behdad Esfahbod 2a878b1b 2025-03-07T17:23:17 [font-funcs] Add two new API + hb_font_set_funcs_using() + hb_font_list_funcs() Part of https://github.com/harfbuzz/harfbuzz/issues/5117
Khaled Hosny 7ba3efa5 2025-02-09T18:42:45 [tests/fuzzing] Use the correct dirs for subset and repacker fuzzers
Khaled Hosny c404d8fc 2025-02-09T18:08:50 [test/fuzzing] Merge hb_fuzzer_tools.py back and simplify
Khaled Hosny 4c43fdcd 2025-02-09T17:52:13 [test/fuzzing] Simplify Python scripts further We always path the fuzzer path in meson, so we don’t need to search for fuzzer path in the scripts, and then we can use one script for all the fuzzers.
Behdad Esfahbod c29b1de3 2025-02-09T15:38:18 [test/fuzzing] Remove old cruft
Behdad Esfahbod 86329643 2025-02-09T15:12:03 [test/fuzzing] Call binaries with 64 fonts at a time Second try... Previous attempt caused a too-many-command-line-args on Windows. https://github.com/harfbuzz/harfbuzz/issues/5061
Behdad Esfahbod be22e43d 2025-02-09T14:55:44 [test/fuzzing] Run each fuzzer on all fonts in one process Much much faster, specially under valgrind, than spawning one process per font. Fixes https://github.com/harfbuzz/harfbuzz/issues/5061
Behdad Esfahbod 6738ee3d 2025-02-09T13:30:19 [ci/fedora-valgrind] Add time multiplier of 10 and run slow tests
Behdad Esfahbod fc4d5077 2025-02-09T13:28:45 [hb-draw-fuzzer] Increase test time I'm getting timeouts. Might be an infinite loop. But let's see.
Behdad Esfahbod cb6779f9 2025-02-09T08:39:03 [test] Try running slow tests early Probably already happens, but this wouldn't hurt. https://github.com/harfbuzz/harfbuzz/issues/4153#issuecomment-2646125367
Garret Rieger bdb50f1c 2025-01-07T20:32:05 [repacker] Also rename api method from hb_subset_repack_or_fail -> hb_subset_serialize_or_fail.
Garret Rieger 05650416 2025-01-07T19:56:25 [repacker] rename hb-subset-repacker -> hb-subset-serialize. Also hb_link_t and hb_object_t to hb_subset_serialize_link_t and hb_subset_serialize_object_t.
Garret Rieger 5a6f5922 2025-01-06T21:16:24 [repacker] Promote repacking API to stable. For #227.
Julien Nabet e1572054 2024-10-06T18:51:33 unused-parameter in test/fuzzing/hb-draw-fuzzer.cc ../test/fuzzing/hb-draw-fuzzer.cc:19:28: error: unused parameter 'dfuncs' [-Werror,-Wunused-parameter] _move_to (hb_draw_funcs_t *dfuncs, void *draw_data_, ^ ../test/fuzzing/hb-draw-fuzzer.cc:22:10: error: unused parameter 'user_data' [-Werror,-Wunused-parameter] void *user_data) ^ ../test/fuzzing/hb-draw-fuzzer.cc:31:28: error: unused parameter 'dfuncs' [-Werror,-Wunused-parameter] _line_to (hb_draw_funcs_t *dfuncs, void *draw_data_, ^ ../test/fuzzing/hb-draw-fuzzer.cc:34:10: error: unused parameter 'user_data' [-Werror,-Wunused-parameter] void *user_data) ^ ../test/fuzzing/hb-draw-fuzzer.cc:44:33: error: unused parameter 'dfuncs' [-Werror,-Wunused-parameter] _quadratic_to (hb_draw_funcs_t *dfuncs, void *draw_data_, ^ ../test/fuzzing/hb-draw-fuzzer.cc:46:15: error: unused parameter 'control_x' [-Werror,-Wunused-parameter] float control_x, float control_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:46:32: error: unused parameter 'control_y' [-Werror,-Wunused-parameter] float control_x, float control_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:48:15: error: unused parameter 'user_data' [-Werror,-Wunused-parameter] void *user_data) ^ ../test/fuzzing/hb-draw-fuzzer.cc:58:29: error: unused parameter 'dfuncs' [-Werror,-Wunused-parameter] _cubic_to (hb_draw_funcs_t *dfuncs, void *draw_data_, ^ ../test/fuzzing/hb-draw-fuzzer.cc:60:11: error: unused parameter 'control1_x' [-Werror,-Wunused-parameter] float control1_x, float control1_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:60:29: error: unused parameter 'control1_y' [-Werror,-Wunused-parameter] float control1_x, float control1_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:61:11: error: unused parameter 'control2_x' [-Werror,-Wunused-parameter] float control2_x, float control2_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:61:29: error: unused parameter 'control2_y' [-Werror,-Wunused-parameter] float control2_x, float control2_y, ^ ../test/fuzzing/hb-draw-fuzzer.cc:63:11: error: unused parameter 'user_data' [-Werror,-Wunused-parameter] void *user_data) ^ ../test/fuzzing/hb-draw-fuzzer.cc:73:31: error: unused parameter 'dfuncs' [-Werror,-Wunused-parameter] _close_path (hb_draw_funcs_t *dfuncs, void *draw_data_, ^ ../test/fuzzing/hb-draw-fuzzer.cc:75:13: error: unused parameter 'user_data' [-Werror,-Wunused-parameter] void *user_data) ^ 16 errors generated.
Khaled Hosny cf1fdf16 2024-06-27T06:54:02 Drop autotools build Fixes https://github.com/harfbuzz/harfbuzz/issues/4720
Behdad Esfahbod 49c8493f 2024-06-20T11:16:40 [test] Build with HB_MINI Also add CONFIG.md instructions for building configs with meson. Fixes https://github.com/harfbuzz/harfbuzz/issues/4760
Garret Rieger 0660a4d4 2024-05-13T19:28:57 [subset] fix fuzzer found heap use after free in BASE subsetting.
Behdad Esfahbod ba1f194a 2024-05-02T12:18:11 [gsubgpos] Reduce stack use in recursion
Behdad Esfahbod d07d70ae 2024-03-22T11:43:37 [varc] Add test
Behdad Esfahbod 1121d80b 2024-03-22T10:45:36 [varc] Add a conditional test font
Behdad Esfahbod 7c874354 2024-03-20T15:34:24 [varc] Implement conditionSets
Behdad Esfahbod 3ffd92f0 2024-03-17T12:38:30 [varc] Add a couple of seeds for the fuzzer
Garret Rieger c84acc8e 2024-04-08T23:46:14 [subset] Fix fuzzer found memory leak. Fixes https://oss-fuzz.com/testcase-detail/6159925345583104.
Garret Rieger ef1f5c4e 2024-01-08T22:17:55 [subset] Re-use common Coverage subsetting function in PairPosFormat2. Was using an identical but less efficient version. Fixes fuzzer test case: https://oss-fuzz.com/testcase-detail/6151390002806784
Garret Rieger 333946b0 2023-09-28T19:02:37 [subset] Fix fuzzer timeout. Fixes https://oss-fuzz.com/testcase-detail/5458896606855168. Limit iteration over coverage in MarkLigPosFormat1 subsetting to the number of glyphs in the liga array.
Qunxin Liu 9ceb800a 2023-09-28T10:37:48 fuzzer fix https://oss-fuzz.com/testcase-detail/5842152921628672 Access TupleVariationData through blob, because we don't sanitize var_data
Qunxin Liu fd3eb2c6 2023-08-24T08:59:18 fuzzer fix: https://oss-fuzz.com/testcase-detail/6032126569742336
Garret Rieger a1f034ea 2023-08-28T21:10:16 [repacker] fix fuzzer failure. Fixes: https://oss-fuzz.com/testcase-detail/6490945267564544
Garret Rieger ca906e87 2023-08-16T23:37:03 [repacker] fix fuzzer timeout. Corrects some mistakes in the handling of incoming_edges_ when memory allocation failures happen.
Behdad Esfahbod 94d4283b 2023-08-01T15:05:17 [graph] Handle a malloc fail Fixes https://oss-fuzz.com/testcase-detail/4579249263345664
Behdad Esfahbod 997986ab 2023-07-09T15:15:33 [subset/hvar] Error handling Fixes https://oss-fuzz.com/testcase-detail/5029952234586112
Behdad Esfahbod f60dbd90 2023-07-08T16:21:24 Fix thinko Fixes https://oss-fuzz.com/testcase-detail/4787105656864768
Behdad Esfahbod 25297408 2023-07-03T10:34:26 [COLR] Fix PaintComposite sanitize timeout Was timing out after recent sanitize() change. Fixes https://oss-fuzz.com/testcase-detail/5692635449524224
Behdad Esfahbod 0cf759b0 2023-07-02T12:15:43 [Glyph] Don't shift anchored Composite if phantom_only Fixes https://oss-fuzz.com/testcase-detail/5114131137822720
Behdad Esfahbod cc44b3bc 2023-06-29T16:12:10 [subset/cff1] Handle an error condition Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
Behdad Esfahbod 62f5ed46 2023-06-28T12:02:52 [subset/cff] Fix an infinite loop Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
Behdad Esfahbod 347b9448 2023-06-26T18:09:40 [null] Fix getting Crap(hb_bytes_t) Fixes https://oss-fuzz.com/testcase-detail/6187272924692480
Behdad Esfahbod 6c4f975d 2023-06-25T23:37:08 Add a fuzzer font
Garret Rieger db700b56 2023-06-12T23:38:26 [subset] fix fuzzer timeout. Fixes: https://oss-fuzz.com/testcase-detail/6681253479579648. Limits iteration of coverage table during MATH subset to valid glyphs.
Behdad Esfahbod 2e6919d5 2023-06-10T10:08:56 [subset/cff2] Error handling Fixes https://oss-fuzz.com/testcase-detail/4916785942757376
Behdad Esfahbod d08aee5a 2023-06-08T13:20:28 Add fuzzing test
Behdad Esfahbod ada1e9a9 2023-06-06T14:46:06 [graph/serialize] Handle empty blob Fixes https://oss-fuzz.com/testcase-detail/4877513265119232
Behdad Esfahbod a92b288e 2023-06-06T14:32:25 [serializer] Handle snapshotting when current is nullptr Happens with memory failure / fuzzing. Fixes https://oss-fuzz.com/testcase-detail/6292420615340032
Behdad Esfahbod c2eaedd2 2023-06-04T09:25:07 [fuzzing] Add a test font From https://oss-fuzz.com/testcase-detail/5855710991482880
Garret Rieger f3b4d35f 2023-05-29T22:38:40 [subset] Fix fuzzer crash. https://oss-fuzz.com/testcase-detail/6608005089853440
Garret Rieger 20c564bc 2023-05-26T23:04:25 [repacker] Fix fuzzer memory leak. https://oss-fuzz.com/testcase-detail/6419865171525632
Garret Rieger a652281e 2023-05-26T19:47:50 [subset] Fix fuzzer timeout. Fixes https://oss-fuzz.com/testcase-detail/5979721620652032. Timeout was caused by degenerate map insert behaviour due to poor integer hash function. Presize the map to avoid it. Also fixes collect_mapping() for cmap format 13.
Garret Rieger db23be64 2023-05-02T00:06:08 [subset] clamp head *Min/*Max values to fit within 16 bit signed int. Fixes fuzzer https://oss-fuzz.com/testcase-detail/4549472192692224.
Garret Rieger b3fed4fa 2023-04-27T22:13:30 [repacker] fix fuzzer found memory leak. Fixes https://oss-fuzz.com/testcase-detail/5196242811748352
Garret Rieger 2175f5d0 2023-04-24T21:13:18 [subset] Fix inefficient ItemVariationStore subsetting w/ retain_gids. ItemVariationStore is relying on the assumption that the inner_map is populated for all output glyphs, this is not true for subsetting operations with retain gids enabled. Fixes fuzzer timeout: https://oss-fuzz.com/testcase-detail/4575222591520768.
Garret Rieger 647b0247 2023-04-17T22:47:47 [subset] Fix fuzzer issue https://oss-fuzz.com/testcase-detail/6521393809588224
Garret Rieger 2cd81fdf 2023-03-30T22:11:43 [subset] fix memory leak. Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/6169920089227264
Garret Rieger be872001 2023-03-24T17:30:53 [subset] fix buffer overflow fuzzer reported issue.
Garret Rieger 79ae6b65 2023-03-24T17:14:55 [subset] Fix fuzzer found memory leaks.
Garret Rieger f0f7f225 2023-03-20T18:39:49 [subset] fix fuzzer found null deref. https://oss-fuzz.com/testcase-detail/5844352760152064
Garret Rieger 3d05b961 2023-03-13T21:34:26 [subset] track which glyphs have allocated memory so we can clean up correctly. Fixes https://oss-fuzz.com/testcase-detail/5388270411579392
Garret Rieger 7a87b177 2023-03-13T19:50:28 Check for failed subset input creation in the fuzzer.
Garret Rieger 28b05e1c 2023-03-08T23:59:04 [subset] Fix memory leak in glyf subset. Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6525813890875392.
Garret Rieger 9286e125 2023-03-08T20:02:26 Don't subset a glyf table with an unknown format. Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/4875306193518592
Behdad Esfahbod 2d33a6b4 2023-02-28T15:31:45 [subset-fuzzer] Protect against overflow Fixes https://github.com/harfbuzz/harfbuzz/issues/4137#issuecomment-1448994447
Garret Rieger c0fac016 2023-02-22T20:54:20 [subset] update the subset fuzzer to be able to reach instancing code.
Garret Rieger 918193eb 2023-02-22T23:11:29 [subset] fix a class of fuzzer timeouts caused by large shared coverage tables. More acurately estimates the op count for CoverageFormat2 tables as the population size instead of the size in bytes.
Behdad Esfahbod 64fa5cd4 2023-02-07T15:50:36 [GPOS] Fix assert fail introduced recently Was introduced in 8708b9e081192786c027bb7f5f23d76dbe5c19e8. If these lookups are recursed to from (Chain)Context out-of-order, it was possible that last_base > buffer->idx, in which case we were attaching marks to a base after them... and an assertion was failing fortunately. Fixes https://oss-fuzz.com/testcase-detail/6377756666757120
Garret Rieger e4fff64c 2023-01-24T00:52:26 [repacker] check duplicate() for success. Fixes fuzzer testcase https://oss-fuzz.com/testcase-detail/5475787333828608.
Behdad Esfahbod b63159e8 2023-01-21T15:50:48 [PairPosFormat1] Fix stride Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55287 and generally the lookup with MediumTypes.
Behdad Esfahbod 3c972867 2022-12-22T11:40:06 More s/hb_font_get_glyph_shape/hb_font_draw_glyph/
Chun-wei Fan 4622be7f 2022-12-22T12:05:11 test/fuzzing: Fix dist We need to dist the repacker fuzzer test items into the tarball, along with the items in graphs/ and sets/.
Garret Rieger 40342c94 2022-12-21T21:52:28 [subset] check for addition overflow in hdmx size calculation. Fixes https://oss-fuzz.com/testcase-detail/4877336988483584.
Garret Rieger b5acde43 2022-12-13T22:04:19 [subset] check pending/subsetted tag sets for alloc failure.
Garret Rieger 35233d25 2022-12-07T00:47:28 [repacker] fix fuzzer reported stack overflow. Fixes https://oss-fuzz.com/testcase-detail/6014493291577344.
Garret Rieger b17fbc20 2022-12-05T20:34:51 [repacker] use memcpy to avoid alignment issues.
Garret Rieger f1d34893 2022-12-05T19:33:15 [repacker] bail on failure to alloc assigned_bytes set. Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/5390364397928448.
Garret Rieger 239a5aca 2022-12-05T19:15:36 [repacker] don't allow references to the null object in graph. Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/6714085985353728
Garret Rieger 16f61a1c 2022-12-01T23:57:30 [repacker] only build repacker fuzzer when experimental api is enabled.
Garret Rieger de5a6213 2022-12-01T23:37:16 [repacker] enforce root node having no incoming edges.
Garret Rieger 30e405e4 2022-12-01T22:12:59 [repacker] ensure link obj indices are valid.
Garret Rieger 554ed06f 2022-12-01T21:51:17 [repacker] add cycle detection to the graph sort. This allows us to bail early if the graph is not acyclic.
Garret Rieger 9e99d084 2022-09-08T23:19:02 [repacker] validate link widths during repacker setup.
Garret Rieger edf7a295 2022-09-08T22:59:34 [repacker] Validate link positions before running the repacker.
Garret Rieger 88d43752 2022-09-08T21:19:25 [repacker] add test for repacker fuzzer.
Garret Rieger 6627a1ab 2022-09-08T21:11:39 [repacker] Add a initial seed for the fuzzer repacker.
Garret Rieger deca30b2 2022-09-08T21:10:06 [repacker] get repacker fuzzer working. Additionally add helper method that allows a graph to be saved as a fuzzer seed.
Garret Rieger 261a605f 2022-09-07T22:43:06 [repacker] verify graph is a dag before using the fuzzer input.
Garret Rieger 985b19f6 2022-09-07T22:21:16 [repacker] begin implementing a fuzzer for the repacker api.