X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fcoredumpctl.c;h=d1450c09a28df907f772a9866fd58a1ac7dcc6cd;hb=d12b8cad40aa78fc948362340204c3fde778082d;hp=2158d7377194eedb6cd961eda53a88d25538dc91;hpb=d0c8806d4abf863baae1e3f796db674d57a67686;p=elogind.git diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c index 2158d7377..d1450c09a 100644 --- a/src/journal/coredumpctl.c +++ b/src/journal/coredumpctl.c @@ -595,12 +595,13 @@ static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) { retrieve(data, len, "COREDUMP_FILENAME", &filename); if (filename && access(filename, R_OK) < 0) { - log_debug("File %s is not readable: %m", filename); + log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, + "File %s is not readable: %m", filename); free(filename); filename = NULL; } - if (filename && !endswith(filename, ".xz")) { + if (filename && !endswith(filename, ".xz") && !endswith(filename, ".lz4")) { if (path) { *path = filename; filename = NULL; @@ -646,7 +647,7 @@ static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) { goto error; } } else if (filename) { -#ifdef HAVE_XZ +#if defined(HAVE_XZ) || defined(HAVE_LZ4) _cleanup_close_ int fdf; fdf = open(filename, O_RDONLY | O_CLOEXEC); @@ -656,19 +657,19 @@ static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) { goto error; } - r = decompress_stream(fdf, fd, -1); + r = decompress_stream(filename, fdf, fd, -1); if (r < 0) { log_error("Failed to decompress %s: %s", filename, strerror(-r)); goto error; } #else - log_error("Cannot decompress file. Compiled without XZ support."); + log_error("Cannot decompress file. Compiled without compression support."); r = -ENOTSUP; goto error; #endif } else { if (r == -ENOENT) - log_error("Coredump neither in journal file nor stored externally on disk."); + log_error("Cannot retrieve coredump from journal nor disk."); else log_error("Failed to retrieve COREDUMP field: %s", strerror(-r)); goto error;