[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Thu Nov 5 23:55:56 PST 2015


 src/hb-buffer-private.hh |    6 +++++-
 src/hb-ot-layout.cc      |    2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

New commits:
commit f0599db761d7fc2d585d86e757a797f75ebc7499
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Nov 5 23:52:41 2015 -0800

    Fix hang in OOM situations
    
    Fixes https://github.com/behdad/harfbuzz/issues/161

diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index 8d9ae7c..ecebb3e 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -174,7 +174,11 @@ struct hb_buffer_t {
     if (have_output)
     {
       if (unlikely (out_info != info || out_len != idx)) {
-	if (unlikely (!make_room_for (1, 1))) return;
+	if (unlikely (!make_room_for (1, 1)))
+	{
+	  idx++; // So we don't hang indefinitely...
+	  return;
+	}
 	out_info[out_len] = info[idx];
       }
       out_len++;
commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Nov 5 23:52:29 2015 -0800

    Don't process lookups if buffer is in error

diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 275a960..4111004 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -954,7 +954,7 @@ apply_string (OT::hb_apply_context_t *c,
 {
   hb_buffer_t *buffer = c->buffer;
 
-  if (unlikely (!buffer->len || !c->lookup_mask))
+  if (unlikely (buffer->in_error || !buffer->len || !c->lookup_mask))
     return;
 
   c->set_lookup_props (lookup.get_props ());


More information about the HarfBuzz mailing list