|
Lines 76-81
Link Here
|
| 76 |
|
76 |
|
| 77 |
// trailer is ok - read the xref table |
77 |
// trailer is ok - read the xref table |
| 78 |
} else { |
78 |
} else { |
|
|
79 |
if (size*sizeof(XRefEntry)/sizeof(XRefEntry) != size) { |
| 80 |
error(-1, "Invalid 'size' inside xref table."); |
| 81 |
ok = gFalse; |
| 82 |
errCode = errDamaged; |
| 83 |
return; |
| 84 |
} |
| 79 |
entries = (XRefEntry *)gmalloc(size * sizeof(XRefEntry)); |
85 |
entries = (XRefEntry *)gmalloc(size * sizeof(XRefEntry)); |
| 80 |
for (i = 0; i < size; ++i) { |
86 |
for (i = 0; i < size; ++i) { |
| 81 |
entries[i].offset = 0xffffffff; |
87 |
entries[i].offset = 0xffffffff; |
|
Lines 267-272
Link Here
|
| 267 |
// table size |
273 |
// table size |
| 268 |
if (first + n > size) { |
274 |
if (first + n > size) { |
| 269 |
newSize = size + 256; |
275 |
newSize = size + 256; |
|
|
276 |
if (newSize*sizeof(XRefEntry)/sizeof(XRefEntry) != newSize) { |
| 277 |
error(-1, "Invalid 'newSize'"); |
| 278 |
goto err2; |
| 279 |
} |
| 270 |
entries = (XRefEntry *)grealloc(entries, newSize * sizeof(XRefEntry)); |
280 |
entries = (XRefEntry *)grealloc(entries, newSize * sizeof(XRefEntry)); |
| 271 |
for (i = size; i < newSize; ++i) { |
281 |
for (i = size; i < newSize; ++i) { |
| 272 |
entries[i].offset = 0xffffffff; |
282 |
entries[i].offset = 0xffffffff; |
|
Lines 410-415
Link Here
|
| 410 |
if (!strncmp(p, "obj", 3)) { |
420 |
if (!strncmp(p, "obj", 3)) { |
| 411 |
if (num >= size) { |
421 |
if (num >= size) { |
| 412 |
newSize = (num + 1 + 255) & ~255; |
422 |
newSize = (num + 1 + 255) & ~255; |
|
|
423 |
if (newSize*sizeof(XRefEntry)/sizeof(XRefEntry) != newSize) { |
| 424 |
error(-1, "Invalid 'obj' parameters."); |
| 425 |
return gFalse; |
| 426 |
} |
| 413 |
entries = (XRefEntry *) |
427 |
entries = (XRefEntry *) |
| 414 |
grealloc(entries, newSize * sizeof(XRefEntry)); |
428 |
grealloc(entries, newSize * sizeof(XRefEntry)); |
| 415 |
for (i = size; i < newSize; ++i) { |
429 |
for (i = size; i < newSize; ++i) { |
|
Lines 431-436
Link Here
|
| 431 |
} else if (!strncmp(p, "endstream", 9)) { |
445 |
} else if (!strncmp(p, "endstream", 9)) { |
| 432 |
if (streamEndsLen == streamEndsSize) { |
446 |
if (streamEndsLen == streamEndsSize) { |
| 433 |
streamEndsSize += 64; |
447 |
streamEndsSize += 64; |
|
|
448 |
if (streamEndsSize*sizeof(int)/sizeof(int) != streamEndsSize) { |
| 449 |
error(-1, "Invalid 'endstream' parameter."); |
| 450 |
return gFalse; |
| 451 |
} |
| 452 |
|
| 434 |
streamEnds = (Guint *)grealloc(streamEnds, |
453 |
streamEnds = (Guint *)grealloc(streamEnds, |
| 435 |
streamEndsSize * sizeof(int)); |
454 |
streamEndsSize * sizeof(int)); |
| 436 |
} |
455 |
} |