diff -r 951aeeb3da43 -r eea20ed08f4b tzservices/tzserver/Server/Source/timezonesession.cpp --- a/tzservices/tzserver/Server/Source/timezonesession.cpp Fri Jun 11 13:48:03 2010 +0300 +++ b/tzservices/tzserver/Server/Source/timezonesession.cpp Tue Jun 29 10:40:11 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; } /**