From: ayin Date: Tue, 9 Oct 2007 13:34:46 +0000 (+0000) Subject: Abort if the argument for -e is missing and move the code to X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=0fe9aa388a1837af42755176ad8a4db1320c59d7;p=dana%2Furxvt.git Abort if the argument for -e is missing and move the code to initialize r_argv after the one for cmd_argv to avoid leaking. --- diff --git a/src/init.C b/src/init.C index 73cbdaa8..89e369cf 100644 --- a/src/init.C +++ b/src/init.C @@ -355,15 +355,10 @@ rxvt_term::init_resources (int argc, const char *const *argv) if (!strcmp (argv[r_argc], "-e")) break; - r_argv = (const char **)rxvt_malloc (sizeof (char *) * (r_argc + 1)); - - for (i = 0; i < r_argc; i++) - r_argv[i] = (const char *)argv[i]; - - r_argv[i] = NULL; - if (r_argc == argc) cmd_argv = NULL; + else if (!argv[r_argc + 1]) + rxvt_fatal ("-e requires an argument\n"); else { cmd_argv = (const char **)rxvt_malloc (sizeof (char *) * (argc - r_argc)); @@ -374,6 +369,13 @@ rxvt_term::init_resources (int argc, const char *const *argv) cmd_argv[i] = NULL; } + r_argv = (const char **)rxvt_malloc (sizeof (char *) * (r_argc + 1)); + + for (i = 0; i < r_argc; i++) + r_argv[i] = (const char *)argv[i]; + + r_argv[i] = NULL; + rs[Rs_name] = rxvt_basename (argv[0]); /*