harfbuzz/src
Behdad Esfahbod c3ba49b6fa Always create sub-blobs in MEMORY_MODE_READONLY
This fixes a design bug with sanitize and sub-blobs that can
cause crashes.  Jonathan and I found and debugged this issue
when we tested a corrupt font with the md5sum / filename:
ea395483d37af0cb933f40689ff7b60a.  Two hours of intense
debugging we found out that the font has overlapping GSUB/GPOS
tables, and as such, sanitizing the second table can modify
the first one, which can cause all kinds of undefined behavior.

The correct way to fix this is to make sure sub-blobs are
always created readonly, since we consider the parent blob
to be a shared resource and can't modify it, even if it *is*
writable.

This essentially makes the READONLY_MAY_MAKE_WRITABLE mode
unused...  Maybe we should simply remove / deprecate it.
2013-02-25 17:06:35 -05:00
..
hb-icu-le Improve license information 2012-10-28 21:26:19 -07:00
hb-old Whitespace 2012-08-15 18:52:17 -04:00
hb-ucdn [ucdn] Match upstream changes 2012-12-04 15:57:02 -05:00
Makefile.am Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
check-c-linkage-decls.sh Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers 2012-07-13 10:19:10 -04:00
check-header-guards.sh Fix check-header-guards on OS X 2012-01-27 02:23:22 -05:00
check-includes.sh Add check-includes.sh 2011-05-27 15:58:54 -04:00
check-libstdc++.sh Minor 2012-08-28 19:08:36 -04:00
check-static-inits.sh Minor 2012-08-28 19:08:36 -04:00
check-symbols.sh Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel 2013-02-04 23:24:16 -05:00
gen-arabic-table.py [OT] Streamline Arabic fallback shaping table 2012-09-06 01:16:39 -04:00
gen-indic-table.py Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-atomic-private.hh Improve check for Windows platforms 2013-02-12 15:31:58 -05:00
hb-blob.cc Always create sub-blobs in MEMORY_MODE_READONLY 2013-02-25 17:06:35 -05:00
hb-blob.h Always create sub-blobs in MEMORY_MODE_READONLY 2013-02-25 17:06:35 -05:00
hb-buffer-private.hh Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties() 2012-11-15 18:48:10 -08:00
hb-buffer.cc Rename hb_buffer_clear() to hb_buffer_clear_contents() 2013-01-07 16:46:37 -06:00
hb-buffer.h Rename hb_buffer_clear() to hb_buffer_clear_contents() 2013-01-07 16:46:37 -06:00
hb-cache-private.hh Fix cache implementation 2012-06-09 01:43:20 -04:00
hb-common.cc Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS 2013-02-12 15:26:45 -05:00
hb-common.h Add hb_feature_to/from_string() 2012-09-06 22:09:06 -04:00
hb-coretext.cc [coretext] Fixed typo 2012-12-09 19:39:40 -05:00
hb-coretext.h [coretext] Add hb_coretext_face_get_cg_font() 2012-12-09 18:47:36 -05:00
hb-fallback-shape.cc Disable automatic segment properties guessing 2013-02-15 07:51:47 -05:00
hb-font-private.hh Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.cc Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.h Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-ft.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-ft.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-glib.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-glib.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-gobject-enums.cc.tmpl Fix make distcheck 2011-08-24 19:36:50 +02:00
hb-gobject-structs.cc Add gobject enum support, but disabled for now 2011-08-19 19:59:24 +02:00
hb-gobject.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-graphite2.cc [graphite2] "Update to new API" 2012-12-09 18:45:47 -05:00
hb-graphite2.h [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font 2012-12-09 18:44:41 -05:00
hb-icu-le.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-icu.cc [ICU] Fix includes 2012-08-16 07:32:59 -04:00
hb-icu.h Minor 2012-08-08 14:59:09 -04:00
hb-mutex-private.hh Improve check for Windows platforms 2013-02-12 15:31:58 -05:00
hb-object-private.hh Move object mutext into the user-data array 2012-12-04 00:35:54 +02:00
hb-old.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-open-file-private.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-open-type-private.hh [OTLayout] Remove unused code 2013-02-15 11:47:09 -05:00
hb-ot-head-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hhea-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hmtx-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-layout-common-private.hh [OTLayout] Limit alternate-location FeatureParams to 'size' feature 2012-12-17 23:29:15 -05:00
hb-ot-layout-gdef-table.hh [OTLayout] Remove operator() from Coverage 2012-11-24 19:13:55 -05:00
hb-ot-layout-gpos-table.hh [OTLayout] Ignore default-ignorables when matching GSUB/GPOS 2013-02-14 12:57:50 -05:00
hb-ot-layout-gsub-table.hh Minor 2013-02-15 11:47:24 -05:00
hb-ot-layout-gsubgpos-private.hh Fixup previous commit 2013-02-21 15:37:51 -05:00
hb-ot-layout-private.hh Minor 2013-02-21 15:55:49 -05:00
hb-ot-layout.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-layout.h [OTLayout] Change hb_ot_layout_get_params() API 2012-12-11 14:17:01 -05:00
hb-ot-map-private.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-map.cc Fix partial disabling of default-on features 2013-02-15 07:40:10 -05:00
hb-ot-maxp-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-name-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-shape-complex-arabic-fallback.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-arabic-table.hh "Update" to Unicode 6.2.0 tables 2012-12-02 19:14:29 +02:00
hb-ot-shape-complex-arabic.cc [Arabic] Fix shaping of left-joining 'Phags-Pa U+A872 2013-02-15 09:27:02 -05:00
hb-ot-shape-complex-default.cc Clean-up add_bool_feature 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-indic-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-indic-private.hh [SEA] Treat Consonant_Final like Consonant_Medial 2013-02-12 15:28:21 -05:00
hb-ot-shape-complex-indic-table.cc Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-ot-shape-complex-indic.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-myanmar-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-myanmar.cc Minor refactoring 2013-02-15 06:22:52 -05:00
hb-ot-shape-complex-private.hh Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-ot-shape-complex-sea-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-sea.cc [SEA] Fix order of pre-base reordering Ra and left matras 2013-02-17 12:12:37 -05:00
hb-ot-shape-complex-thai.cc Adjust mark advance-width zeroing logic for Myanmar 2013-02-12 09:44:57 -05:00
hb-ot-shape-fallback-private.hh Move code around 2013-02-21 15:23:39 -05:00
hb-ot-shape-fallback.cc Port TrueType-kerning to use skippy iterator 2013-02-21 15:55:49 -05:00
hb-ot-shape-normalize-private.hh Plumbing to get shape plan and font into complex decompose function 2012-11-16 12:58:38 -08:00
hb-ot-shape-normalize.cc Improve normalization heuristic 2013-02-11 12:59:00 -05:00
hb-ot-shape-private.hh [OTLayout] Ignore default-ignorables when matching GSUB/GPOS 2013-02-14 12:57:50 -05:00
hb-ot-shape.cc Move code around 2013-02-21 15:23:39 -05:00
hb-ot-tag.cc Update OT language tags 2012-12-08 19:28:41 -05:00
hb-ot-tag.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-ot.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
hb-private.hh Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS 2013-02-12 15:26:45 -05:00
hb-set-private.hh Protect sets in-error from further modication 2013-01-02 23:02:59 -06:00
hb-set.cc [tests] Start adding tests for hb-set.h 2013-01-02 22:50:36 -06:00
hb-set.h [tests] Start adding tests for hb-set.h 2013-01-02 22:50:36 -06:00
hb-shape-plan-private.hh Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape-plan.cc Add assertions for a couple programmer errors 2013-02-15 07:46:57 -05:00
hb-shape-plan.h Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape.cc Disable automatic segment properties guessing 2013-02-15 07:51:47 -05:00
hb-shape.h Minor 2012-12-21 16:51:15 -05:00
hb-shaper-impl-private.hh Switch old and uniscribe backends to shape_plan 2012-07-27 01:37:18 -04:00
hb-shaper-list.hh Make the OT shaper default, even if CoreText or Uniscribe is enabled 2012-11-15 13:15:39 -08:00
hb-shaper-private.hh Fix crasher during multi-thread shaper data creation 2013-01-10 00:03:36 -06:00
hb-shaper.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-tt-font.cc Whitespace 2012-11-16 18:49:54 -08:00
hb-ucdn.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-unicode-private.hh [Myanmar] Prevent reordering between Asat and Dot below 2013-02-11 14:28:59 -05:00
hb-unicode.cc Import UCDN into source tree 2012-10-02 16:23:29 -04:00
hb-unicode.h Use a lookup table for modified_combining_class 2012-08-01 18:07:42 -04:00
hb-uniscribe.cc Minor 2012-12-09 18:37:38 -05:00
hb-uniscribe.h Minor 2012-08-07 21:44:25 -04:00
hb-utf-private.hh Fix warnings 2012-12-05 19:14:28 -05:00
hb-version.h.in Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-warning.cc Revert "Minor" 2013-01-14 00:32:12 -06:00
hb.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
main.cc Use namespace for OpenType tables 2012-08-28 17:57:49 -04:00
test-size-params.cc Make test-size-params write size in points 2012-12-11 14:31:13 -05:00
test-would-substitute.cc Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup() 2012-11-15 14:57:31 -08:00
test.cc [Minor] 2012-07-29 19:56:54 -04:00