@@ -256,18 +256,20 @@ class ProcessWrap : public HandleWrap {
256256      int  argc = js_argv->Length ();
257257      CHECK_LT (argc, INT_MAX);  //  Check for overflow.
258258      args_vals.reserve (argc);
259-       options_args.resize (argc + 1 );
260259      for  (int  i = 0 ; i < argc; i++) {
261260        Local<Value> val;
262261        if  (!js_argv->Get (context, i).ToLocal (&val)) {
263262          return ;
264263        }
265264        node::Utf8Value arg (env->isolate (), val);
266265        args_vals.emplace_back (arg.ToString ());
267-         options_args[i] = const_cast <char *>(args_vals.back ().c_str ());
266+       }
267+       options_args.resize (args_vals.size () + 1 );
268+       for  (size_t  i = 0 ; i < args_vals.size (); i++) {
269+         options_args[i] = const_cast <char *>(args_vals[i].c_str ());
268270        CHECK_NOT_NULL (options_args[i]);
269271      }
270-       options_args[argc]  = nullptr ;
272+       options_args. back ()  = nullptr ;
271273      options.args  = options_args.data ();
272274    }
273275
@@ -294,18 +296,20 @@ class ProcessWrap : public HandleWrap {
294296      int  envc = env_opt->Length ();
295297      CHECK_LT (envc, INT_MAX);            //  Check for overflow.
296298      env_vals.reserve (envc);
297-       options_env.resize (envc + 1 );
298299      for  (int  i = 0 ; i < envc; i++) {
299300        Local<Value> val;
300301        if  (!env_opt->Get (context, i).ToLocal (&val)) {
301302          return ;
302303        }
303304        node::Utf8Value pair (env->isolate (), val);
304305        env_vals.emplace_back (pair.ToString ());
305-         options_env[i] = const_cast <char *>(env_vals.back ().c_str ());
306+       }
307+       options_env.resize (env_vals.size () + 1 );
308+       for  (size_t  i = 0 ; i < env_vals.size (); i++) {
309+         options_env[i] = const_cast <char *>(env_vals[i].c_str ());
306310        CHECK_NOT_NULL (options_env[i]);
307311      }
308-       options_env[envc]  = nullptr ;
312+       options_env. back ()  = nullptr ;
309313      options.env  = options_env.data ();
310314    }
311315
0 commit comments