1
0
mirror of https://github.com/systemd/systemd synced 2026-03-17 10:34:46 +01:00

Compare commits

..

No commits in common. "a8f76a8db744e706abf3b6e806645f5b92dae698" and "4858bc0d8453bfbadf46aecd291e886d2a8a2f20" have entirely different histories.

13 changed files with 38 additions and 61 deletions

View File

@ -92,11 +92,11 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--console</option><optional>=<replaceable>DEVICE</replaceable></optional></term> <term><option>--console</option></term>
<listitem><para>Ask question on TTY <replaceable>DEVICE</replaceable> instead of querying the user on <listitem><para>Ask question on
the calling TTY. If <replaceable>DEVICE</replaceable> is not specified, <filename>/dev/console</filename> instead of querying the user
<filename>/dev/console</filename> will be used.</para></listitem> on the calling TTY. </para></listitem>
</varlistentry> </varlistentry>
<xi:include href="standard-options.xml" xpointer="help" /> <xi:include href="standard-options.xml" xpointer="help" />

View File

@ -79,13 +79,6 @@ void* memdup_suffix0(const void *p, size_t l); /* We can't use _alloc_() here, s
memcpy_safe(_q_, p, _l_); \ memcpy_safe(_q_, p, _l_); \
}) })
static inline void unsetp(void *p) {
/* A trivial "destructor" that can be used in cases where we want to
* unset a pointer from a _cleanup_ function. */
*(void**)p = NULL;
}
static inline void freep(void *p) { static inline void freep(void *p) {
*(void**)p = mfree(*(void**) p); *(void**)p = mfree(*(void**) p);
} }

View File

