Re: + bootconfig-do-not-put-quotes-on-cmdline-items-unless-necessary.patch added to mm-nonmm-unstable branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrew,

Can I pick this in my bootconfig/for-next tree?

Thank you,

On Thu, 21 Mar 2024 17:26:57 -0700
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> 
> The patch titled
>      Subject: bootconfig: do not put quotes on cmdline items unless necessary
> has been added to the -mm mm-nonmm-unstable branch.  Its filename is
>      bootconfig-do-not-put-quotes-on-cmdline-items-unless-necessary.patch
> 
> This patch will shortly appear at
>      https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/bootconfig-do-not-put-quotes-on-cmdline-items-unless-necessary.patch
> 
> This patch will later appear in the mm-nonmm-unstable branch at
>     git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> 
> Before you just go and hit "reply", please:
>    a) Consider who else should be cc'ed
>    b) Prefer to cc a suitable mailing list as well
>    c) Ideally: find the original patch on the mailing list and do a
>       reply-to-all to that, adding suitable additional cc's
> 
> *** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
> 
> The -mm tree is included into linux-next via the mm-everything
> branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> and is updated there every 2-3 working days
> 
> ------------------------------------------------------
> From: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
> Subject: bootconfig: do not put quotes on cmdline items unless necessary
> Date: Wed, 20 Mar 2024 11:19:52 +0100
> 
> When trying to migrate to using bootconfig to embed the kernel's and
> PID1's command line with the kernel image itself, and so allowing changing
> that without modifying the bootloader, I noticed that /proc/cmdline
> changed from e.g.
> 
>   console=ttymxc0,115200n8 cma=128M quiet -- --log-level=notice
> 
> to
> 
>   console="ttymxc0,115200n8" cma="128M" quiet -- --log-level="notice"
> 
> The kernel parameters are parsed just fine, and the quotes are indeed
> stripped from the actual argv[] given to PID1.  However, the quoting
> doesn't really serve any purpose and looks excessive, and might confuse
> some (naive) userspace tool trying to parse /proc/cmdline.  So do not
> quote the value unless it contains whitespace.
> 
> Link: https://lkml.kernel.org/r/20240320101952.62135-1-linux@xxxxxxxxxxxxxxxxxx
> Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
> Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
> 
>  init/main.c |   12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> --- a/init/main.c~bootconfig-do-not-put-quotes-on-cmdline-items-unless-necessary
> +++ a/init/main.c
> @@ -327,7 +327,7 @@ static int __init xbc_snprint_cmdline(ch
>  {
>  	struct xbc_node *knode, *vnode;
>  	char *end = buf + size;
> -	const char *val;
> +	const char *val, *q;
>  	int ret;
>  
>  	xbc_node_for_each_key_value(root, knode, val) {
> @@ -345,8 +345,14 @@ static int __init xbc_snprint_cmdline(ch
>  			continue;
>  		}
>  		xbc_array_for_each_value(vnode, val) {
> -			ret = snprintf(buf, rest(buf, end), "%s=\"%s\" ",
> -				       xbc_namebuf, val);
> +			/*
> +			 * For prettier and more readable /proc/cmdline, only
> +			 * quote the value when necessary, i.e. when it contains
> +			 * whitespace.
> +			 */
> +			q = strpbrk(val, " \t\r\n") ? "\"" : "";
> +			ret = snprintf(buf, rest(buf, end), "%s=%s%s%s ",
> +				       xbc_namebuf, q, val, q);
>  			if (ret < 0)
>  				return ret;
>  			buf += ret;
> _
> 
> Patches currently in -mm which might be from linux@xxxxxxxxxxxxxxxxxx are
> 
> bootconfig-do-not-put-quotes-on-cmdline-items-unless-necessary.patch
> 


-- 
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>




[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux