summaryrefslogtreecommitdiff
path: root/mupdf/pdf_open.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2009-11-28 04:44:58 +0100
committerTor Andersson <tor@ghostscript.com>2009-11-28 04:44:58 +0100
commit61666e7f6b1d2e839d43068d5c84c987e28ec859 (patch)
treef3a3f019ee8f7c962472e00ac35e466d2a58468a /mupdf/pdf_open.c
parenta16d9e0c25ed986c57c521aa87d87f6c343218a7 (diff)
downloadmupdf-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.c30
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;