diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-11-20 17:48:04 +0100 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-11-23 05:03:02 +0100 | 
| commit | 5c90723d31afd47510f89c4dc218401486072020 (patch) | |
| tree | 964aa4e0329c1ed3749e3dae1a51d01b592214d5 | |
| parent | 3014081136b7d920940f085c0bc9b0e5c16fb398 (diff) | |
daemon: complain if user passes too many arguments
| -rw-r--r-- | src/daemon/main.c | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/src/daemon/main.c b/src/daemon/main.c index c006badb..eafd72ac 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -509,6 +509,12 @@ int main(int argc, char *argv[]) {              goto finish;          case PA_CMD_DUMP_CONF: { + +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              s = pa_daemon_conf_dump(conf);              fputs(s, stdout);              pa_xfree(s); @@ -519,6 +525,11 @@ int main(int argc, char *argv[]) {          case PA_CMD_DUMP_RESAMPLE_METHODS: {              int i; +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              for (i = 0; i < PA_RESAMPLER_MAX; i++)                  if (pa_resample_method_supported(i))                      printf("%s\n", pa_resample_method_to_string(i)); @@ -533,6 +544,12 @@ int main(int argc, char *argv[]) {              goto finish;          case PA_CMD_VERSION : + +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              printf(PACKAGE_NAME" "PACKAGE_VERSION"\n");              retval = 0;              goto finish; @@ -540,6 +557,11 @@ int main(int argc, char *argv[]) {          case PA_CMD_CHECK: {              pid_t pid; +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              if (pa_pid_file_check_running(&pid, "pulseaudio") < 0)                  pa_log_info(_("Daemon not running"));              else { @@ -552,6 +574,11 @@ int main(int argc, char *argv[]) {          }          case PA_CMD_KILL: +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              if (pa_pid_file_kill(SIGINT, NULL, "pulseaudio") < 0)                  pa_log(_("Failed to kill daemon: %s"), pa_cstrerror(errno));              else @@ -561,6 +588,11 @@ int main(int argc, char *argv[]) {          case PA_CMD_CLEANUP_SHM: +            if (d < argc) { +                pa_log("Too many arguments.\n"); +                goto finish; +            } +              if (pa_shm_cleanup() >= 0)                  retval = 0; @@ -570,6 +602,11 @@ int main(int argc, char *argv[]) {              pa_assert(conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START);      } +    if (d < argc) { +        pa_log("Too many arguments.\n"); +        goto finish; +    } +      if (getuid() == 0 && !conf->system_instance)          pa_log_warn(_("This program is not intended to be run as root (unless --system is specified)."));      else if (getuid() != 0 && conf->system_instance) { | 
