platform/upstream/libHarfBuzzSharp.git
6 years agoMerge remote-tracking branch 'fdo/master'
Behdad Esfahbod [Fri, 5 Jan 2018 12:50:22 +0000 (12:50 +0000)]
Merge remote-tracking branch 'fdo/master'

6 years agoImprove CGJ skipping logic
Behdad Esfahbod [Fri, 5 Jan 2018 12:46:12 +0000 (12:46 +0000)]
Improve CGJ skipping logic

Previously we made CGJ unskippable.  Now, if CGJ did NOT prevent
any reordering, allow skipping over it.  To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks.  See comments.

Fixes https://github.com/harfbuzz/harfbuzz/issues/554

6 years agoImprove tests (#679)
Ebrahim Byagowi [Fri, 5 Jan 2018 09:12:20 +0000 (12:42 +0330)]
Improve tests (#679)

6 years agoMinor
Behdad Esfahbod [Thu, 4 Jan 2018 16:06:25 +0000 (16:06 +0000)]
Minor

6 years agoatomics: Favor compiler primitives over macOS APIs. (#676)
Bruce Mitchener [Thu, 4 Jan 2018 11:40:10 +0000 (18:40 +0700)]
atomics: Favor compiler primitives over macOS APIs. (#676)

In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated
in favor of using `std::atomic`. On the way to supporting `std::atomic`,
we can favor using the "Intel primitives" which are also available on
macOS.

6 years ago[cmake] Colorize output when using cmake + ninja. (#674)
Bruce Mitchener [Thu, 4 Jan 2018 11:37:35 +0000 (18:37 +0700)]
[cmake] Colorize output when using cmake + ninja. (#674)

Due to how ninja runs clang and gcc, it doesn't colorize the output
like make does. This forces color output in this situation.

6 years ago[cmake] Run src/ tests (#675)
Ebrahim Byagowi [Thu, 4 Jan 2018 06:41:34 +0000 (10:11 +0330)]
[cmake] Run src/ tests (#675)

6 years ago[use] Simplify more
Behdad Esfahbod [Wed, 3 Jan 2018 14:27:34 +0000 (14:27 +0000)]
[use] Simplify more

6 years ago[use] Simplify
Behdad Esfahbod [Wed, 3 Jan 2018 14:24:44 +0000 (14:24 +0000)]
[use] Simplify

Fixes https://github.com/harfbuzz/harfbuzz/pull/661

6 years ago[use] Fix Brahmi Number Joiner 1107F
Behdad Esfahbod [Wed, 3 Jan 2018 14:22:07 +0000 (14:22 +0000)]
[use] Fix Brahmi Number Joiner 1107F

Fixes https://github.com/harfbuzz/harfbuzz/pull/660

6 years ago[util] Add TODO item
Behdad Esfahbod [Wed, 3 Jan 2018 12:46:29 +0000 (12:46 +0000)]
[util] Add TODO item

6 years agoFix make check issue on out-of-tree builds and test it (#672)
Ebrahim Byagowi [Tue, 2 Jan 2018 20:22:12 +0000 (23:52 +0330)]
Fix make check issue on out-of-tree builds and test it (#672)

6 years agoFix typos.
Bruce Mitchener [Tue, 2 Jan 2018 18:23:23 +0000 (01:23 +0700)]
Fix typos.

6 years agoImprove Markdown usage in BUILD.md.
Bruce Mitchener [Tue, 2 Jan 2018 17:15:18 +0000 (00:15 +0700)]
Improve Markdown usage in BUILD.md.

6 years agolink with CoreFoundation when using CoreText
Romain Ouabdelkader [Thu, 21 Dec 2017 13:39:34 +0000 (14:39 +0100)]
link with CoreFoundation when using CoreText

6 years ago[cmake] Run rest of the tests on Windows (#668)
Ebrahim Byagowi [Mon, 1 Jan 2018 07:47:51 +0000 (11:17 +0330)]
[cmake] Run rest of the tests on Windows (#668)

6 years ago[cmake] Run fuzzing and shaping tests (#666)
Ebrahim Byagowi [Fri, 29 Dec 2017 19:43:29 +0000 (23:13 +0330)]
[cmake] Run fuzzing and shaping tests (#666)

6 years ago[cmake] Use GNUInstallDirs values (#665)
Ebrahim Byagowi [Mon, 25 Dec 2017 18:31:28 +0000 (22:01 +0330)]
[cmake] Use GNUInstallDirs values (#665)

6 years agoAdd Coverity badge
Behdad Esfahbod [Sun, 24 Dec 2017 22:53:32 +0000 (17:53 -0500)]
Add Coverity badge

6 years ago[cmake] Enable cmake tests on distribution and test it (#664)
Ebrahim Byagowi [Sun, 24 Dec 2017 22:25:48 +0000 (01:55 +0330)]
[cmake] Enable cmake tests on distribution and test it (#664)

6 years agoForbid Batak killers after vowel signs
David Corbett [Wed, 22 Nov 2017 21:32:52 +0000 (16:32 -0500)]
Forbid Batak killers after vowel signs

6 years ago[ci] Add -Wno-attributes to djgpp, add alpine, format (#663)
Ebrahim Byagowi [Sun, 24 Dec 2017 22:02:46 +0000 (01:32 +0330)]
[ci] Add -Wno-attributes to djgpp, add alpine, format (#663)

6 years ago[use] Allow ZWJ before/after Halant
Behdad Esfahbod [Sun, 24 Dec 2017 21:05:07 +0000 (16:05 -0500)]
[use] Allow ZWJ before/after Halant

https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-353169729

6 years agoMinor
Behdad Esfahbod [Wed, 20 Dec 2017 18:19:33 +0000 (13:19 -0500)]
Minor

6 years ago[ci] Add a DOS/djgpp compiler (#659)
Ebrahim Byagowi [Thu, 21 Dec 2017 16:45:37 +0000 (20:15 +0330)]
[ci] Add a DOS/djgpp compiler (#659)

6 years ago1.7.4
Behdad Esfahbod [Wed, 20 Dec 2017 17:09:00 +0000 (12:09 -0500)]
1.7.4

6 years agoHarfBuzz 1.7.1 and later don't compile on AIX with xlC (#655)
Volker H. Simonis [Tue, 19 Dec 2017 10:33:25 +0000 (11:33 +0100)]
HarfBuzz 1.7.1 and later don't compile on AIX with xlC (#655)

6 years ago[set] Handle nil set in add_range() / add_sorted_array()
Behdad Esfahbod [Tue, 19 Dec 2017 19:48:26 +0000 (14:48 -0500)]
[set] Handle nil set in add_range() / add_sorted_array()

Fixes https://github.com/harfbuzz/harfbuzz/issues/657

6 years ago1.7.3
Behdad Esfahbod [Mon, 18 Dec 2017 14:18:51 +0000 (09:18 -0500)]
1.7.3

6 years ago[coretext] In hb_coretext_font_create() set ptem
Behdad Esfahbod [Sun, 17 Dec 2017 17:32:33 +0000 (12:32 -0500)]
[coretext] In hb_coretext_font_create() set ptem

Otherwise setting the CTFont was ineffective as it would have been
recreated anyway unless font size was set to 18 CSS points.

6 years ago[set] In add_sorted_array(), bail if data is not sorted
Behdad Esfahbod [Sat, 16 Dec 2017 16:49:39 +0000 (11:49 -0500)]
[set] In add_sorted_array(), bail if data is not sorted

6 years ago[collect_glyphs] Bail if input data looks like garbage
Behdad Esfahbod [Sat, 16 Dec 2017 16:11:18 +0000 (11:11 -0500)]
[collect_glyphs] Bail if input data looks like garbage

Specificaly, when a range or sorted array has unexpected order, we take that as
font data being garbage and bail out.  This fixes significant slowdown on a bad
version of Chandas font which has a 600KB GPOS with garbage inside.

Later on, I like to add a maximum-work counter for collect_glyphs to protect
against malicious fonts as well.

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=794896

6 years ago[set] Optimize add_array() / add_sorted_array()
Behdad Esfahbod [Sat, 16 Dec 2017 16:36:16 +0000 (11:36 -0500)]
[set] Optimize add_array() / add_sorted_array()

Does page lookup as needed.

6 years ago[collect_glyphs] handle ClassDef better
Behdad Esfahbod [Sat, 16 Dec 2017 16:07:37 +0000 (11:07 -0500)]
[collect_glyphs] handle ClassDef better

6 years ago[collect_glyphs] In PairPosFornat2 do not collect classDef1
Behdad Esfahbod [Sat, 16 Dec 2017 14:18:07 +0000 (06:18 -0800)]
[collect_glyphs] In PairPosFornat2 do not collect classDef1

The coverage already covered that.

6 years agoMore work towards improving collect_glyphs() against bad input
Behdad Esfahbod [Sat, 16 Dec 2017 14:12:06 +0000 (06:12 -0800)]
More work towards improving collect_glyphs() against bad input

The three "XXXXX"'s should be switched to false.  Doing that separately for ease
of bisecting...

6 years ago[set] Add add_sorted_array()
Behdad Esfahbod [Fri, 15 Dec 2017 03:33:55 +0000 (19:33 -0800)]
[set] Add add_sorted_array()

Not optimized to use sortedness yet.  Also start putting in place infra
to faster reject bad data.

A version of Chandas.ttf found on some Chrome bots has 660kb of GPOS,
mostly junk.  That is causing 48 million of set->add() calls in
collect_glyphs(), which is insane.

In the upcoming commits, I'll be speeding that up by optimizing
add_sorted_array(), while also reducing work by rejecting out-of-sort
arrays quickly and propagate the rejection.

Part of https://bugs.chromium.org/p/chromium/issues/detail?id=794896

6 years ago[set] Reduce number of preallocated pages from 8 to 1
Behdad Esfahbod [Fri, 15 Dec 2017 03:04:55 +0000 (19:04 -0800)]
[set] Reduce number of preallocated pages from 8 to 1

Now that pagesize is 8192, this feels better.

6 years agoFix partial tracing debug builds
Behdad Esfahbod [Fri, 15 Dec 2017 02:15:14 +0000 (18:15 -0800)]
Fix partial tracing debug builds

6 years agoMinor
Behdad Esfahbod [Thu, 14 Dec 2017 21:37:48 +0000 (13:37 -0800)]
Minor

6 years ago[set] Change pagesize from 512 bits to 8192 bits
Behdad Esfahbod [Thu, 14 Dec 2017 21:30:38 +0000 (13:30 -0800)]
[set] Change pagesize from 512 bits to 8192 bits

Fixes perf regression on some heavy fonts in Chrome's FT+HB
interaction.

See:
https://bugs.chromium.org/p/chromium/issues/detail?id=782220

More work to be done:
https://bugs.chromium.org/p/chromium/issues/detail?id=794896

6 years ago[set] Add add_array()
Behdad Esfahbod [Wed, 13 Dec 2017 21:12:20 +0000 (13:12 -0800)]
[set] Add add_array()

To be used to optimize adding a whole bunch of (sorted) items at the same time,
as in CoverageFormat1.

6 years ago[test] print commented line, like the original script (#649)
ebraminio [Thu, 7 Dec 2017 08:54:12 +0000 (12:24 +0330)]
[test] print commented line, like the original script (#649)

6 years ago[ci] Add an after distribution test runner (#648)
ebraminio [Thu, 7 Dec 2017 08:05:36 +0000 (11:35 +0330)]
[ci] Add an after distribution test runner (#648)

6 years agoRewrite run-tests in python (#647)
ebraminio [Thu, 7 Dec 2017 07:52:55 +0000 (11:22 +0330)]
Rewrite run-tests in python (#647)

6 years ago[ci] Sort out Travis configuration
Khaled Hosny [Wed, 6 Dec 2017 19:08:20 +0000 (21:08 +0200)]
[ci] Sort out Travis configuration

Use a matrix to avoid a gazillion if's.

6 years ago[ci] minor improvements (#644)
ebraminio [Wed, 6 Dec 2017 14:57:27 +0000 (18:27 +0330)]
[ci] minor improvements (#644)

6 years agoRun cmake tests on CI builds
Khaled Hosny [Tue, 5 Dec 2017 22:49:25 +0000 (00:49 +0200)]
Run cmake tests on CI builds

6 years agoAdd API tests to cmake build
Khaled Hosny [Tue, 5 Dec 2017 22:43:28 +0000 (00:43 +0200)]
Add API tests to cmake build

6 years agoWe are already inside “if HAVE_GLIB” check
Khaled Hosny [Tue, 5 Dec 2017 20:52:54 +0000 (22:52 +0200)]
We are already inside “if HAVE_GLIB” check

6 years ago[ci] Don't cache msys2 folder
ebraminio [Wed, 6 Dec 2017 10:52:19 +0000 (14:22 +0330)]
[ci] Don't cache msys2 folder

6 years ago[ci] Enable glib and freetype on appveyor cmake (#643)
ebraminio [Wed, 6 Dec 2017 10:21:04 +0000 (13:51 +0330)]
[ci] Enable glib and freetype on appveyor cmake (#643)

6 years ago[debug] Use %p to print pointers
Behdad Esfahbod [Tue, 5 Dec 2017 21:12:11 +0000 (13:12 -0800)]
[debug] Use %p to print pointers

Fixes https://github.com/harfbuzz/harfbuzz/issues/640

6 years ago[ci] Fix appveyor badge
Ebrahim Byagowi [Tue, 5 Dec 2017 20:34:30 +0000 (00:04 +0330)]
[ci] Fix appveyor badge

6 years agoIndic: always hyphenate pre-base-reordering, for clarity.
Nathan Willis [Tue, 5 Dec 2017 17:43:09 +0000 (17:43 +0000)]
Indic: always hyphenate pre-base-reordering, for clarity.

6 years agoSilence unused-variables warning on MSVC
Behdad Esfahbod [Tue, 5 Dec 2017 17:01:28 +0000 (09:01 -0800)]
Silence unused-variables warning on MSVC

Fixes https://github.com/harfbuzz/harfbuzz/issues/635

6 years agoAllow digits in language system tags
David Corbett [Tue, 5 Dec 2017 13:28:42 +0000 (08:28 -0500)]
Allow digits in language system tags

6 years agoFix string matching in parse_bool
David Corbett [Mon, 4 Dec 2017 20:15:27 +0000 (15:15 -0500)]
Fix string matching in parse_bool

6 years ago[hb-ft] Fix build when Multiple Master font support is disabled in freetype
Olivier Blin [Mon, 4 Dec 2017 17:58:41 +0000 (18:58 +0100)]
[hb-ft] Fix build when Multiple Master font support is disabled in freetype

FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master
font interface" is disabled in freetype's modules.cfg

6 years ago1.7.2
Behdad Esfahbod [Mon, 4 Dec 2017 16:52:39 +0000 (08:52 -0800)]
1.7.2

6 years ago[set] Actually commit fixes mentioned in previous commit!
Behdad Esfahbod [Sat, 2 Dec 2017 23:22:04 +0000 (15:22 -0800)]
[set] Actually commit fixes mentioned in previous commit!

6 years ago[set] Fix recent changes
Behdad Esfahbod [Sat, 2 Dec 2017 23:14:26 +0000 (15:14 -0800)]
[set] Fix recent changes

Ouch!

Add tests.

6 years ago[set] Protect against bad input in hb_set_add_range()
Behdad Esfahbod [Sat, 2 Dec 2017 23:06:15 +0000 (15:06 -0800)]
[set] Protect against bad input in hb_set_add_range()

6 years ago[coretext] Add hb_coretext_font_create()
Behdad Esfahbod [Wed, 29 Nov 2017 07:11:34 +0000 (23:11 -0800)]
[coretext] Add hb_coretext_font_create()

Fixes https://github.com/harfbuzz/harfbuzz/issues/628

New API:
hb_coretext_font_create()

6 years ago[set] Optimize add_range() some more
Behdad Esfahbod [Fri, 1 Dec 2017 21:56:06 +0000 (13:56 -0800)]
[set] Optimize add_range() some more

It's as good as it gets, and seems to be on par with previous set implementation
in my benchmark.

Would be great if someone can double-check my bitops.

6 years ago[set] Optimize add_range()
Behdad Esfahbod [Fri, 1 Dec 2017 21:34:14 +0000 (13:34 -0800)]
[set] Optimize add_range()

With new set implementation, this became really costy.  Optimize it.
There's more to be done, but this shaves off most of the fat.

Part of fixing https://bugs.chromium.org/p/chromium/issues/detail?id=782220

6 years ago[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
Behdad Esfahbod [Fri, 1 Dec 2017 20:36:26 +0000 (12:36 -0800)]
[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()

6 years agoAdd another test for previous commit
Behdad Esfahbod [Thu, 30 Nov 2017 00:18:18 +0000 (16:18 -0800)]
Add another test for previous commit

From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273

6 years ago[ot] Fix Extension type recurse to disallow recursing to another Extension
Behdad Esfahbod [Thu, 30 Nov 2017 00:08:11 +0000 (16:08 -0800)]
[ot] Fix Extension type recurse to disallow recursing to another Extension

Particularly hazardous if the second layer mixes forward and backward lookups.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336

6 years agoTry fixing Mac build with 10.12
Behdad Esfahbod [Wed, 29 Nov 2017 22:20:09 +0000 (14:20 -0800)]
Try fixing Mac build with 10.12

Related
https://github.com/harfbuzz/harfbuzz/issues/345
https://github.com/harfbuzz/harfbuzz/pull/629

6 years agoMinor
Behdad Esfahbod [Wed, 29 Nov 2017 06:20:57 +0000 (22:20 -0800)]
Minor

6 years ago[doc] Optimize HarfBuzz.png; add HarfBuzz.svg
Behdad Esfahbod [Wed, 22 Nov 2017 00:36:07 +0000 (16:36 -0800)]
[doc] Optimize HarfBuzz.png; add HarfBuzz.svg

SVG is unused. Just keeping it here.

6 years agoImprove the docs commit message a bit
Khaled Hosny [Tue, 21 Nov 2017 22:14:29 +0000 (00:14 +0200)]
Improve the docs commit message a bit

6 years agoMove gh-pages docs to harfbuzz.github.io
Ebrahim Byagowi [Tue, 21 Nov 2017 06:22:18 +0000 (09:52 +0330)]
Move gh-pages docs to harfbuzz.github.io

6 years agoCategorize U+A8B4 as Consonant_Medial
David Corbett [Tue, 21 Nov 2017 19:16:10 +0000 (14:16 -0500)]
Categorize U+A8B4 as Consonant_Medial

6 years ago[ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621)
ebraminio [Tue, 21 Nov 2017 06:07:26 +0000 (01:07 -0500)]
[ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621)

6 years agoFix fallback positioning of double diacritic marks
Behdad Esfahbod [Tue, 21 Nov 2017 03:43:22 +0000 (19:43 -0800)]
Fix fallback positioning of double diacritic marks

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284

6 years agoMinor
Behdad Esfahbod [Tue, 21 Nov 2017 03:39:47 +0000 (19:39 -0800)]
Minor

6 years ago[docs] s/Harfbuzz/HarfBuzz/g
Behdad Esfahbod [Mon, 20 Nov 2017 23:07:48 +0000 (15:07 -0800)]
[docs] s/Harfbuzz/HarfBuzz/g

6 years agoCategorize U+0C80 as Consonant_Placeholder
David Corbett [Mon, 20 Nov 2017 18:19:34 +0000 (13:19 -0500)]
Categorize U+0C80 as Consonant_Placeholder

6 years agoMove all references of old url to the new address (#622)
ebraminio [Mon, 20 Nov 2017 19:49:22 +0000 (14:49 -0500)]
Move all references of old url to the new address (#622)

6 years agoLimit how much recursion GSUB/GPOS does
Behdad Esfahbod [Wed, 15 Nov 2017 05:53:48 +0000 (21:53 -0800)]
Limit how much recursion GSUB/GPOS does

This only counts recursions right now.  Good start.

Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429

6 years agoMinor move
Behdad Esfahbod [Wed, 15 Nov 2017 05:27:24 +0000 (21:27 -0800)]
Minor move

6 years agoAdd Offset16 and Offset32
Behdad Esfahbod [Wed, 15 Nov 2017 05:09:03 +0000 (21:09 -0800)]
Add Offset16 and Offset32

6 years agoReplace USHORT/SHORT/ULONG/etc with UINT16/INT16/UINT32/etc
Behdad Esfahbod [Wed, 15 Nov 2017 05:06:07 +0000 (21:06 -0800)]
Replace USHORT/SHORT/ULONG/etc with UINT16/INT16/UINT32/etc

6 years agoRemove a couple of unused consts
Behdad Esfahbod [Wed, 15 Nov 2017 04:30:03 +0000 (20:30 -0800)]
Remove a couple of unused consts

6 years ago[glyf] Try fixing undefined-behavior
Behdad Esfahbod [Wed, 15 Nov 2017 04:25:29 +0000 (20:25 -0800)]
[glyf] Try fixing undefined-behavior

Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463

6 years ago[ot] Remove unneeded TODO item
Behdad Esfahbod [Wed, 15 Nov 2017 04:22:05 +0000 (20:22 -0800)]
[ot] Remove unneeded TODO item

Looks like hb-ot-font is complete after all!

CFF font names and CFF glyph metrics don't work though...

6 years ago[hmtx] Use curiously recurring template pattern
Behdad Esfahbod [Wed, 15 Nov 2017 04:16:45 +0000 (20:16 -0800)]
[hmtx] Use curiously recurring template pattern

https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern

6 years ago[ot] Move hb_ot_face_cmap_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 04:06:19 +0000 (20:06 -0800)]
[ot] Move hb_ot_face_cmap_accelerator_t

6 years agoShuffle
Behdad Esfahbod [Wed, 15 Nov 2017 04:02:24 +0000 (20:02 -0800)]
Shuffle

6 years ago[ot] Move hb_ot_face_metrics_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 04:00:34 +0000 (20:00 -0800)]
[ot] Move hb_ot_face_metrics_accelerator_t

6 years agoAdjust privacy for recent changes
Behdad Esfahbod [Wed, 15 Nov 2017 03:54:48 +0000 (19:54 -0800)]
Adjust privacy for recent changes

6 years ago[ot] Move hb_ot_face_glyf_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:52:09 +0000 (19:52 -0800)]
[ot] Move hb_ot_face_glyf_accelerator_t

6 years ago[ot] Move hb_ot_face_cbdt_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:47:31 +0000 (19:47 -0800)]
[ot] Move hb_ot_face_cbdt_accelerator_t

6 years ago[ot] Fold hb_ot_face_post_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:31:50 +0000 (19:31 -0800)]
[ot] Fold hb_ot_face_post_accelerator_t

6 years ago[ot] Fold hb_ot_face_kern_accelerator_t
Behdad Esfahbod [Wed, 15 Nov 2017 03:25:38 +0000 (19:25 -0800)]
[ot] Fold hb_ot_face_kern_accelerator_t

6 years agoMinor build fix
Behdad Esfahbod [Wed, 15 Nov 2017 00:22:52 +0000 (16:22 -0800)]
Minor build fix

6 years agoAdd test for previous commit
Behdad Esfahbod [Tue, 14 Nov 2017 23:56:21 +0000 (15:56 -0800)]
Add test for previous commit

At some point we should run tests under valgrind...

6 years agoFix invalid buffer access in OOM times
Behdad Esfahbod [Tue, 14 Nov 2017 23:47:55 +0000 (15:47 -0800)]
Fix invalid buffer access in OOM times

Hopefully fully fixes
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1856