tools: only create log file when requested

We used to initialize a log unconditionally before. This has led to scenarios where users where left with container directories and an empty log file even though they didn't request a log be created at all. Switch all tools to only create a log file when the user explicitly requests this. Closes #1779. Closes #2032. Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 12ad9ba7
...@@ -270,18 +270,18 @@ int main(int argc, char *argv[]) ...@@ -270,18 +270,18 @@ int main(int argc, char *argv[])
if (r) if (r)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
r = lxc_log_init(&log); if (lxc_log_init(&log))
if (r) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
if (geteuid()) { if (geteuid()) {
if (access(my_args.lxcpath[0], O_RDONLY) < 0) { if (access(my_args.lxcpath[0], O_RDONLY) < 0) {
......
...@@ -347,15 +347,18 @@ int main(int argc, char *argv[]) ...@@ -347,15 +347,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
log.name = my_args.name; /* Only create log if explicitly instructed */
log.file = my_args.log_file; if (my_args.log_file || my_args.log_priority) {
log.level = my_args.log_priority; log.name = my_args.name;
log.prefix = my_args.progname; log.file = my_args.log_file;
log.quiet = my_args.quiet; log.level = my_args.log_priority;
log.lxcpath = my_args.lxcpath[0]; log.prefix = my_args.progname;
log.quiet = my_args.quiet;
if (lxc_log_init(&log)) log.lxcpath = my_args.lxcpath[0];
exit(EXIT_FAILURE);
if (lxc_log_init(&log))
exit(EXIT_FAILURE);
}
count = list_defined_containers(my_args.lxcpath[0], NULL, &containers); count = list_defined_containers(my_args.lxcpath[0], NULL, &containers);
......
...@@ -73,18 +73,18 @@ int main(int argc, char *argv[]) ...@@ -73,18 +73,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
state_object = my_args.argv[0]; state_object = my_args.argv[0];
......
...@@ -257,18 +257,18 @@ int main(int argc, char *argv[]) ...@@ -257,18 +257,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -97,19 +97,18 @@ int main(int argc, char *argv[]) ...@@ -97,19 +97,18 @@ int main(int argc, char *argv[])
if (ret) if (ret)
return EXIT_FAILURE; return EXIT_FAILURE;
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
ret = lxc_log_init(&log); exit(EXIT_FAILURE);
if (ret) }
return EXIT_FAILURE;
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -163,18 +163,18 @@ int main(int argc, char *argv[]) ...@@ -163,18 +163,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(ret); exit(ret);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(ret);
exit(ret); }
if (geteuid()) { if (geteuid()) {
if (access(my_args.lxcpath[0], O_RDONLY) < 0) { if (access(my_args.lxcpath[0], O_RDONLY) < 0) {
......
...@@ -227,18 +227,18 @@ int main(int argc, char *argv[]) ...@@ -227,18 +227,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
if (!my_args.template) { if (!my_args.template) {
fprintf(stderr, "A template must be specified.\n"); fprintf(stderr, "A template must be specified.\n");
......
...@@ -70,18 +70,18 @@ int main(int argc, char *argv[]) ...@@ -70,18 +70,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
if (my_args.quiet) if (my_args.quiet)
quiet = true; quiet = true;
......
...@@ -110,18 +110,18 @@ int main(int argc, char *argv[]) ...@@ -110,18 +110,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
goto err; goto err;
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
goto err; }
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -151,15 +151,18 @@ int main(int argc, char *argv[]) ...@@ -151,15 +151,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(err); exit(err);
log.name = my_args.name; /* Only create log if explicitly instructed */
log.file = my_args.log_file; if (my_args.log_file || my_args.log_priority) {
log.level = my_args.log_priority; log.name = my_args.name;
log.prefix = my_args.progname; log.file = my_args.log_file;
log.quiet = my_args.quiet; log.level = my_args.log_priority;
log.lxcpath = my_args.lxcpath[0]; log.prefix = my_args.progname;
log.quiet = my_args.quiet;
if (lxc_log_init(&log)) log.lxcpath = my_args.lxcpath[0];
exit(err);
if (lxc_log_init(&log))
exit(err);
}
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -60,18 +60,18 @@ int main(int argc, char *argv[]) ...@@ -60,18 +60,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -396,18 +396,18 @@ int main(int argc, char *argv[]) ...@@ -396,18 +396,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(ret); exit(ret);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(ret);
exit(ret); }
if (print_info(my_args.name, my_args.lxcpath[0]) == 0) if (print_info(my_args.name, my_args.lxcpath[0]) == 0)
ret = EXIT_SUCCESS; ret = EXIT_SUCCESS;
......
...@@ -211,22 +211,18 @@ int main(int argc, char *argv[]) ...@@ -211,22 +211,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = NULL;
/* log.file = my_args.log_file;
* We set the first argument that usually takes my_args.name to NULL so log.level = my_args.log_priority;
* that the log is only used when the user specifies a file. log.prefix = my_args.progname;
*/ log.quiet = my_args.quiet;
log.name = NULL; log.lxcpath = my_args.lxcpath[0];
log.file = my_args.log_file;
log.level = my_args.log_priority; if (lxc_log_init(&log))
log.prefix = my_args.progname; exit(EXIT_FAILURE);
log.quiet = my_args.quiet; }
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
exit(EXIT_FAILURE);
struct lengths max_len = { struct lengths max_len = {
/* default header length */ /* default header length */
......
...@@ -503,18 +503,18 @@ int main(int argc, char *argv[]) ...@@ -503,18 +503,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(rc_main); exit(rc_main);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(rc_main);
exit(rc_main); }
if (quit_monitord) { if (quit_monitord) {
int ret = EXIT_SUCCESS; int ret = EXIT_SUCCESS;
......
...@@ -84,18 +84,18 @@ int main(int argc, char *argv[]) ...@@ -84,18 +84,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
if (geteuid()) { if (geteuid()) {
if (access(my_args.lxcpath[0], O_RDONLY) < 0) { if (access(my_args.lxcpath[0], O_RDONLY) < 0) {
......
...@@ -189,15 +189,18 @@ int main(int argc, char *argv[]) ...@@ -189,15 +189,18 @@ int main(int argc, char *argv[])
else else
args = my_args.argv; args = my_args.argv;
log.name = my_args.name; /* Only create log if explicitly instructed */
log.file = my_args.log_file; if (my_args.log_file || my_args.log_priority) {
log.level = my_args.log_priority; log.name = my_args.name;
log.prefix = my_args.progname; log.file = my_args.log_file;
log.quiet = my_args.quiet; log.level = my_args.log_priority;
log.lxcpath = my_args.lxcpath[0]; log.prefix = my_args.progname;
log.quiet = my_args.quiet;
if (lxc_log_init(&log)) log.lxcpath = my_args.lxcpath[0];
exit(err);
if (lxc_log_init(&log))
exit(err);
}
lxcpath = my_args.lxcpath[0]; lxcpath = my_args.lxcpath[0];
if (access(lxcpath, O_RDONLY) < 0) { if (access(lxcpath, O_RDONLY) < 0) {
......
...@@ -104,15 +104,18 @@ int main(int argc, char *argv[]) ...@@ -104,15 +104,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(ret); exit(ret);
log.name = my_args.name; /* Only create log if explicitly instructed */
log.file = my_args.log_file; if (my_args.log_file || my_args.log_priority) {
log.level = my_args.log_priority; log.name = my_args.name;
log.prefix = my_args.progname; log.file = my_args.log_file;
log.quiet = my_args.quiet; log.level = my_args.log_priority;
log.lxcpath = my_args.lxcpath[0]; log.prefix = my_args.progname;
log.quiet = my_args.quiet;
if (lxc_log_init(&log)) log.lxcpath = my_args.lxcpath[0];
exit(ret);
if (lxc_log_init(&log))
exit(ret);
}
/* Set default timeout */ /* Set default timeout */
if (my_args.timeout == -2) { if (my_args.timeout == -2) {
......
...@@ -60,19 +60,18 @@ int main(int argc, char *argv[]) ...@@ -60,19 +60,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
exit(EXIT_FAILURE);
if (lxc_log_init(&log)) }
exit(EXIT_FAILURE);
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) { if (!c) {
......
...@@ -87,18 +87,18 @@ int main(int argc, char *argv[]) ...@@ -87,18 +87,18 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (!my_args.log_file) /* Only create log if explicitly instructed */
my_args.log_file = "none"; if (my_args.log_file || my_args.log_priority) {
log.name = my_args.name;
log.name = my_args.name; log.file = my_args.log_file;
log.file = my_args.log_file; log.level = my_args.log_priority;
log.level = my_args.log_priority; log.prefix = my_args.progname;
log.prefix = my_args.progname; log.quiet = my_args.quiet;
log.quiet = my_args.quiet; log.lxcpath = my_args.lxcpath[0];
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log))
if (lxc_log_init(&log)) exit(EXIT_FAILURE);
exit(EXIT_FAILURE); }
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) if (!c)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment