Re: [PATCH] Fix a panic when core_pattern is set to "| prog..."

From: Dietmar Hahn
Date: Tue Dec 17 2019 - 07:56:40 EST


Am Montag, 16. Dezember 2019, 19:37:07 CET schrieb Andi Kleen:
> Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxx> writes:
>
> > Hi,
> >
> > if the /proc/sys/kernel/core_pattern is set with a space between '|' and the
> > program and later a core file should be written the kernel panics.
> > This happens because in format_corename() the first part of cn.corename
> > is set to '\0' and later call_usermodehelper_exec() exits because of an
> > empty command path but with return 0. But no pipe is created and thus
> > cprm.file == NULL.
> > This leads in file_start_write() to the panic because of dereferencing
> > file_inode(file)->i_mode.
>
> It would seem better to just skip the spaces and DTRT?

This would be the normal case but the mistake happened accidently. And I was
really surprised to see the system panic after the segfault of a user program.
And it took a little bit time to find the cause ...

Dietmar.

> Of course doing the error check properly is a good idea anyways.
>
> -Andi