summaryrefslogtreecommitdiff
path: root/pdf/pdf_stream.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2012-01-06 11:56:46 +0000
committerRobin Watts <robin@ghostscript.com>2012-01-06 13:49:24 +0000
commit8c0b958c8cd04eae8a65803db700240123fd38be (patch)
tree96c330707d07b24c6095b421e5a2ddb0d413348b /pdf/pdf_stream.c
parent09f1a3d3d863099c103100ed10c8cec82ea7aed3 (diff)
downloadmupdf-8c0b958c8cd04eae8a65803db700240123fd38be.tar.xz
Various memory leak fixes.
In error cases, ensure we free objects correctly. Thanks to Zeniko for finding the problems (and many of the solutions!)
Diffstat (limited to 'pdf/pdf_stream.c')
-rw-r--r--pdf/pdf_stream.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/pdf/pdf_stream.c b/pdf/pdf_stream.c
index 413eee8f..bf9ccc70 100644
--- a/pdf/pdf_stream.c
+++ b/pdf/pdf_stream.c
@@ -89,17 +89,12 @@ build_filter(fz_stream *chain, pdf_xref * xref, fz_obj * f, fz_obj * p, int num,
else if (!strcmp(s, "JBIG2Decode"))
{
+ fz_buffer *globals = NULL;
fz_obj *obj = fz_dict_gets(p, "JBIG2Globals");
if (obj)
- {
- fz_buffer *globals;
globals = pdf_load_stream(xref, fz_to_num(obj), fz_to_gen(obj));
- /* RJW: "cannot load jbig2 global segments" */
- chain = fz_open_jbig2d(chain, globals);
- fz_drop_buffer(ctx, globals);
- return chain;
- }
- return fz_open_jbig2d(chain, NULL);
+ /* fz_open_jbig2d takes possession of globals */
+ return fz_open_jbig2d(chain, globals);
}
else if (!strcmp(s, "JPXDecode"))