diff --git a/client.c b/client.c index b6749835..df43e7d5 100644 --- a/client.c +++ b/client.c @@ -124,7 +124,7 @@ main(int argc, char *const *argv) static const int foot_exit_failure = -36; int ret = foot_exit_failure; - const char *const prog_name = argv[0]; + const char *const prog_name = argc > 0 ? argv[0] : ""; static const struct option longopts[] = { {"term", required_argument, NULL, 't'}, @@ -309,8 +309,10 @@ main(int argc, char *const *argv) } } - argc -= optind; - argv += optind; + if (argc > 0) { + argc -= optind; + argv += optind; + } log_init(log_colorize, false, LOG_FACILITY_USER, log_level); diff --git a/main.c b/main.c index 7370de29..34f72a7c 100644 --- a/main.c +++ b/main.c @@ -168,7 +168,7 @@ main(int argc, char *const *argv) * don't pass this on to programs launched by us */ unsetenv("DESKTOP_STARTUP_ID"); - const char *const prog_name = argv[0]; + const char *const prog_name = argc > 0 ? argv[0] : ""; static const struct option longopts[] = { {"config", required_argument, NULL, 'c'}, @@ -401,8 +401,10 @@ main(int argc, char *const *argv) as_server && log_syslog, (enum fcft_log_class)log_level); - argc -= optind; - argv += optind; + if (argc > 0) { + argc -= optind; + argv += optind; + } LOG_INFO("%s", version_and_features());