chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemctl: properly initialize and free sd_bus_error in "systemctl cat"
[elogind.git]
/
src
/
systemctl
/
systemctl.c
diff --git
a/src/systemctl/systemctl.c
b/src/systemctl/systemctl.c
index 1ab27336d7097fc05c12cd8ef367f3871cd2a142..3e6a6883f6ec2509b5532a7947f83d53bd8f6008 100644
(file)
--- a/
src/systemctl/systemctl.c
+++ b/
src/systemctl/systemctl.c
@@
-3743,20
+3743,19
@@
static int show_all(
}
static int cat(sd_bus *bus, char **args) {
}
static int cat(sd_bus *bus, char **args) {
+ _cleanup_free_ char *unit = NULL, *n = NULL;
int r = 0;
char **name;
int r = 0;
char **name;
- _cleanup_free_ char *unit = NULL, *n = NULL;
-
assert(bus);
assert(args);
pager_open_if_enabled();
STRV_FOREACH(name, args+1) {
assert(bus);
assert(args);
pager_open_if_enabled();
STRV_FOREACH(name, args+1) {
- _cleanup_
free_ char *fragment_path =
NULL;
+ _cleanup_
bus_error_free_ sd_bus_error error = SD_BUS_ERROR_
NULL;
_cleanup_strv_free_ char **dropin_paths = NULL;
_cleanup_strv_free_ char **dropin_paths = NULL;
-
sd_bus_error error
;
+
_cleanup_free_ char *fragment_path = NULL
;
char **path;
n = unit_name_mangle(*name);
char **path;
n = unit_name_mangle(*name);
@@
-3800,6
+3799,7
@@
static int cat(sd_bus *bus, char **args) {
if (!isempty(fragment_path)) {
fprintf(stdout, "# %s\n", fragment_path);
fflush(stdout);
if (!isempty(fragment_path)) {
fprintf(stdout, "# %s\n", fragment_path);
fflush(stdout);
+
r = sendfile_full(STDOUT_FILENO, fragment_path);
if (r < 0) {
log_warning("Failed to cat %s: %s", fragment_path, strerror(-r));
r = sendfile_full(STDOUT_FILENO, fragment_path);
if (r < 0) {
log_warning("Failed to cat %s: %s", fragment_path, strerror(-r));
@@
-3812,6
+3812,7
@@
static int cat(sd_bus *bus, char **args) {
isempty(fragment_path) && path == dropin_paths ? "" : "\n",
*path);
fflush(stdout);
isempty(fragment_path) && path == dropin_paths ? "" : "\n",
*path);
fflush(stdout);
+
r = sendfile_full(STDOUT_FILENO, *path);
if (r < 0) {
log_warning("Failed to cat %s: %s", *path, strerror(-r));
r = sendfile_full(STDOUT_FILENO, *path);
if (r < 0) {
log_warning("Failed to cat %s: %s", *path, strerror(-r));
@@
-4766,7
+4767,7
@@
static int unit_is_enabled(sd_bus *bus, char **args) {
"GetUnitFileState",
&error,
&reply,
"GetUnitFileState",
&error,
&reply,
- "s", name);
+ "s",
*
name);
if (r < 0) {
log_error("Failed to get unit file state for %s: %s", *name, bus_error_message(&error, r));
return r;
if (r < 0) {
log_error("Failed to get unit file state for %s: %s", *name, bus_error_message(&error, r));
return r;
@@
-4834,7
+4835,8
@@
static int systemctl_help(void) {
" --root=PATH Enable unit files in the specified root directory\n"
" -n --lines=INTEGER Number of journal entries to show\n"
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
" --root=PATH Enable unit files in the specified root directory\n"
" -n --lines=INTEGER Number of journal entries to show\n"
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
- " verbose, export, json, json-pretty, json-sse, cat)\n\n"
+ " verbose, export, json, json-pretty, json-sse, cat)\n"
+ " --plain Print unit dependencies as a list instead of a tree\n\n"
"Unit Commands:\n"
" list-units [PATTERN...] List loaded units\n"
" list-sockets [PATTERN...] List loaded sockets ordered by address\n"
"Unit Commands:\n"
" list-units [PATTERN...] List loaded units\n"
" list-sockets [PATTERN...] List loaded sockets ordered by address\n"