--- 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;
}
/**