From e87867cb88280e3f3a38d829e359cb686168b2cb Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 2 May 2011 19:35:05 -0400 Subject: [PATCH] [buffer] Fail in _create() if we cannot pre-allocate the requested size --- src/hb-buffer.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 1e49c7a..4009b12 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -142,11 +142,13 @@ hb_buffer_create (unsigned int pre_alloc_size) if (!(buffer = hb_object_create ())) return &_hb_buffer_nil; - if (pre_alloc_size) - _hb_buffer_ensure (buffer, pre_alloc_size); - hb_buffer_reset (buffer); + if (pre_alloc_size && !_hb_buffer_ensure (buffer, pre_alloc_size)) { + hb_buffer_destroy (buffer); + return &_hb_buffer_nil; + } + return buffer; } -- 2.7.4