tzservices/tzserver/Server/Source/timezonesession.cpp
branchRCL_3
changeset 10 469fa8a78de7
parent 0 2e3d3ce01487
--- a/tzservices/tzserver/Server/Source/timezonesession.cpp	Tue May 25 12:52:36 2010 +0300
+++ b/tzservices/tzserver/Server/Source/timezonesession.cpp	Wed Jun 09 09:52:12 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -698,19 +698,23 @@
  TInt CTzServerSession::doGetUserTimeZoneNamesL(const RMessage2& aMessage)
 	{
 	TInt size = iTzUserDataCache->SizeOfNames();
-	CBufFlat* buffer = CBufFlat::NewL(size);
-	CleanupStack::PushL(buffer);
-	buffer->ExpandL(0,size);
-	
-	RBufWriteStream writeStream;
-	CleanupClosePushL(writeStream);
-	writeStream.Open(*buffer);
-	const CTzUserNames& names = iTzUserDataCache->GetNames();
-	writeStream << names;
-	writeStream.CommitL();
-	aMessage.WriteL(0, buffer->Ptr(0));
-	CleanupStack::PopAndDestroy(2, buffer);
-	return KErrNone;
+	if ( size > 0 )
+		{
+		CBufFlat* buffer = CBufFlat::NewL(size);
+		CleanupStack::PushL(buffer);
+		buffer->ExpandL(0,size);
+		
+		RBufWriteStream writeStream;
+		CleanupClosePushL(writeStream);
+		writeStream.Open(*buffer);
+		const CTzUserNames& names = iTzUserDataCache->GetNames();
+		writeStream << names;
+		writeStream.CommitL();
+		aMessage.WriteL(0, buffer->Ptr(0));
+		CleanupStack::PopAndDestroy(2, buffer);
+		return KErrNone;
+		}
+	return KErrArgument;
 	}
 	
 /**