diff --git a/platform/windows/godot_win.cpp b/platform/windows/godot_win.cpp index df2d96e5162..6f1fb047068 100644 --- a/platform/windows/godot_win.cpp +++ b/platform/windows/godot_win.cpp @@ -136,8 +136,13 @@ int widechar_main(int argc, wchar_t **argv) { Error err = Main::setup(argv_utf8[0], argc - 1, &argv_utf8[1]); - if (err != OK) + if (err != OK) { + for (int i = 0; i < argc; ++i) { + delete[] argv_utf8[i]; + } + delete[] argv_utf8; return 255; + } if (Main::start()) os.run(); diff --git a/platform/x11/godot_x11.cpp b/platform/x11/godot_x11.cpp index 6f418b213fc..f02f3cb8818 100644 --- a/platform/x11/godot_x11.cpp +++ b/platform/x11/godot_x11.cpp @@ -45,8 +45,10 @@ int main(int argc, char *argv[]) { getcwd(cwd, PATH_MAX); Error err = Main::setup(argv[0], argc - 1, &argv[1]); - if (err != OK) + if (err != OK) { + free(cwd); return 255; + } if (Main::start()) os.run(); // it is actually the OS that decides how to run