View | Details | Raw Unified
Collapse All | Expand All

(-) Catalog.cc.orig (+30 lines)
 Lines 76-81    Link Here 
  // trailer is ok - read the xref table
  // trailer is ok - read the xref table
  } else {
  } else {
    if (size*sizeof(XRefEntry)/sizeof(XRefEntry) != size) {
      error(-1, "Invalid 'size' inside xref table.");
      ok = gFalse;
      errCode = errDamaged;
      return;
    }
    entries = (XRefEntry *)gmalloc(size * sizeof(XRefEntry));
    entries = (XRefEntry *)gmalloc(size * sizeof(XRefEntry));
    for (i = 0; i < size; ++i) {
    for (i = 0; i < size; ++i) {
      entries[i].offset = 0xffffffff;
      entries[i].offset = 0xffffffff;
 Lines 267-272    Link Here 
    // table size
    // table size
    if (first + n > size) {
    if (first + n > size) {
      newSize = size + 256;
      newSize = size + 256;
      if (newSize*sizeof(XRefEntry)/sizeof(XRefEntry) != newSize) {
        error(-1, "Invalid 'newSize'");
        goto err2;
      }
      entries = (XRefEntry *)grealloc(entries, newSize * sizeof(XRefEntry));
      entries = (XRefEntry *)grealloc(entries, newSize * sizeof(XRefEntry));
      for (i = size; i < newSize; ++i) {
      for (i = size; i < newSize; ++i) {
	entries[i].offset = 0xffffffff;
	entries[i].offset = 0xffffffff;
 Lines 410-415    Link Here 
	    if (!strncmp(p, "obj", 3)) {
	    if (!strncmp(p, "obj", 3)) {
	      if (num >= size) {
	      if (num >= size) {
		newSize = (num + 1 + 255) & ~255;
		newSize = (num + 1 + 255) & ~255;
	        if (newSize*sizeof(XRefEntry)/sizeof(XRefEntry) != newSize) {
	          error(-1, "Invalid 'obj' parameters.");
	          return gFalse;
	        }
		entries = (XRefEntry *)
		entries = (XRefEntry *)
		            grealloc(entries, newSize * sizeof(XRefEntry));
		            grealloc(entries, newSize * sizeof(XRefEntry));
		for (i = size; i < newSize; ++i) {
		for (i = size; i < newSize; ++i) {
 Lines 431-436    Link Here 
    } else if (!strncmp(p, "endstream", 9)) {
    } else if (!strncmp(p, "endstream", 9)) {
      if (streamEndsLen == streamEndsSize) {
      if (streamEndsLen == streamEndsSize) {
	streamEndsSize += 64;
	streamEndsSize += 64;
        if (streamEndsSize*sizeof(int)/sizeof(int) != streamEndsSize) {
          error(-1, "Invalid 'endstream' parameter.");
          return gFalse;
        }
	streamEnds = (Guint *)grealloc(streamEnds,
	streamEnds = (Guint *)grealloc(streamEnds,
				       streamEndsSize * sizeof(int));
				       streamEndsSize * sizeof(int));
      }
      }
 Lines 62-67    Link Here 
  }
  }
  pagesSize = numPages0 = obj.getInt();
  pagesSize = numPages0 = obj.getInt();
  obj.free();
  obj.free();
  if (pagesSize*sizeof(Page *)/sizeof(Page *) != pagesSize ||
      pagesSize*sizeof(Ref)/sizeof(Ref) != pagesSize) {
    error(-1, "Invalid 'pagesSize'");
    ok = gFalse;
    return;
  }
  pages = (Page **)gmalloc(pagesSize * sizeof(Page *));
  pages = (Page **)gmalloc(pagesSize * sizeof(Page *));
  pageRefs = (Ref *)gmalloc(pagesSize * sizeof(Ref));
  pageRefs = (Ref *)gmalloc(pagesSize * sizeof(Ref));
  for (i = 0; i < pagesSize; ++i) {
  for (i = 0; i < pagesSize; ++i) {
 Lines 186-191    Link Here 
      }
      }
      if (start >= pagesSize) {
      if (start >= pagesSize) {
	pagesSize += 32;
	pagesSize += 32;
        if (pagesSize*sizeof(Page *)/sizeof(Page *) != pagesSize ||
            pagesSize*sizeof(Ref)/sizeof(Ref) != pagesSize) {
          error(-1, "Invalid 'pagesSize' parameter.");
          goto err3;
        }
	pages = (Page **)grealloc(pages, pagesSize * sizeof(Page *));
	pages = (Page **)grealloc(pages, pagesSize * sizeof(Page *));
	pageRefs = (Ref *)grealloc(pageRefs, pagesSize * sizeof(Ref));
	pageRefs = (Ref *)grealloc(pageRefs, pagesSize * sizeof(Ref));
	for (j = pagesSize - 32; j < pagesSize; ++j) {
	for (j = pagesSize - 32; j < pagesSize; ++j) {