coredump: fix non-literal string used in printf

This was exposed by the previous commit. This could be potentially
unpleasant, but we are saved by the fact that this code path was only
taken for journald crashes, where we control COMM and know that it doesn't
contain any special characters. Use log_dispatch which does not do any
format processing to push the message out.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2017-04-20 14:28:19 -04:00
parent 93484b4790
commit ae2173d66b

View file

@ -800,12 +800,11 @@ log:
if (journald_crash) {
/* We cannot log to the journal, so just print the MESSAGE.
* The target was set previously to something safe. */
log_struct(LOG_ERR, core_message, NULL);
log_dispatch(LOG_ERR, 0, core_message);
return 0;
}
if (core_message)
IOVEC_SET_STRING(iovec[n_iovec++], core_message);
IOVEC_SET_STRING(iovec[n_iovec++], core_message);
if (truncated)
IOVEC_SET_STRING(iovec[n_iovec++], "COREDUMP_TRUNCATED=1");