Resolves: tdf#112215 null deref on missing optional ppd value
Change-Id: Iba45437332df963e1aa213c587071ab293f36390
Reviewed-on: https://gerrit.libreoffice.org/64163
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx
index 105a350..7789459 100644
--- a/vcl/unx/generic/printer/ppdparser.cxx
+++ b/vcl/unx/generic/printer/ppdparser.cxx
@@ -848,13 +848,22 @@ PPDParser::PPDParser( const OUString& rFile ) :
}
// fill in direct values
if( (pKey = getKey( OUString( "ColorDevice" ) )) )
m_bColorDevice = pKey->getValue( 0 )->m_aValue.startsWithIgnoreAsciiCase( "true" );
if ((pKey = getKey(OUString("ColorDevice"))))
{
if (const PPDValue* pValue = pKey->getValue(0))
m_bColorDevice = pValue->m_aValue.startsWithIgnoreAsciiCase("true");
}
if( (pKey = getKey( OUString( "LanguageLevel" ) )) )
m_nLanguageLevel = pKey->getValue( 0 )->m_aValue.toInt32();
if( (pKey = getKey( OUString( "TTRasterizer" ) )) )
m_bType42Capable = pKey->getValue( 0 )->m_aValue.equalsIgnoreAsciiCase( "Type42" );
if ((pKey = getKey(OUString("LanguageLevel"))))
{
if (const PPDValue* pValue = pKey->getValue(0))
m_nLanguageLevel = pValue->m_aValue.toInt32();
}
if ((pKey = getKey(OUString("TTRasterizer"))))
{
if (const PPDValue* pValue = pKey->getValue(0))
m_bType42Capable = pValue->m_aValue.equalsIgnoreAsciiCase( "Type42" );
}
}
PPDParser::~PPDParser()