Commit 4ad9921a authored by John Ogness's avatar John Ogness Committed by Petr Mladek
Browse files

printk: finalize records with trailing newlines

Any record with a trailing newline (LOG_NEWLINE flag) cannot
be continued because the newline has been stripped and will
not be visible if the message is appended. This was already
handled correctly when committing in log_output() but was
not handled correctly when committing in log_store().

Fixes: f5f022e5 ("printk: reimplement log_cont using record extension")
Link: https://lore.kernel.org/r/20201126114836.14750-1-john.ogness@linutronix.de


Reported-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarJohn Ogness <john.ogness@linutronix.de>
Tested-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
parent 8119c433
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -528,8 +528,8 @@ static int log_store(u32 caller_id, int facility, int level,
	if (dev_info)
		memcpy(&r.info->dev_info, dev_info, sizeof(r.info->dev_info));

	/* insert message */
	if ((flags & LOG_CONT) || !(flags & LOG_NEWLINE))
	/* A message without a trailing newline can be continued. */
	if (!(flags & LOG_NEWLINE))
		prb_commit(&e);
	else
		prb_final_commit(&e);