From 5b21af2bf21f57e9b7ae30217ed01545029256e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 5 Mar 2017 10:35:44 -0500 Subject: [PATCH] coredump: fix handling of premature-eof data for --backtrace We'd fail with an assert in journal_importer_process_data(), because that function requires the caller to handle EOF themselves. (cherry picked from commit d74dc4f2d00644c04ad9dc900ef43050fcadaa8b) --- src/basic/journal-importer.c | 2 +- src/coredump/coredump.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/basic/journal-importer.c b/src/basic/journal-importer.c index 4c13e46..d25fd35 100644 --- a/src/basic/journal-importer.c +++ b/src/basic/journal-importer.c @@ -314,7 +314,7 @@ int journal_importer_process_data(JournalImporter *imp) { return r; if (r == 0) { imp->state = IMPORTER_STATE_EOF; - return r; + return 0; } assert(n > 0); assert(line[n-1] == '\n'); diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c index 4c4f36a..5828e94 100644 --- a/src/coredump/coredump.c +++ b/src/coredump/coredump.c @@ -1326,7 +1326,8 @@ static int process_backtrace(int argc, char *argv[]) { log_error_errno(r, "Failed to parse journal entry on stdin: %m"); goto finish; } - if (r == 1) + if (r == 1 || /* complete entry */ + journal_importer_eof(&importer)) /* end of data */ break; } -- 2.9.3