diff options
author | Tor Andersson <tor@ghostscript.com> | 2009-11-28 04:44:58 +0100 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2009-11-28 04:44:58 +0100 |
commit | 61666e7f6b1d2e839d43068d5c84c987e28ec859 (patch) | |
tree | f3a3f019ee8f7c962472e00ac35e466d2a58468a /mupdf/pdf_open.c | |
parent | a16d9e0c25ed986c57c521aa87d87f6c343218a7 (diff) | |
download | mupdf-61666e7f6b1d2e839d43068d5c84c987e28ec859.tar.xz |
Malloc cannot return null. Clean up in mupdf resource code.
Diffstat (limited to 'mupdf/pdf_open.c')
-rw-r--r-- | mupdf/pdf_open.c | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/mupdf/pdf_open.c b/mupdf/pdf_open.c index 81af23af..ec33414d 100644 --- a/mupdf/pdf_open.c +++ b/mupdf/pdf_open.c @@ -253,8 +253,6 @@ readoldxref(fz_obj **trailerp, pdf_xref *xref, char *buf, int cap) fz_warn("broken xref section, proceeding anyway."); xref->cap = ofs + len; xref->table = fz_realloc(xref->table, xref->cap * sizeof(pdf_xrefentry)); - if (!xref->table) - return fz_rethrow(-1, "out of memory: xref table"); } if ((ofs + len) > xref->len) @@ -385,11 +383,6 @@ readnewxref(fz_obj **trailerp, pdf_xref *xref, char *buf, int cap) { xref->cap = size + 1; /* for hack to allow broken pdf generators with off-by-one errors */ xref->table = fz_realloc(xref->table, xref->cap * sizeof(pdf_xrefentry)); - if (!xref->table) - { - fz_dropobj(trailer); - return fz_rethrow(-1, "out of memory: xref table"); - } } if (size > xref->len) @@ -587,24 +580,13 @@ pdf_loadobjstm(pdf_xref *xref, int oid, int gen, char *buf, int cap) pdf_logxref(" count %d\n", count); oidbuf = fz_malloc(count * sizeof(int)); - if (!oidbuf) - { - error = fz_rethrow(-1, "out of memory: object id buffer"); - goto cleanupobj; - } - ofsbuf = fz_malloc(count * sizeof(int)); - if (!ofsbuf) - { - error = fz_rethrow(-1, "out of memory: offset buffer"); - goto cleanupoid; - } error = pdf_openstream(&stm, xref, oid, gen); if (error) { error = fz_rethrow(error, "cannot open object stream"); - goto cleanupofs; + goto cleanupbuf; } for (i = 0; i < count; i++) @@ -664,11 +646,9 @@ pdf_loadobjstm(pdf_xref *xref, int oid, int gen, char *buf, int cap) cleanupstm: fz_dropstream(stm); -cleanupofs: +cleanupbuf: fz_free(ofsbuf); -cleanupoid: fz_free(oidbuf); -cleanupobj: fz_dropobj(objstm); return error; /* already rethrown */ } @@ -729,12 +709,6 @@ pdf_loadxref(pdf_xref *xref, char *filename) xref->len = fz_toint(size); xref->cap = xref->len + 1; /* for hack to allow broken pdf generators with off-by-one errors */ xref->table = fz_malloc(xref->cap * sizeof(pdf_xrefentry)); - if (!xref->table) - { - error = fz_rethrow(-1, "out of memory: xref table"); - goto cleanup; - } - for (i = 0; i < xref->cap; i++) { xref->table[i].ofs = 0; |