lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 3 Jan 2023 15:04:55 +0100
From:   Petr Mladek <pmladek@...e.com>
To:     John Ogness <john.ogness@...utronix.de>
Cc:     Sergey Senozhatsky <senozhatsky@...omium.org>,
        Steven Rostedt <rostedt@...dmis.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH printk v3 5/6] printk: introduce
 console_get_next_message() and console_message

On Thu 2022-12-22 16:47:39, John Ogness wrote:
> On 2022-12-21, John Ogness <john.ogness@...utronix.de> wrote:
> > +static bool console_emit_next_record(struct console *con, bool *handover, int cookie)
> > +{
> > +	bool is_extended = console_srcu_read_flags(con) & CON_EXTENDED;
> > +	static char dropped_text[DROPPED_TEXT_MAX];
> > +	static struct console_buffers cbufs;
> > +	static struct console_message cmsg = {
> > +		.cbufs = &cbufs,
> > +	};
> 
> @cmsg should not be static. The whole point of the console_message
> wrapper struct is so that it can sit on the stack.

Well, it might actually be better to keep it static for now.
It always points to static struct console_buffers cbufs anyway.

It would make sense to have it on stack only when it uses
different buffers.

Which brings the question. Does it makes sense to use
the same buffers by different struct console_message?
Will it be safe in any situation?

I did not want to complicate it yesterday. I think that
I have already proposed this. But this brings back
the question whether it makes sense to have two structures
at all.

I still think that it would be easier and even more safe
to put everything into struct console_message.

I mean to have:

struct console_message {
	char			buf[CONSOLE_EXT_LOG_MAX];
	char			scratch_buf[LOG_LINE_MAX];
	unsigned int		len;
	u64			seq;
	unsigned long		dropped;
};

Best Regards,
Petr

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