diff -r 31fc1277642e -r 41ebde60981f htiui/HtiServicePlugins/HtiAppServicePlugin/src/HtiAppControl.cpp --- a/htiui/HtiServicePlugins/HtiAppServicePlugin/src/HtiAppControl.cpp Thu May 13 21:10:48 2010 +0300 +++ b/htiui/HtiServicePlugins/HtiAppServicePlugin/src/HtiAppControl.cpp Fri May 14 15:15:12 2010 +0300 @@ -35,7 +35,7 @@ #include #include #include -#include +#include using namespace Java; @@ -622,7 +622,26 @@ iInstOpts.iLang = (TLanguage) parameters[offset]; offset++; iInstOpts.iUsePhoneLang = (TBool) parameters[offset]; offset++; iInstOpts.iUpgradeData = ConvertToPolicy( parameters[offset] ); + offset++; + HTI_LOG_FORMAT( "parameters length: %d", parameters.Length()); + HTI_LOG_FORMAT( "next offset: %d", offset); + if(parameters.Length() > offset) + { + TInt language = iInstOpts.iLang; + if (parameters.Length() == offset+2) + { + language = parameters[offset] + parameters[offset+1]<<8; + } + if (parameters.Length() == offset+1) + { + language = parameters[offset]; + } + if ((language > ELangTest) && (language < ELangMaximum)) + { + iInstOpts.iLang = (TLanguage) language; + } + } HTI_LOG_FORMAT( "iDrive: %c", iInstOpts.iDrive.GetLowerCase() ); HTI_LOG_FORMAT( "iLang: %d", iInstOpts.iLang ); HTI_LOG_FORMAT( "iUsePhoneLang: %d", iInstOpts.iUsePhoneLang ); @@ -1558,7 +1577,7 @@ offset += length; // skip over password offset += 4; // the last one byte params - if ( aParams.Length() != offset ) + if ( aParams.Length() < offset || aParams.Length() > offset + 2) { HTI_LOG_TEXT( "ValidateInstallParams: Failed, final length incorrect" ); return EFalse;