diff options
-rw-r--r-- | fitz/stm_buffer.c | 2 | ||||
-rw-r--r-- | pdf/pdf_image.c | 2 |
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; } |