File 0020-Fix-regression-from-0007.patch of Package podofo
Subject: Fix regression from r1840: Make PdfParser::m_offsets resize only to grow
Url: https://sourceforge.net/p/podofo/code/1859/
--- a/podofo/trunk/src/base/PdfParser.cpp
+++ b/podofo/trunk/src/base/PdfParser.cpp
@@ -781,16 +781,19 @@
PODOFO_RAISE_ERROR_INFO( ePdfError_ValueOutOfRange,
"xref subsection's given entry numbers together too large" );
- try {
+ if( nFirstObject + nNumObjects > m_nNumObjects )
+ {
+ try {
#ifdef _WIN32
- m_nNumObjects = static_cast<long>(nFirstObject + nNumObjects);
- m_offsets.resize(static_cast<long>(nFirstObject+nNumObjects));
+ m_nNumObjects = static_cast<long>(nFirstObject + nNumObjects);
+ m_offsets.resize(static_cast<long>(nFirstObject+nNumObjects));
#else
- m_nNumObjects = nFirstObject + nNumObjects;
- m_offsets.resize(nFirstObject+nNumObjects);
+ m_nNumObjects = nFirstObject + nNumObjects;
+ m_offsets.resize(nFirstObject+nNumObjects);
#endif // _WIN32
- } catch (std::bad_alloc &ex) {
- PODOFO_RAISE_ERROR( ePdfError_OutOfMemory );
+ } catch (std::bad_alloc &) {
+ PODOFO_RAISE_ERROR( ePdfError_OutOfMemory );
+ }
}
}
else