diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-12-12 02:32:33 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-12-12 13:35:32 +0100 |
commit | ae6c3cc009a21df4b51851fb8fe3fde0b7d6d8f0 (patch) | |
tree | 98eda04d3ff6c24177217efbe9613ed6ed2dc51b /src/journal/coredump.c | |
parent | 8d1c8bd746a6a14dec7470f93f843bcb0699f4b8 (diff) |
util: when using basename() for creating temporary files, verify the resulting name is actually valid
Also, rename filename_is_safe() to filename_is_valid(), since it
actually does a full validation for what the kernel will accept as file
name, it's not just a heuristic.
Diffstat (limited to 'src/journal/coredump.c')
-rw-r--r-- | src/journal/coredump.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/journal/coredump.c b/src/journal/coredump.c index be45a684e5..8678ec6a59 100644 --- a/src/journal/coredump.c +++ b/src/journal/coredump.c @@ -306,9 +306,9 @@ static int save_external_coredump( if (r < 0) return log_error_errno(r, "Failed to determine coredump file name: %m"); - tmp = tempfn_random(fn); - if (!tmp) - return log_oom(); + r = tempfn_random(fn, &tmp); + if (r < 0) + return log_error_errno(r, "Failed to determine temporary file name: %m"); mkdir_p_label("/var/lib/systemd/coredump", 0755); @@ -352,9 +352,9 @@ static int save_external_coredump( goto uncompressed; } - tmp_compressed = tempfn_random(fn_compressed); - if (!tmp_compressed) { - log_oom(); + r = tempfn_random(fn_compressed, &tmp_compressed); + if (r < 0) { + log_error_errno(r, "Failed to determine temporary file name for %s: %m", fn_compressed); goto uncompressed; } |