Subject: Re: bug#25419: give better message when trying to go to forbidden areas
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Date: Fri, 27 Jan 2017 10:59:08 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: [email-masked]
> Cc: 積丹尼 Dan Jacobson <[email-masked]>,
>   [email-masked]
> Date: Wed, 18 Jan 2017 22:28:17 -0500
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> From: 積丹尼 Dan Jacobson
> >> 	<[email-masked]>
> >> Date: Wed, 11 Jan 2017 22:44:08 +0800
> >> 
> >> Do C-x C-f ~root
> >> You will see:
> >> Setting current directory: Success, /root/
> >
> > That's because /root has a file-name handler,
> > tramp-completion-file-name-handler, and although that handler turns
> > around and calls file-accessible-directory-p, the value of errno is
> > lost in transition:
> >
> >   /* If the file name has special constructs in it,
> >      call the corresponding file handler.  */
> >   handler = Ffind_file_name_handler (absname, Qfile_accessible_directory_p);
> >   if (!NILP (handler))
> >     {
> >       Lisp_Object r = call2 (handler, Qfile_accessible_directory_p, absname);
> >       errno = 0;
> >       return r;
> >     }
> >
> > Is there any better way than arbitrarily set errno to EACCES if the
> > handler returns something other than t?
> 
> AFAICT, not without changing the interface of
> file-accessible-directory-p file handler, no.

OK, thanks.  I made that change, and I'm marking this bug done.