diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-04-05 18:01:54 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2012-04-05 18:26:34 +0100 |
commit | e7b13e1de4b29f36ed536bb863e5d81768550490 (patch) | |
tree | 82b9645887a4eb1223f49e76f4f8872204019fa0 /fitz/res_text.c | |
parent | ff55e72b741b955bbd0e23bd9d724c6682a181ac (diff) | |
download | mupdf-e7b13e1de4b29f36ed536bb863e5d81768550490.tar.xz |
Fix potential problems on malloc failure.
Don't reset the size of arrays until we have successfully resized them.
Diffstat (limited to 'fitz/res_text.c')
-rw-r--r-- | fitz/res_text.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fitz/res_text.c b/fitz/res_text.c index 643b4c9f..6b5e3e3a 100644 --- a/fitz/res_text.c +++ b/fitz/res_text.c @@ -100,11 +100,13 @@ fz_bound_text(fz_context *ctx, fz_text *text, fz_matrix ctm) static void fz_grow_text(fz_context *ctx, fz_text *text, int n) { - if (text->len + n < text->cap) + int new_cap = text->cap; + if (text->len + n < new_cap) return; - while (text->len + n > text->cap) - text->cap = text->cap + 36; - text->items = fz_resize_array(ctx, text->items, text->cap, sizeof(fz_text_item)); + while (text->len + n > new_cap) + new_cap = new_cap + 36; + text->items = fz_resize_array(ctx, text->items, new_cap, sizeof(fz_text_item)); + text->cap = new_cap; } void |