browserutilities/feedsengine/FeedsServer/Server/src/FeedsServer.cpp
branchRCL_3
changeset 40 8bfb9186a8b8
parent 26 cb62a4f66ebe
child 48 79859ed3eea9
--- 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
     }
 
 // -----------------------------------------------------------------------------