From 93240d3aba4611dd966c5b9f7368d20612211486 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 23 Jun 2014 16:28:05 +0200 Subject: coredump: never write more than the configured processing size limit to disk --- src/journal/coredump.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/journal/coredump.c') diff --git a/src/journal/coredump.c b/src/journal/coredump.c index 764c5e72ab..1b35eb1698 100644 --- a/src/journal/coredump.c +++ b/src/journal/coredump.c @@ -240,8 +240,14 @@ static int save_external_coredump(char **argv, uid_t uid, char **ret_filename, i return -errno; } - r = copy_bytes(STDIN_FILENO, fd); - if (r < 0) { + r = copy_bytes(STDIN_FILENO, fd, arg_process_size_max); + if (r == -E2BIG) { + log_error("Coredump of %s (%s) is larger than configured processing limit, refusing.", argv[ARG_PID], argv[ARG_COMM]); + goto fail; + } else if (IN_SET(r, -EDQUOT, -ENOSPC)) { + log_error("Not enough disk space for coredump of %s (%s), refusing.", argv[ARG_PID], argv[ARG_COMM]); + goto fail; + } else if (r < 0) { log_error("Failed to dump coredump to file: %s", strerror(-r)); goto fail; } -- cgit v1.2.3-54-g00ecf