On Wed, 07 Jun 2017 12:08:38 +1000 NeilBrown <ne...@suse.com> wrote:

> 
> If a positive status is passed with the AUTOFS_DEV_IOCTL_FAIL
> ioctl, autofs4_d_automount() will return
>    ERR_PTR(status)
> with that status to follow_automount(), which will then
> dereference an invalid pointer.
> 
> So treat a positive status the same as zero, and map
> to ENOENT.
> 
> See comment in systemd src/core/automount.c::automount_send_ready().
> 
> ...
>
> --- a/fs/autofs4/dev-ioctl.c
> +++ b/fs/autofs4/dev-ioctl.c
> @@ -344,7 +344,7 @@ static int autofs_dev_ioctl_fail(struct file *fp,
>       int status;
>  
>       token = (autofs_wqt_t) param->fail.token;
> -     status = param->fail.status ? param->fail.status : -ENOENT;
> +     status = param->fail.status < 0 ? param->fail.status : -ENOENT;
>       return autofs4_wait_release(sbi, token, status);
>  }

Sounds serious.  Was the absence of a cc:stable deliberate?

Reply via email to