diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -1042,7 +1042,7 @@ CleanupStack::PushL( pluginIter ); ChspsDomNode* pluginNode = pluginIter->First(); TBool steppingtoConfNode(EFalse); - while(pluginNode && !steppingtoConfNode) + while( pluginNode && !steppingtoConfNode ) { const TDesC8& pluginNodeName = pluginNode->Name(); @@ -1057,10 +1057,18 @@ } CleanupStack::PopAndDestroy( pluginIter ); - // Copy the plugin configuration to the main document. - ChspsDomNode* rootCopy = pluginNode->CloneL( node->StringPool()); - rootCopy->SetParent( node ); - node->AddChildL( rootCopy ); + if ( pluginNode ) + { + // Copy the plugin configuration to the main document. + ChspsDomNode* rootCopy = pluginNode->CloneL( node->StringPool()); + rootCopy->SetParent( node ); + node->AddChildL( rootCopy ); + } + else + { + // configuration is corrupted + User::Leave( KErrCorrupt ); + } } CleanupStack::PopAndDestroy( pluginOdt );