proc-cmdline: allow backslash escapes when parsing /proc/cmdline
authorLennart Poettering <lennart@poettering.net>
Tue, 6 Apr 2021 09:45:47 +0000 (11:45 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 7 Apr 2021 14:19:35 +0000 (16:19 +0200)
commitd997861ea7dae633174cd80ab55552c020526b62
tree25d9ffec7345def97b866e0cca844eb482e7b5d1
parent29d898cc7be4b2e91f13bba83fef46bbe995f08e
proc-cmdline: allow backslash escapes when parsing /proc/cmdline

So far when parsing /proc/cmdline we'd consider backslashes as
mechanisms for escaping whitepace or quotes. This changes things so that
they are retained as they are instead. The kernel itself doesn't allow such
escaping, and hence we shouldn't do so either (see lib/cmdline.c in the
kernel sources; it does support "" quotes btw).

This fix is useful to allow specifying backslash escapes in the "root="
cmdline option to be passed through to systemd-fstab-generator. Example:

    root=/dev/disk/by-partlabel/Root\x20Partition

Previously we'd eat up the "\" so that we'd then look for a device
/dev/disk/by-partlabel/Rootx20Partition which never shows up.
src/basic/proc-cmdline.c