From 7d9f6a6511b10b3dfc681a4554f8f68769273dc7 Mon Sep 17 00:00:00 2001 From: Jose Date: Thu, 30 Mar 2017 09:46:14 +0200 Subject: Fix (ICE-7710) - Pointer to stack variable in serviceMain --- cpp/src/Ice/Service.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'cpp/src/Ice/Service.cpp') diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp index da91bb24c85..7b0c658a6ba 100644 --- a/cpp/src/Ice/Service.cpp +++ b/cpp/src/Ice/Service.cpp @@ -1274,17 +1274,15 @@ Ice::Service::serviceMain(int argc, const wchar_t* const argv[]) // Don't need to pass a wide string converter in the bellow argv conversions // as argv come from Windows API. // + assert(argc == 1); char** args = new char*[_serviceArgs.size() + argc]; - args[0] = const_cast(wstringToString(argv[0], converter).c_str()); + const string serviceName = wstringToString(argv[0], converter); + args[0] = const_cast(serviceName.c_str()); int i = 1; for(vector::iterator p = _serviceArgs.begin(); p != _serviceArgs.end(); ++p) { args[i++] = const_cast(p->c_str()); } - for(int j = 1; j < argc; ++j) - { - args[i++] = const_cast(wstringToString(argv[j], converter).c_str()); - } argc += static_cast(_serviceArgs.size()); // -- cgit v1.2.3