[mkbundle] Don't free bundled dylibrary directory (#3897)
[mono.git] / mono / mini / main.c
index 8d73080631e424bf475d8bab179cde569b069fa9..77f8bc9578c9cea42168c5695dd3dca43d53ff6c 100644 (file)
@@ -151,7 +151,7 @@ bundle_save_library_initialize ()
        bundle_save_library_initialized = 1;
        char *path = g_build_filename (g_get_tmp_dir (), "mono-bundle-XXXXXX", NULL);
        bundled_dylibrary_directory = g_mkdtemp (path);
-       g_free (path);
+       /* don't free path - mkdtemp modifies it in place, and bundled_dylibrary_directory is an alias of it */
        if (bundled_dylibrary_directory == NULL)
                return;
        atexit (delete_bundled_libraries);
@@ -280,9 +280,10 @@ probe_embedded (const char *program, int *ref_argc, char **ref_argv [])
 
        mono_register_bundled_assemblies ((const MonoBundledAssembly **) assemblies->data);
        new_argv = g_new (char *, (*ref_argc)+1);
-       for (j = 0; j < *ref_argc; j++)
-               new_argv [j] = (*ref_argv)[j];
-       new_argv [j] = entry_point;
+       new_argv [0] = (*ref_argv)[0];
+       new_argv [1] = entry_point;
+       for (j = 1; j < *ref_argc; j++)
+               new_argv [j+1] = (*ref_argv)[j];
        *ref_argv = new_argv;
        (*ref_argc)++;