Re: [PATCH v2 4/7] fs/binfmt_elf: replace open-coded string copy with get_task_comm

From: Steven Rostedt
Date: Mon Nov 29 2021 - 14:42:30 EST


On Sat, 20 Nov 2021 11:27:35 +0000
Yafang Shao <laoar.shao@xxxxxxxxx> wrote:

> diff --git a/include/linux/elfcore-compat.h b/include/linux/elfcore-compat.h
> index e272c3d452ce..54feb64e9b5d 100644
> --- a/include/linux/elfcore-compat.h
> +++ b/include/linux/elfcore-compat.h
> @@ -43,6 +43,11 @@ struct compat_elf_prpsinfo
> __compat_uid_t pr_uid;
> __compat_gid_t pr_gid;
> compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
> + /*
> + * The hard-coded 16 is derived from TASK_COMM_LEN, but it can't be
> + * changed as it is exposed to userspace. We'd better make it hard-coded
> + * here.

Didn't I once suggest having a macro called something like:

TASK_COMM_LEN_16 ?


https://lore.kernel.org/all/20211014221409.5da58a42@xxxxxxxxxxxxxxxx/

-- Steve


> + */
> char pr_fname[16];
> char pr_psargs[ELF_PRARGSZ];
> };
> diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
> index 957ebec35aad..746e081879a5 100644
> --- a/include/linux/elfcore.h
> +++ b/include/linux/elfcore.h
> @@ -65,6 +65,11 @@ struct elf_prpsinfo
> __kernel_gid_t pr_gid;
> pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
> /* Lots missing */
> + /*
> + * The hard-coded 16 is derived from TASK_COMM_LEN, but it can't be
> + * changed as it is exposed to userspace. We'd better make it hard-coded
> + * here.
> + */
> char pr_fname[16]; /* filename of executable */
> char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
> };