diff -r 4917f9bf7995 -r 8bfb9186a8b8 browserutilities/feedsengine/FeedsServer/Server/src/FeedsServer.cpp --- a/browserutilities/feedsengine/FeedsServer/Server/src/FeedsServer.cpp Tue Apr 27 17:46:17 2010 +0300 +++ b/browserutilities/feedsengine/FeedsServer/Server/src/FeedsServer.cpp Tue May 11 17:13:44 2010 +0300 @@ -31,7 +31,10 @@ // CONSTANTS _LIT(KFeedsServerPanic, "FeedsServer"); - +// opml files are generally smaller in size.But if a malformed opml +// greater than 400kB would cause the system to be irresponsive. +// So limit the max size to 400 kB +const TInt KMaxOPMLFileSize = 409600; //_LIT(KFileSchema, "file://c:"); _LIT(KDefaultFeed, "default_feeds.xml"); @@ -385,7 +388,10 @@ // Read file User::LeaveIfError(aFile.Size(size)); - + if ( size > KMaxOPMLFileSize ) + { + User::Leave(KErrCorrupt); + } buffer = HBufC8::NewLC(size); bufferPtr.Set(buffer->Des()); @@ -558,6 +564,7 @@ void CFeedsServer::ScheduleUpdateManagerL() { RArray folderListIds; + CleanupClosePushL(folderListIds); TBool autoUpdate = EFalse; TInt autoUpdateFreq = 0; TUint32 autoUpdateAP = 0; @@ -576,6 +583,8 @@ } } } + + CleanupStack::PopAndDestroy(); //folderListIds } // -----------------------------------------------------------------------------