diff -r e06095241a65 -r 735de8341ce4 vpnengine/vpnmanager/src/policypatcher.cpp --- a/vpnengine/vpnmanager/src/policypatcher.cpp Wed Sep 01 12:23:21 2010 +0100 +++ b/vpnengine/vpnmanager/src/policypatcher.cpp Tue Sep 14 23:16:15 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-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" @@ -11,14 +11,13 @@ * * Contributors: * -* Description: Policy importer +* Description: Policy importer * */ - - #include "policypatcher.h" #include "vpnapidefs.h" +#include "pkidefs.h" TAny* TPatchKeyArrayPtr::At(TInt aIndex) const @@ -314,7 +313,7 @@ { return iUserCertKeyLen; } - + HBufC8* CPolicyPatchInfo::CheckSubjectNameSyntaxL(const TDesC8& aSubj) { const TInt KMaxSubjectItems = 20; @@ -408,41 +407,41 @@ updateArrCount++; updateArrCount++; } - - TBuf8<256> resultBuf; - resultBuf.Copy(aSubj); - - i=0; - + + HBufC8* buf = HBufC8::NewLC( KMaxX500DN ); + TPtr8 bufPtr = buf->Des(); + + if ( KMaxX500DN >= aSubj.Length() ) + { + bufPtr.Copy( aSubj ); + } + else + { + User::Leave( KErrArgument ); + } + + i=0; + //update subjectname acoording to updateArr array. if ( updateArr->Count()>0 ) { while (iAt(i) + i, KReplacementChar); + if ( bufPtr.Length()At(i) + i, KReplacementChar); else User::Leave(KErrNotSupported); i++; } } - CleanupStack::Pop(updateArr); - CleanupStack::Pop(commaSignArr); - CleanupStack::Pop(equalSignArr); - - delete equalSignArr; - equalSignArr=NULL; + CleanupStack::Pop( buf ); + + CleanupStack::PopAndDestroy(updateArr); + CleanupStack::PopAndDestroy(commaSignArr); + CleanupStack::PopAndDestroy(equalSignArr); - delete commaSignArr; - commaSignArr=NULL; - - delete updateArr; - updateArr=NULL; - - HBufC8* resultHeap = resultBuf.AllocL(); - - return resultHeap; + return buf; }