core.5: Explain the new situation with argument splitting

Things changed in Linux v5.3-rc3 commit 315c69261dd3 from
splitting after template expansion to splitting beforehand.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Paul Wise 2019-08-07 09:45:25 +08:00 committed by Michael Kerrisk
parent 986d5d0048
commit a33adb814a
1 changed files with 14 additions and 0 deletions

View File

@ -267,6 +267,20 @@ file.
If the first character of this file is a pipe symbol (\fB|\fP),
then the remainder of the line is interpreted as the command-line for
a user-space program (or script) that is to be executed.
.PP
.\" 315c69261dd3fa12dbc830d4fa00d1fad98d3b03
Since kernel 5.3.0, the pipe template is split on spaces into an
argument list before the template parameters are expanded.
In earlier kernels the template parameters are expanded first and
the resulting string is split on spaces into an argument list.
This means that in earlier kernels executable names added by the
%e and %E template parameters could get split into multiple arguments.
So the core dump handler needs to put the executable names as the last
argument and ensure it joins all parts of the executable name using spaces.
Executable names with multiple spaces in them are not correctly represented
in earlier kernels so the core dump handler needs to use mechanisms to find
the executable name.
.PP
Instead of being written to a disk file, the core dump is given as
standard input to the program.
Note the following points: