• Home
  • Raw
  • Download

Lines Matching +full:vm +full:- +full:valgrind +full:- +full:other

4   Copyright 2004-2006 Lennart Poettering
60 #include <systemd/sd-daemon.h>
69 #include <pulse/client-conf.h>
71 #include <pulse/mainloop-signal.h>
76 #include <pulsecore/lock-autospawn.h>
78 #include <pulsecore/core-error.h>
79 #include <pulsecore/core-rtclock.h>
80 #include <pulsecore/core-scache.h>
83 #include <pulsecore/cli-command.h>
85 #include <pulsecore/core-util.h>
87 #include <pulsecore/cli-text.h>
95 #include <pulsecore/dbus-shared.h>
101 #include "daemon-conf.h"
104 #include "ltdl-bind-now.h"
105 #include "server-lookup.h"
137 pa_module_load(&module, userdata, "module-cli", NULL); in signal_callback()
143 pa_module_load(&module, userdata, "module-cli-protocol-unix", NULL); in signal_callback()
160 m->quit(m, 0); in signal_callback()
171 /* On other platforms, these paths are compiled into PulseAudio. This isn't in change_user()
173 * paths and the build system can't handle Windows-style paths properly. in change_user()
177 * handled on Windows in other parts of PA. Note that this is only needed in change_user()
178 * in system-wide mode since paths in user instances are already handled in change_user()
185 /* https://docs.microsoft.com/en-us/windows/win32/secauthz/ace-strings */ in change_user()
186 …/* https://docs.microsoft.com/en-us/windows/win32/secauthz/modifying-the-acls-of-an-object-in-c-- in change_user()
187 …/* https://docs.microsoft.com/en-us/windows/win32/api/sddl/nf-sddl-convertstringsecuritydescriptor… in change_user()
260 /* This function is called only in system-wide mode. It creates a in change_user()
266 return -1; in change_user()
271 return -1; in change_user()
275 PA_SYSTEM_USER, (unsigned long) pw->pw_uid, in change_user()
276 PA_SYSTEM_GROUP, (unsigned long) gr->gr_gid); in change_user()
278 if (pw->pw_gid != gr->gr_gid) { in change_user()
280 return -1; in change_user()
283 if (!pa_streq(pw->pw_dir, PA_SYSTEM_RUNTIME_PATH)) in change_user()
286 if (pa_make_secure_dir(PA_SYSTEM_RUNTIME_PATH, 0755, pw->pw_uid, gr->gr_gid, true) < 0) { in change_user()
288 return -1; in change_user()
291 if (pa_make_secure_dir(PA_SYSTEM_STATE_PATH, 0700, pw->pw_uid, gr->gr_gid, true) < 0) { in change_user()
293 return -1; in change_user()
298 if (initgroups(PA_SYSTEM_USER, gr->gr_gid) != 0) { in change_user()
300 return -1; in change_user()
304 r = setresgid(gr->gr_gid, gr->gr_gid, gr->gr_gid); in change_user()
306 if ((r = setgid(gr->gr_gid)) >= 0) in change_user()
307 r = setegid(gr->gr_gid); in change_user()
309 r = setregid(gr->gr_gid, gr->gr_gid); in change_user()
316 return -1; in change_user()
320 r = setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid); in change_user()
322 if ((r = setuid(pw->pw_uid)) >= 0) in change_user()
323 r = seteuid(pw->pw_uid); in change_user()
325 r = setreuid(pw->pw_uid, pw->pw_uid); in change_user()
332 return -1; in change_user()
361 return -1; in change_user()
372 if (!r->is_set) in set_one_rlimit()
375 rl.rlim_cur = rl.rlim_max = r->value; in set_one_rlimit()
378 …pa_log_info("setrlimit(%s, (%u, %u)) failed: %s", name, (unsigned) r->value, (unsigned) r->value, … in set_one_rlimit()
379 return -1; in set_one_rlimit()
386 set_one_rlimit(&conf->rlimit_fsize, RLIMIT_FSIZE, "RLIMIT_FSIZE"); in set_all_rlimits()
387 set_one_rlimit(&conf->rlimit_data, RLIMIT_DATA, "RLIMIT_DATA"); in set_all_rlimits()
388 set_one_rlimit(&conf->rlimit_stack, RLIMIT_STACK, "RLIMIT_STACK"); in set_all_rlimits()
389 set_one_rlimit(&conf->rlimit_core, RLIMIT_CORE, "RLIMIT_CORE"); in set_all_rlimits()
391 set_one_rlimit(&conf->rlimit_rss, RLIMIT_RSS, "RLIMIT_RSS"); in set_all_rlimits()
394 set_one_rlimit(&conf->rlimit_nproc, RLIMIT_NPROC, "RLIMIT_NPROC"); in set_all_rlimits()
397 set_one_rlimit(&conf->rlimit_nofile, RLIMIT_NOFILE, "RLIMIT_NOFILE"); in set_all_rlimits()
400 set_one_rlimit(&conf->rlimit_memlock, RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK"); in set_all_rlimits()
403 set_one_rlimit(&conf->rlimit_as, RLIMIT_AS, "RLIMIT_AS"); in set_all_rlimits()
406 set_one_rlimit(&conf->rlimit_locks, RLIMIT_LOCKS, "RLIMIT_LOCKS"); in set_all_rlimits()
409 set_one_rlimit(&conf->rlimit_sigpending, RLIMIT_SIGPENDING, "RLIMIT_SIGPENDING"); in set_all_rlimits()
412 set_one_rlimit(&conf->rlimit_msgqueue, RLIMIT_MSGQUEUE, "RLIMIT_MSGQUEUE"); in set_all_rlimits()
415 set_one_rlimit(&conf->rlimit_nice, RLIMIT_NICE, "RLIMIT_NICE"); in set_all_rlimits()
418 set_one_rlimit(&conf->rlimit_rtprio, RLIMIT_RTPRIO, "RLIMIT_RTPRIO"); in set_all_rlimits()
421 set_one_rlimit(&conf->rlimit_rttime, RLIMIT_RTTIME, "RLIMIT_RTTIME"); in set_all_rlimits()
432 if (c->default_server && *c->default_server) in check_configured_address()
433 default_server = pa_xstrdup(c->default_server); in check_configured_address()
448 pa_log_warn("Unable to contact D-Bus: %s: %s", error.name, error.message); in register_dbus_name()
460 pa_log_error("D-Bus name %s already taken.", name); in register_dbus_name()
489 pa_mainloop_get_api(*m)->quit(pa_mainloop_get_api(*m), 0); in svc_callback()
525 int daemon_pipe[2] = { -1, -1 };
526 int daemon_pipe2[2] = { -1, -1 };
528 int autospawn_fd = -1;
563 admittedly a bit snake-oilish.
602 passed_fds[n_fds] = passed_fds[n_fds+1] = -1;
603 while (i--)
611 passed_fds[0] = passed_fds[1] = -1;
628 pa_reset_sigs(-1);
629 pa_unblock_sigs(-1);
654 if (conf->log_target)
655 pa_log_set_target(conf->log_target);
661 pa_log_set_level(conf->log_level);
662 if (conf->log_meta)
664 if (conf->log_time)
666 pa_log_set_show_backtrace(conf->log_backtrace);
669 /* conf->system_instance and conf->local_server_type control almost the
671 switch (conf->local_server_type) {
673 … conf->local_server_type = conf->system_instance ? PA_SERVER_TYPE_SYSTEM : PA_SERVER_TYPE_USER;
677 conf->system_instance = false;
680 conf->system_instance = true;
686 …start_server = conf->local_server_type == PA_SERVER_TYPE_USER || (getuid() == 0 && conf->local_ser…
688 if (!start_server && conf->local_server_type == PA_SERVER_TYPE_SYSTEM) {
689 …pa_log_notice(_("System mode refused for non-root user. Only starting the D-Bus server lookup serv…
690 conf->system_instance = false;
698 if (conf->dl_search_path)
699 lt_dlsetsearchpath(conf->dl_search_path);
710 switch (conf->cmd) {
712 pa_dump_modules(conf, argc-d, argv+d);
807 pa_assert(conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START);
816 if (getuid() == 0 && !conf->system_instance)
817 … pa_log_warn(_("This program is not intended to be run as root (unless --system is specified)."));
818 #ifndef HAVE_DBUS /* A similar, only a notice worthy check was done earlier, if D-Bus is enabled. */
819 else if (getuid() != 0 && conf->system_instance) {
826 if (conf->cmd == PA_CMD_START && conf->system_instance) {
827 pa_log(_("--start not supported for system instances."));
831 if (conf->cmd == PA_CMD_START && (configured_address = check_configured_address())) {
833 * By default a standard X11 login will load module-x11-publish which will
867 …pa_log_notice(_("User-configured server at %s, refusing to start/autospawn."), configured_address);
873 …pa_log_notice(_("User-configured server at %s, which appears to be local. Probing deeper."), confi…
877 if (conf->system_instance && !conf->disallow_exit)
878 pa_log_warn(_("Running in system mode, but --disallow-exit not set."));
880 if (conf->system_instance && !conf->disallow_module_loading)
881 pa_log_warn(_("Running in system mode, but --disallow-module-loading not set."));
883 if (conf->system_instance && !conf->disable_shm) {
885 conf->disable_shm = true;
888 if (conf->system_instance && conf->exit_idle_time >= 0) {
890 conf->exit_idle_time = -1;
893 if (conf->cmd == PA_CMD_START) {
916 if (conf->daemonize) {
943 daemon_pipe[1] = -1;
969 autospawn_fd = -1;
973 daemon_pipe[0] = -1;
976 if (!conf->log_target) {
1014 daemon_pipe2[1] = -1;
1030 daemon_pipe[1] = -1;
1036 daemon_pipe2[0] = -1;
1064 if (conf->high_priority)
1065 pa_raise_priority(conf->nice_level);
1067 if (conf->system_instance)
1071 pa_set_env_and_record("PULSE_SYSTEM", conf->system_instance ? "1" : "0");
1089 pa_log_debug("Compiled with Valgrind support: yes");
1091 pa_log_debug("Compiled with Valgrind support: no");
1094 pa_log_debug("Running in valgrind mode: %s", pa_yes_no(pa_in_valgrind()));
1096 pa_log_debug("Running in VM: %s", pa_yes_no(pa_running_in_vm()));
1140 pa_log_info("Using modules directory %s.", conf->dl_search_path);
1148 if (conf->use_pid_file) {
1153 if (conf->cmd == PA_CMD_START && z > 0) {
1155 * --start mode, then let's return this as success. */
1175 if (conf->lock_memory) {
1190 if (!(c = pa_core_new(pa_mainloop_get_api(mainloop), !conf->disable_shm,
1191 … !conf->disable_shm && !conf->disable_memfd && pa_memfd_is_locally_supported(),
1192 conf->shm_size))) {
1197 c->default_sample_spec = conf->default_sample_spec;
1198 c->alternate_sample_rate = conf->alternate_sample_rate;
1199 c->default_channel_map = conf->default_channel_map;
1200 c->default_n_fragments = conf->default_n_fragments;
1201 c->default_fragment_size_msec = conf->default_fragment_size_msec;
1202 c->deferred_volume_safety_margin_usec = conf->deferred_volume_safety_margin_usec;
1203 c->deferred_volume_extra_delay_usec = conf->deferred_volume_extra_delay_usec;
1204 c->lfe_crossover_freq = conf->lfe_crossover_freq;
1205 c->exit_idle_time = conf->exit_idle_time;
1206 c->scache_idle_time = conf->scache_idle_time;
1207 c->resample_method = conf->resample_method;
1208 c->realtime_priority = conf->realtime_priority;
1209 c->realtime_scheduling = conf->realtime_scheduling;
1210 c->avoid_resampling = conf->avoid_resampling;
1211 c->disable_remixing = conf->disable_remixing;
1212 c->remixing_use_all_sink_channels = conf->remixing_use_all_sink_channels;
1213 c->remixing_produce_lfe = conf->remixing_produce_lfe;
1214 c->remixing_consume_lfe = conf->remixing_consume_lfe;
1215 c->deferred_volume = conf->deferred_volume;
1216 c->running_as_daemon = conf->daemonize;
1217 c->disallow_exit = conf->disallow_exit;
1218 c->flat_volumes = conf->flat_volumes;
1219 c->rescue_streams = conf->rescue_streams;
1221 c->server_type = conf->local_server_type;
1226 c->state = PA_CORE_RUNNING;
1228 pa_cpu_init(&c->cpu_info);
1243 if (!conf->no_cpu_limit)
1256 if (conf->load_default_script_file) {
1260 r = pa_cli_command_execute_file_stream(c, f, buf, &conf->fail);
1267 r = pa_cli_command_execute(c, conf->script_commands, buf, &conf->fail);
1274 if (r < 0 && conf->fail) {
1279 if (!c->modules || pa_idxset_size(c->modules) == 0) {
1285 /* When we just provide the D-Bus server lookup service, we don't want
1289 conf->disallow_module_loading = true;
1295 c->disallow_module_loading = conf->disallow_module_loading;
1298 if (!conf->system_instance) {
1306 …server_bus = register_dbus_name(c, conf->system_instance ? DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, "or…
1314 daemon_pipe2[1] = -1;
1385 if (!conf->no_cpu_limit)
1411 /* This has no real purpose except making things valgrind-clean */