@@ -114,14 +114,14 @@ mrb_execarg_fill(mrb_state *mrb, mrb_value env, mrb_value *argv, mrb_int argc, m
114114 result = (char * * )mrb_malloc (mrb , sizeof (char * ) * (argc + 3 ));
115115
116116 #if defined(__APPLE__ ) || defined(__linux__ )
117+ static char default_shell [] = "/bin/sh" , default_shell_mod [] = "-c" ;
117118 shell = getenv ("SHELL" );
118- if (!shell ) shell = strdup ("bin/sh" );
119- shell_mod = strdup ("-c" );
120119 #else
120+ static char default_shell [] = "C:\\WINDOWS\\system32\\cmd.exe" , default_shell_mod [] = "/c" ;
121121 shell = getenv ("ComSpec" );
122- if (!shell ) shell = strdup ("C:\\WINDOWS\\system32\\cmd.exe" );
123- shell_mod = strdup ("/c" );
124122 #endif
123+ if (!shell ) shell = default_shell ;
124+ shell_mod = default_shell_mod ;
125125 mrb_build_shell_array (mrb , argv , argc , shell , shell_mod , result );
126126 argc += 2 ;
127127 }
@@ -161,7 +161,7 @@ mrb_execarg_fill(mrb_state *mrb, mrb_value env, mrb_value *argv, mrb_int argc, m
161161 mrb_value val = mrb_hash_get (mrb , env , key );
162162 mrb_value skey = mrb_symbol_p (key ) ? mrb_sym2str (mrb , mrb_symbol (key )) : key ;
163163 mrb_value sval = mrb_convert_type (mrb , val , MRB_TT_STRING , "String" , "to_s" );
164- mrb_int slen = RSTRING_LEN (skey ) + RSTRING_LEN (sval ) + 1 ;
164+ mrb_int slen = RSTRING_LEN (skey ) + RSTRING_LEN (sval ) + 2 ;
165165 char str [slen ];
166166
167167 sprintf (str , "%s=%s" ,
0 commit comments