@ -1999,7 +1999,7 @@ static void log_execution_mode(bool *ret_first_boot) {
if (arg_system) { if (arg_system) {
int v; int v;
log_info("systemd " GIT_VERSION " running in %ssystem mode (%s)", log_info("systemd " GIT_VERSION " running in %ssystem mode. (%s)",
arg_action == ACTION_TEST ? "test " : "", arg_action == ACTION_TEST ? "test " : "",
systemd_features); systemd_features);

View File

@ -28,7 +28,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
return 0; return 0;
if (!getenv("SYSTEMD_LOG_LEVEL")) if (!getenv("SYSTEMD_LOG_LEVEL"))
log_set_max_level(LOG_ERR); log_set_max_level(LOG_CRIT);
fdin = memfd_new_and_map("fuzz-journal-remote", size, &mem); fdin = memfd_new_and_map("fuzz-journal-remote", size, &mem);
if (fdin < 0) if (fdin < 0)
@ -66,7 +66,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
r = sd_journal_open_files(&j, (const char**) STRV_MAKE(name), 0); r = sd_journal_open_files(&j, (const char**) STRV_MAKE(name), 0);
if (r < 0) { if (r < 0) {
log_error_errno(r, "sd_journal_open_files([\"%s\"]) failed: %m", name);
assert_se(IN_SET(r, -ENOMEM, -EMFILE, -ENFILE)); assert_se(IN_SET(r, -ENOMEM, -EMFILE, -ENFILE));
return r; return r;
} }

View File

@ -74,7 +74,7 @@ int process_source(RemoteSource *source, bool compress, bool seal) {
&source->importer.boot_id, &source->importer.boot_id,
compress, seal); compress, seal);
if (r == -EBADMSG) { if (r == -EBADMSG) {
log_warning_errno(r, "Entry is invalid, ignoring."); log_error_errno(r, "Entry is invalid, ignoring.");
r = 0; r = 0;
} else if (r < 0) } else if (r < 0)
log_error_errno(r, "Failed to write entry of %zu bytes: %m", log_error_errno(r, "Failed to write entry of %zu bytes: %m",

View File

@ -69,9 +69,9 @@ static int get_line(JournalImporter *imp, char **line, size_t *size) {
imp->scanned = imp->filled; imp->scanned = imp->filled;
if (imp->scanned >= DATA_SIZE_MAX) if (imp->scanned >= DATA_SIZE_MAX)
return log_warning_errno(SYNTHETIC_ERRNO(ENOBUFS), return log_error_errno(SYNTHETIC_ERRNO(ENOBUFS),
"Entry is bigger than %u bytes.", "Entry is bigger than %u bytes.",
DATA_SIZE_MAX); DATA_SIZE_MAX);
if (imp->passive_fd) if (imp->passive_fd)
/* we have to wait for some data to come to us */ /* we have to wait for some data to come to us */
@ -163,9 +163,9 @@ static int get_data_size(JournalImporter *imp) {
imp->data_size = unaligned_read_le64(data); imp->data_size = unaligned_read_le64(data);
if (imp->data_size > DATA_SIZE_MAX) if (imp->data_size > DATA_SIZE_MAX)
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL), return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Stream declares field with size %zu > DATA_SIZE_MAX = %u", "Stream declares field with size %zu > DATA_SIZE_MAX = %u",
imp->data_size, DATA_SIZE_MAX); imp->data_size, DATA_SIZE_MAX);
if (imp->data_size == 0) if (imp->data_size == 0)
log_warning("Binary field with zero length"); log_warning("Binary field with zero length");
@ -203,8 +203,8 @@ static int get_data_newline(JournalImporter *imp) {
int l; int l;
l = cescape_char(*data, buf); l = cescape_char(*data, buf);
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL), return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Expected newline, got '%.*s'", l, buf); "Expected newline, got '%.*s'", l, buf);
} }
return 1; return 1;

View File

@ -22,7 +22,7 @@ int kill_unit(int argc, char *argv[], void *userdata) {
arg_kill_who = "all"; arg_kill_who = "all";
/* --fail was specified */ /* --fail was specified */
if (streq(arg_job_mode(), "fail")) if (streq(arg_job_mode, "fail"))
kill_who = strjoina(arg_kill_who, "-fail"); kill_who = strjoina(arg_kill_who, "-fail");
r = expand_unit_names(bus, strv_skip(argv, 1), NULL, &names, NULL); r = expand_unit_names(bus, strv_skip(argv, 1), NULL, &names, NULL);

View File

@ -306,7 +306,7 @@ int start_unit(int argc, char *argv[], void *userdata) {
/* A command in style of "systemctl start <unit1> <unit2> …", "sysemctl stop <unit1> <unit2> …" and so on */ /* A command in style of "systemctl start <unit1> <unit2> …", "sysemctl stop <unit1> <unit2> …" and so on */
method = verb_to_method(argv[0]); method = verb_to_method(argv[0]);
job_type = verb_to_job_type(argv[0]); job_type = verb_to_job_type(argv[0]);
mode = arg_job_mode(); mode = arg_job_mode;
} else } else
method = job_type = mode = NULL; method = job_type = mode = NULL;

View File

@ -65,7 +65,7 @@ char **arg_states = NULL;
char **arg_properties = NULL; char **arg_properties = NULL;
bool arg_all = false; bool arg_all = false;
enum dependency arg_dependency = DEPENDENCY_FORWARD; enum dependency arg_dependency = DEPENDENCY_FORWARD;
const char *_arg_job_mode = NULL; const char *arg_job_mode = "replace";
UnitFileScope arg_scope = UNIT_FILE_SYSTEM; UnitFileScope arg_scope = UNIT_FILE_SYSTEM;
bool arg_wait = false; bool arg_wait = false;
bool arg_no_block = false; bool arg_no_block = false;
@ -112,16 +112,11 @@ bool arg_read_only = false;
bool arg_mkdir = false; bool arg_mkdir = false;
bool arg_marked = false; bool arg_marked = false;
STATIC_DESTRUCTOR_REGISTER(arg_wall, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
STATIC_DESTRUCTOR_REGISTER(arg_types, strv_freep); STATIC_DESTRUCTOR_REGISTER(arg_types, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_states, strv_freep); STATIC_DESTRUCTOR_REGISTER(arg_states, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_properties, strv_freep); STATIC_DESTRUCTOR_REGISTER(arg_properties, strv_freep);
STATIC_DESTRUCTOR_REGISTER(_arg_job_mode, unsetp);
STATIC_DESTRUCTOR_REGISTER(arg_wall, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_kill_who, unsetp);
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
STATIC_DESTRUCTOR_REGISTER(arg_reboot_argument, unsetp);
STATIC_DESTRUCTOR_REGISTER(arg_host, unsetp);
STATIC_DESTRUCTOR_REGISTER(arg_boot_loader_entry, unsetp);
STATIC_DESTRUCTOR_REGISTER(arg_clean_what, strv_freep); STATIC_DESTRUCTOR_REGISTER(arg_clean_what, strv_freep);
static int systemctl_help(void) { static int systemctl_help(void) {
@ -603,19 +598,19 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
break; break;
case ARG_JOB_MODE: case ARG_JOB_MODE:
_arg_job_mode = optarg; arg_job_mode = optarg;
break; break;
case ARG_FAIL: case ARG_FAIL:
_arg_job_mode = "fail"; arg_job_mode = "fail";
break; break;
case ARG_IRREVERSIBLE: case ARG_IRREVERSIBLE:
_arg_job_mode = "replace-irreversibly"; arg_job_mode = "replace-irreversibly";
break; break;
case ARG_IGNORE_DEPENDENCIES: case ARG_IGNORE_DEPENDENCIES:
_arg_job_mode = "ignore-dependencies"; arg_job_mode = "ignore-dependencies";
break; break;
case ARG_USER: case ARG_USER:

View File

@ -49,7 +49,7 @@ extern char **arg_states;
extern char **arg_properties; extern char **arg_properties;
extern bool arg_all; extern bool arg_all;
extern enum dependency arg_dependency; extern enum dependency arg_dependency;
extern const char *_arg_job_mode; extern const char *arg_job_mode;
extern UnitFileScope arg_scope; extern UnitFileScope arg_scope;
extern bool arg_wait; extern bool arg_wait;
extern bool arg_no_block; extern bool arg_no_block;
@ -96,8 +96,4 @@ extern bool arg_read_only;
extern bool arg_mkdir; extern bool arg_mkdir;
extern bool arg_marked; extern bool arg_marked;
static inline const char* arg_job_mode(void) {
return _arg_job_mode ?: "replace";
}
int systemctl_dispatch_parse_argv(int argc, char *argv[]); int systemctl_dispatch_parse_argv(int argc, char *argv[]);

View File

@ -143,9 +143,10 @@ static int agent_ask_password_tty(
char ***ret) { char ***ret) {
int tty_fd = -1, r; int tty_fd = -1, r;
const char *con = arg_device ?: "/dev/console";
if (arg_console) { if (arg_console) {
const char *con = arg_device ?: "/dev/console";
tty_fd = acquire_terminal(con, ACQUIRE_TERMINAL_WAIT, USEC_INFINITY); tty_fd = acquire_terminal(con, ACQUIRE_TERMINAL_WAIT, USEC_INFINITY);
if (tty_fd < 0) if (tty_fd < 0)
return log_error_errno(tty_fd, "Failed to acquire %s: %m", con); return log_error_errno(tty_fd, "Failed to acquire %s: %m", con);
@ -154,7 +155,6 @@ static int agent_ask_password_tty(
if (r < 0) if (r < 0)
log_warning_errno(r, "Failed to reset terminal, ignoring: %m"); log_warning_errno(r, "Failed to reset terminal, ignoring: %m");
log_info("Starting password query on %s.", con);
} }
r = ask_password_tty(tty_fd, message, NULL, until, flags, flag_file, ret); r = ask_password_tty(tty_fd, message, NULL, until, flags, flag_file, ret);
@ -162,9 +162,6 @@ static int agent_ask_password_tty(
if (arg_console) { if (arg_console) {
tty_fd = safe_close(tty_fd); tty_fd = safe_close(tty_fd);
release_terminal(); release_terminal();
if (r >= 0)
log_info("Password query on %s finished successfully.", con);
} }
return r; return r;
@ -414,20 +411,17 @@ static int help(void) {
return log_oom(); return log_oom();
printf("%s [OPTIONS...]\n\n" printf("%s [OPTIONS...]\n\n"
"%sProcess system password requests.%s\n\n" "Process system password requests.\n\n"
" -h --help Show this help\n" " -h --help Show this help\n"
" --version Show package version\n" " --version Show package version\n"
" --list Show pending password requests\n" " --list Show pending password requests\n"
" --query Process pending password requests\n" " --query Process pending password requests\n"
" --watch Continuously process password requests\n" " --watch Continuously process password requests\n"
" --wall Continuously forward password requests to wall\n" " --wall Continuously forward password requests to wall\n"
" --plymouth Ask question with Plymouth instead of on TTY\n" " --plymouth Ask question with Plymouth instead of on TTY\n"
" --console[=DEVICE] Ask question on /dev/console (or DEVICE if specified)\n" " --console Ask question on /dev/console instead of current TTY\n"
" instead of the current TTY\n"
"\nSee the %s for details.\n", "\nSee the %s for details.\n",
program_invocation_short_name, program_invocation_short_name,
ansi_highlight(),
ansi_normal(),
link); link);
return 0; return 0;

View File

@ -109,7 +109,7 @@ static int exec_list(
/* If the user asked for it, write event UUID to stdout */ /* If the user asked for it, write event UUID to stdout */
if (arg_uuid) if (arg_uuid)
printf(SD_ID128_UUID_FORMAT_STR "\n", SD_ID128_FORMAT_VAL(id)); printf(SD_ID128_FORMAT_STR "\n", SD_ID128_FORMAT_VAL(id));
if (settle_hashmap) { if (settle_hashmap) {
_cleanup_free_ sd_id128_t *mid = NULL; _cleanup_free_ sd_id128_t *mid = NULL;
@ -175,7 +175,7 @@ static int device_monitor_handler(sd_device_monitor *m, sd_device *dev, void *us
printf("settle %s\n", syspath); printf("settle %s\n", syspath);
if (arg_uuid) if (arg_uuid)
printf("settle " SD_ID128_UUID_FORMAT_STR "\n", SD_ID128_FORMAT_VAL(*settle_id)); printf("settle " SD_ID128_FORMAT_STR "\n", SD_ID128_FORMAT_VAL(*settle_id));
free(hashmap_remove(settle_hashmap, syspath)); free(hashmap_remove(settle_hashmap, syspath));
free(k); free(k);