summaryrefslogtreecommitdiff
path: root/fitz/res_text.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2012-04-05 18:01:54 +0100
committerRobin Watts <robin.watts@artifex.com>2012-04-05 18:26:34 +0100
commite7b13e1de4b29f36ed536bb863e5d81768550490 (patch)
tree82b9645887a4eb1223f49e76f4f8872204019fa0 /fitz/res_text.c
parentff55e72b741b955bbd0e23bd9d724c6682a181ac (diff)
downloadmupdf-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.c10
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