--- 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<TInt> folderListIds;
+ CleanupClosePushL(folderListIds);
TBool autoUpdate = EFalse;
TInt autoUpdateFreq = 0;
TUint32 autoUpdateAP = 0;
@@ -576,6 +583,8 @@
}
}
}
+
+ CleanupStack::PopAndDestroy(); //folderListIds
}
// -----------------------------------------------------------------------------