chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4b8cbe9
)
coredump: quit early if we cannot store ay coredump to disk
author
Lennart Poettering
<lennart@poettering.net>
Mon, 23 Jun 2014 13:53:03 +0000
(15:53 +0200)
committer
Lennart Poettering
<lennart@poettering.net>
Mon, 23 Jun 2014 13:53:03 +0000
(15:53 +0200)
src/journal/coredump.c
patch
|
blob
|
history
diff --git
a/src/journal/coredump.c
b/src/journal/coredump.c
index 287e0ed7fdd065bd30053ae196ea1084858d3f2c..764c5e72ab3c9596231981c1e962eb51334d8719 100644
(file)
--- a/
src/journal/coredump.c
+++ b/
src/journal/coredump.c
@@
-39,6
+39,7
@@
#include "conf-parser.h"
#include "copy.h"
#include "stacktrace.h"
#include "conf-parser.h"
#include "copy.h"
#include "stacktrace.h"
+#include "path-util.h"
#ifdef HAVE_ACL
#include <sys/acl.h>
#ifdef HAVE_ACL
#include <sys/acl.h>
@@
-375,6
+376,13
@@
int main(int argc, char* argv[]) {
parse_config();
log_debug("Selected storage '%s'.", coredump_storage_to_string(arg_storage));
parse_config();
log_debug("Selected storage '%s'.", coredump_storage_to_string(arg_storage));
+ /* Exit early if we cannot write the coredump to disk anyway */
+ if (path_is_read_only_fs("/var/lib") != 0) {
+ log_error("Coredump directory not mounted or not writable, skipping coredump.");
+ r = -EROFS;
+ goto finish;
+ }
+
r = parse_uid(argv[ARG_UID], &uid);
if (r < 0) {
log_error("Failed to parse UID.");
r = parse_uid(argv[ARG_UID], &uid);
if (r < 0) {
log_error("Failed to parse UID.");