Re: [PATCH] generic/633: adapt execveat() invocations

From: Christian Brauner
Date: Wed Feb 02 2022 - 04:54:09 EST


On Wed, Feb 02, 2022 at 08:36:05AM +0000, David Laight wrote:
> From: Christian Brauner
> > Sent: 31 January 2022 17:10
> >
> > There's a push by Ariadne to enforce that argv[0] cannot be NULL. So far
> > we've allowed this. Fix the execveat() invocations to set argv[0] to the
> > name of the file we're about to execute.
> >
> ...
> > src/idmapped-mounts/idmapped-mounts.c | 16 ++++++++--------
> > 1 file changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/src/idmapped-mounts/idmapped-mounts.c b/src/idmapped-mounts/idmapped-mounts.c
> > index 4cf6c3bb..76b559ae 100644
> > --- a/src/idmapped-mounts/idmapped-mounts.c
> > +++ b/src/idmapped-mounts/idmapped-mounts.c
> > @@ -3598,7 +3598,7 @@ static int setid_binaries(void)
> > NULL,
> > };
> > static char *argv[] = {
> > - NULL,
> > + "",
> > };
>
> Isn't that just plain wrong?
> argv[] needs to be terminated by a NULL so you need to add the ""
> before the NULL not replace the NULL by it.
>
> Quite how this matches the patch description is another matter...

Bah, braino. I fired that too quickly.