git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6f75200
)
fixed memory violation in preparePage()
author
kramm
<kramm>
Mon, 6 Oct 2008 12:56:56 +0000
(12:56 +0000)
committer
kramm
<kramm>
Mon, 6 Oct 2008 12:56:56 +0000
(12:56 +0000)
lib/pdf/GFXOutputDev.cc
patch
|
blob
|
history
diff --git
a/lib/pdf/GFXOutputDev.cc
b/lib/pdf/GFXOutputDev.cc
index
f2074b8
..
16e5e91
100644
(file)
--- a/
lib/pdf/GFXOutputDev.cc
+++ b/
lib/pdf/GFXOutputDev.cc
@@
-2571,17
+2571,20
@@
void GFXOutputDev::preparePage(int pdfpage, int outputpage)
if(!this->pages) {
this->pagebuflen = 1024;
if(!this->pages) {
this->pagebuflen = 1024;
+ if(pdfpage > this->pagebuflen)
+ this->pagebuflen = pdfpage+1;
this->pages = (int*)malloc(this->pagebuflen*sizeof(int));
memset(this->pages, -1, this->pagebuflen*sizeof(int));
this->pages = (int*)malloc(this->pagebuflen*sizeof(int));
memset(this->pages, -1, this->pagebuflen*sizeof(int));
- } else {
- while(pdfpage >= this->pagebuflen)
- {
- int oldlen = this->pagebuflen;
- this->pagebuflen+=1024;
- this->pages = (int*)realloc(this->pages, this->pagebuflen*sizeof(int));
- memset(&this->pages[oldlen], -1, (this->pagebuflen-oldlen)*sizeof(int));
- }
}
}
+
+ while(pdfpage >= this->pagebuflen)
+ {
+ int oldlen = this->pagebuflen;
+ this->pagebuflen+=1024;
+ this->pages = (int*)realloc(this->pages, this->pagebuflen*sizeof(int));
+ memset(&this->pages[oldlen], -1, (this->pagebuflen-oldlen)*sizeof(int));
+ }
+
this->pages[pdfpage] = outputpage;
if(pdfpage>this->pagepos)
this->pagepos = pdfpage;
this->pages[pdfpage] = outputpage;
if(pdfpage>this->pagepos)
this->pagepos = pdfpage;