summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fitz/stm_buffer.c2
-rw-r--r--pdf/pdf_image.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/fitz/stm_buffer.c b/fitz/stm_buffer.c
index eb96cd2f..8eb2bedf 100644
--- a/fitz/stm_buffer.c
+++ b/fitz/stm_buffer.c
@@ -26,6 +26,8 @@ fz_keep_buffer(fz_buffer *buf)
void
fz_drop_buffer(fz_context *ctx, fz_buffer *buf)
{
+ if (buf == NULL)
+ return;
if (--buf->refs == 0)
{
fz_free(ctx, buf->data);
diff --git a/pdf/pdf_image.c b/pdf/pdf_image.c
index 41be8fac..b8785cf4 100644
--- a/pdf/pdf_image.c
+++ b/pdf/pdf_image.c
@@ -309,6 +309,7 @@ pdf_load_jpx_image(pdf_xref *xref, fz_obj *dict)
if (colorspace)
fz_drop_colorspace(ctx, colorspace);
fz_drop_buffer(ctx, buf);
+ buf = NULL;
obj = fz_dict_getsa(dict, "SMask", "Mask");
if (fz_is_dict(obj))
@@ -335,6 +336,7 @@ pdf_load_jpx_image(pdf_xref *xref, fz_obj *dict)
fz_drop_colorspace(ctx, colorspace);
fz_drop_buffer(ctx, buf);
fz_drop_pixmap(ctx, img);
+ fz_rethrow(ctx);
}
return img;
}