Zbigniew Jędrzejewski-Szmek 43ff24
From 34156047f4e34b0d3c621b0641ec3444f2b37f8d Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 43ff24
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek 43ff24
Date: Sun, 6 Jul 2014 18:35:46 -0400
Zbigniew Jędrzejewski-Szmek 43ff24
Subject: [PATCH] coredumpctl: show a useful error on permission problems
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
(cherry picked from commit 31cda3d1759dee3e48c8ed4a949d99f041bdca1c)
Zbigniew Jędrzejewski-Szmek 43ff24
---
Zbigniew Jędrzejewski-Szmek 43ff24
 src/journal/coredumpctl.c | 5 +++--
Zbigniew Jędrzejewski-Szmek 43ff24
 1 file changed, 3 insertions(+), 2 deletions(-)
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c
Zbigniew Jędrzejewski-Szmek 43ff24
index 2158d73771..ecde54744d 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/src/journal/coredumpctl.c
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/src/journal/coredumpctl.c
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -595,7 +595,8 @@ static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) {
Zbigniew Jędrzejewski-Szmek 43ff24
                 retrieve(data, len, "COREDUMP_FILENAME", &filename);
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
         if (filename && access(filename, R_OK) < 0) {
Zbigniew Jędrzejewski-Szmek 43ff24
-                log_debug("File %s is not readable: %m", filename);
Zbigniew Jędrzejewski-Szmek 43ff24
+                log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING,
Zbigniew Jędrzejewski-Szmek 43ff24
+                         "File %s is not readable: %m", filename);
Zbigniew Jędrzejewski-Szmek 43ff24
                 free(filename);
Zbigniew Jędrzejewski-Szmek 43ff24
                 filename = NULL;
Zbigniew Jędrzejewski-Szmek 43ff24
         }
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -668,7 +669,7 @@ static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) {
Zbigniew Jędrzejewski-Szmek 43ff24
 #endif
Zbigniew Jędrzejewski-Szmek 43ff24
                 } else {
Zbigniew Jędrzejewski-Szmek 43ff24
                         if (r == -ENOENT)
Zbigniew Jędrzejewski-Szmek 43ff24
-                                log_error("Coredump neither in journal file nor stored externally on disk.");
Zbigniew Jędrzejewski-Szmek 43ff24
+                                log_error("Cannot retrieve coredump from journal nor disk.");
Zbigniew Jędrzejewski-Szmek 43ff24
                         else
Zbigniew Jędrzejewski-Szmek 43ff24
                                 log_error("Failed to retrieve COREDUMP field: %s", strerror(-r));
Zbigniew Jędrzejewski-Szmek 43ff24
                         goto error;