Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15
podofo
0003-Fix-for-CVE-2017-5852-with-added-error-cod...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0003-Fix-for-CVE-2017-5852-with-added-error-code.patch of Package podofo
Subject: Fix for CVE-2017-5852 with added error code Url: https://sourceforge.net/p/podofo/code/1835/ --- a/podofo/trunk/src/base/PdfError.cpp +++ b/podofo/trunk/src/base/PdfError.cpp @@ -222,6 +222,9 @@ case ePdfError_InvalidEnumValue: pszMsg = "ePdfError_InvalidEnumValue"; break; + case ePdfError_BrokenFile: + pszMsg = "ePdfError_BrokenFile"; + break; case ePdfError_PageNotFound: pszMsg = "ePdfError_PageNotFound"; break; @@ -396,6 +399,9 @@ break; case ePdfError_InvalidEnumValue: pszMsg = "An invalid enum value was specified."; + break; + case ePdfError_BrokenFile: + pszMsg = "The file content is broken."; break; case ePdfError_PageNotFound: pszMsg = "The requested page could not be found in the PDF."; --- a/podofo/trunk/src/base/PdfError.h +++ b/podofo/trunk/src/base/PdfError.h @@ -73,6 +73,7 @@ ePdfError_ValueOutOfRange, /**< The specified memory is out of the allowed range. */ ePdfError_InternalLogic, /**< An internal sanity check or assertion failed. */ ePdfError_InvalidEnumValue, /**< An invalid enum value was specified. */ + ePdfError_BrokenFile, /**< The file content is broken. */ ePdfError_PageNotFound, /**< The requested page could not be found in the PDF. */ --- a/podofo/trunk/src/doc/PdfPage.cpp +++ b/podofo/trunk/src/doc/PdfPage.cpp @@ -228,6 +228,14 @@ if( inObject->GetDictionary().HasKey( "Parent" ) ) { pObj = inObject->GetIndirectKey( "Parent" ); + if( pObj == inObject ) + { + std::ostringstream oss; + oss << "Object " << inObject->Reference().ObjectNumber() << " " + << inObject->Reference().GenerationNumber() << " references itself as Parent"; + PODOFO_RAISE_ERROR_INFO( ePdfError_BrokenFile, oss.str().c_str() ); + } + if( pObj ) pObj = GetInheritedKeyFromObject( inKey, pObj ); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor