Re: [systemd-devel] [PATCH 2/2] coredump: Handle programs withspaces in COMM

From: Oleg Nesterov
Date: Thu May 09 2013 - 14:13:27 EST


Sorry for delay, vacation.

On 05/03, Lennart Poettering wrote:
>
> On Wed, 01.05.13 18:42, Oleg Nesterov (oleg@xxxxxxxxxx) 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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/