[systemd-devel] [PATCH 2/2] coredump: Handle programs with spaces in COMM

Oleg Nesterov oleg at redhat.com
Thu May 9 11:10:04 PDT 2013


Sorry for delay, vacation.

On 05/03, Lennart Poettering wrote:
>
> On Wed, 01.05.13 18:42, Oleg Nesterov (oleg at redhat.com) wrote:
>
> > I wouldn't say this is bug... at least this is expected.
> >
> > Sure, it is possible to rewrite format_corename/argv_split interaction,
> > but this is a bit painful and I am not sure it worth the trouble.
>
> It sounds really wrong to first merge this into one string and then
> split it up again. It sounds much more sensible to instead just pass the
> string array around all the time. What's the reason to make this one
> string first?

!ispipe case.

OK. I have to admit that this doesn't look nice even if this is
"historical" behaviour. The fix should be simple I guess,
format_corename() should construct argv by hand, argv_split()
should be avoided.

But:

	- We do not want to complicate this (ugly) code more than
	  necessary. In particular we shouldn't forget about ispipe.

	  Oh, and realloc, we can't count argc in advance or we need
	  more changes to protect against proc_dostring_coredump().

	- We should cleanup format_corename() first. If nothing else,
	  cn_escape().

	- Hmm. it seems that we also need to fix it, format_corename()
	  can leak ->corename afaics.

In short: I'll try to do this when I have time.

Oleg.



More information about the systemd-devel mailing list