X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fcoredumpctl.c;h=bf943bc032528ca717630c5c293570f5d736409d;hb=d636d376796ec61c1c14fa619c80d4ac62e08a19;hp=bcfee46da1d989b273f77ec14a911d50c40758de;hpb=eb9da376d76b48585b3b63b4f91903b54f7abd36;p=elogind.git diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c index bcfee46da..bf943bc03 100644 --- a/src/journal/coredumpctl.c +++ b/src/journal/coredumpctl.c @@ -126,10 +126,11 @@ static int add_match(Set *set, const char *match) { goto fail; log_debug("Adding pattern: %s", pattern); - r = set_consume(set, pattern); + r = set_put(set, pattern); if (r < 0) { log_error("Failed to add pattern '%s': %s", pattern, strerror(-r)); + free(pattern); goto fail; } @@ -214,7 +215,7 @@ static int parse_argv(int argc, char *argv[], Set *matches) { if (optind < argc) { const char *cmd = argv[optind++]; - if(streq(cmd, "list")) + if (streq(cmd, "list")) arg_action = ACTION_LIST; else if (streq(cmd, "dump")) arg_action = ACTION_DUMP; @@ -416,7 +417,7 @@ static int dump_core(sd_journal* j) { r = sd_journal_previous(j); if (r >= 0) - log_warning("More than one entry matches, ignoring rest.\n"); + log_warning("More than one entry matches, ignoring rest."); return 0; } @@ -471,7 +472,7 @@ static int run_gdb(sd_journal *j) { data = (const uint8_t*) data + 9; len -= 9; - fd = mkostemp(path, O_WRONLY); + fd = mkostemp_safe(path, O_WRONLY|O_CLOEXEC); if (fd < 0) { log_error("Failed to create temporary file: %m"); return -errno; @@ -479,7 +480,7 @@ static int run_gdb(sd_journal *j) { sz = write(fd, data, len); if (sz < 0) { - log_error("Failed to write temporary file: %s", strerror(errno)); + log_error("Failed to write temporary file: %m"); r = -errno; goto finish; } @@ -489,8 +490,7 @@ static int run_gdb(sd_journal *j) { goto finish; } - close_nointr_nofail(fd); - fd = -1; + fd = safe_close(fd); pid = fork(); if (pid < 0) {