Subject: bug#15866: Gnutls elisp code doesn't properly check for file existence

From: Eli Zaretskii <[email-masked]>
Date: Tue, 12 Nov 2013 19:48:18 +0200

> Date: Mon, 11 Nov 2013 19:20:08 -0500
> From: "" <[email-masked]>
> 
> i]  If the function 'expand-file-name' has an associated magic file
>     handler, the function expand-file-name is called to convert it "to
>     absolute, and canonicalize it" (quoted from the function
>     definition).
> 
> ii] The test for file-exists-p is then wrapped in a 'let' construct
> 	with file-name-handler-alist set to nil. This effectively shuts
> 	off magic file handling and ensures that file-exists-p now checks
> 	for true OS existence of the now potentially expanded path.
> 
> iii]The function gnutls-trustfiles is now assured that it will be
>     passed an OS-valid path.

Thanks.

As I wrote elsewhere, I agree that gnutls.el should ignore file
handlers when it looks for certificate files.

But then _not_ ignoring the expand-file-name handler makes little
sense to me: the result could exist as a local file name that has no
relation whatsoever to certificates, which will again fail in strange
ways inside the GnuTLS library.

So I think we should do ii], but not i].

Btw, I think many Emacs packages don't make sense with remote files,
so they should also ignore file handlers.  IOW, this is not specific
to gnutls.el.