Re: [PATCH] exec: Force binary name when argv is empty

From: Al Viro
Date: Tue Sep 20 2022 - 15:24:53 EST


On Tue, Sep 20, 2022 at 08:08:12PM +0800, Ren Zhijie wrote:
> From: Hui Tang <tanghui20@xxxxxxxxxx>
>
> First run './execv-main execv-child', there is empty in 'COMMAND' column
> when run 'ps -u'.
>
> USER PID %CPU %MEM VSZ RSS TTY [...] TIME COMMAND
> root 368 0.3 0.0 4388 764 ttyS0 0:00 ./execv-main
> root 369 0.6 0.0 4520 812 ttyS0 0:00
>
> The program 'execv-main' as follows:
>
> int main(int argc, char **argv)
> {
> char *execv_argv[] = {NULL};
> pid_t pid = fork();
>
> if (pid == 0) {
> execv(argv[1], execv_argv);
> } else if (pid > 0) {
> wait(NULL);
> }
> return 0;
> }
>
> So replace empty string ("") added with the name of binary
> when calling execve with a NULL argv.
>
> Fixes: dcd46d897adb ("exec: Force single empty string when argv is empty")

I don't see the point, to be honest... You've passed BS argv to execve(),
why would you expect anything pretty from ps(1)?

IOW, where's the bug you are fixing?