From: <emacs@kosowsky.org>
To: <emacs@kosowsky.org>
Cc: Ted Zlatanov <tzz@lifelogs.com>, 15648@debbugs.gnu.org
Subject: bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely, bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely
Date: Wed, 23 Oct 2013 00:17:49 -0400 [thread overview]
Message-ID: <21095.19949.639350.970770@consult.pretender> (raw)
In-Reply-To: <21094.64459.131668.849138@consult.pretender>
emacs@kosowsky.org wrote at about 18:27:23 -0400 on Tuesday, October 22, 2013:
> emacs@kosowsky.org wrote at about 15:10:29 -0400 on Tuesday, October 22, 2013:
> > emacs@kosowsky.org wrote at about 11:41:09 -0400 on Tuesday, October 22, 2013:
> > > emacs@kosowsky.org wrote at about 11:23:59 -0400 on Tuesday, October 22, 2013:
> > > > Ted Zlatanov wrote at about 09:27:06 -0400 on Tuesday, October 22, 2013:
> > > > > On Mon, 21 Oct 2013 15:30:40 -0400 <emacs@kosowsky.org> wrote:
> > > > >
> > > > > > Ted Zlatanov wrote at about 10:22:03 -0400 on Monday, October 21, 2013:
> > > > > >> On Fri, 18 Oct 2013 14:29:04 -0400 "" <emacs@kosowsky.org> wrote:
> > > > > >>
> > > > > >> > Fault Module Name: libgnutls-28.dll
> > > > > >> ...
> > > > > >> > That being said, I downloaded 24.3 from the gnu site and tried it with
> > > > > >> > the latest gnutls-3.0.9 dll's from the suggested
> > > > > >> > http://sourceforge.net/projects/ezwinports/files/ site.
> > > > > >>
> > > > > >> > And SAME crash of emacs!
> > > > > >>
> > > > > >> Could you please try with the latest 3.x from
> > > > > >> ftp://ftp.gnutls.org/gcrypt/gnutls/w32/ ?
> > > > > >>
> > > > > > Same crash with 3.2.4 as with 3.0.9
> > > > >
> > > > > Sorry, I don't know how you can be sure of the library loaded in
> > > > > Windows. Did you put the DLL in the same directory?
> > > >
> > > > The dll's are in a directory that lies within my system PATH.
> > > > I know they are loaded because (gnutls-available-p) only proves true
> > > > when I have all the related dll's in the PATH.
> > > >
> > > > >
> > > > > >> The `gnutls-boot' function is pretty inoffensive so let's make sure the
> > > > > >> basics are covered before we dig into the C code.
> > > > >
> > > > > Are you able to debug the Emacs executable? I don't know if the build
> > > > > you're using includes the necessary symbols, but a backtrace with at
> > > > > least function names would be extremely helpful to figure this out.
> > > >
> > > > I just used edebug... for the trace I submitted...
> > > > >
> > > > > Does the problem occur to any server or just the one you listed? You
> > > > > can test with
> > > > >
> > > > > (open-gnutls-stream "tls" "tls-buffer" "imap.gmail.com" "imaps")
> > > > >
> > > >
> > > > This gave the same crash!
> > > >
> > > > > It's strange that there's been no other reports of this issue. Do you
> > > > > have access to any other systems where you can test?
> > > >
> > > > Could it have anything to do with 64-bit Win7?
> > > > Could there be any conflicts with cygwin x86_64 that I have installed
> > > > (though I purposely didn't install cygwin gnutls) -- but could other
> > > > dll's be in conflict?
> > >
> > > OK - I answered my own question.
> > > There seems to be an incompatibility with the cygwin-mount library...
> >
> > In particular, the problem seems to be with the called cygwin mount
> > program (/bin/mount.exe). Replacing it with /bin/true.exe prevents the
> > crash.
> >
> > I wonder whether this is a dll incompatibility with cygwin.dll or in
> > particular the x86_64 version...
>
> I did some more troubleshooting... actually, I don't think it is a
> cygwin.dll problem nor is it a problem with the cygwin program
> mount.exe.
>
>
> The problem seems to be with the lisp code in cygwin-mount-activate in
> terms of how it changes file-name-handler-alist,
> substitute-in-file-name, and expand-file-name.
>
> I say this because gnutls causes the crash after
> (cygwin-mount-activate) is run. But if you wait to run
> (cygwin-mount-deactivate), then it won't crash. So the problem isn't
> with whether mount.exe has been run (I also double checked this by
> manually running mount.exe via call-process). Rather, it has something
> to do with the file name substitutions set up.
>
> So, while the physical crash may be somewhere in the lisp code. The
> issue is with how the cygwin file name handler lisp code interacts with the
> gnutls code...
Oops I spoke too soon. Cygwin-mount works just fine and properly
parses the file names in the guntls code.
Rather, the problem is in how the C-code handles the Cygwin/Linux
style paths enumerated in the Lisp variable:
(defcustom gnutls-trustfiles
'(
"/etc/ssl/certs/ca-certificates.crt" ; Debian, Ubuntu, Gentoo and Arch Linux
"/etc/pki/tls/certs/ca-bundle.crt" ; Fedora and RHEL
"/etc/ssl/ca-bundle.pem" ; Suse
"/usr/ssl/certs/ca-bundle.crt" ; Cygwin
)
If I set the final element to the Windows style path equivalent:
"C:/cygwin/usr/ssl/certs/ca-bundle.crt"
then gnutls works fine without crashing. So, the problem clearly is
with *nix-style paths
Stepping through the *Lisp* code shows that the file paths are all
properly parsed when cygwin-mount is loaded/activated. Indeed,
file-exists-p properly recognizes the cygwin path
"/usr/ssl/certs/ca-bundle.crt" and returns nil on the other paths that
don't exist in a standard Cygwin setup.
Note that if cygwin-mount is not loaded/activated, then
"/usr/ssl/certs/ca-bundle.crt" (along with the other list elements)
fails the file-exists-p test in gnutls-negotiate so that 'trustfiles'
gets set to nil which explains why it doesn't crash in the case when
cygwin-mount is not used since trivially 'trustfiles' has no paths
associated with it.
So, basically, we have the following Catch-22. If cygwin-mount is not
loaded/activated, then the cert location for Cygwin is never found. If
cygwin-mount is activated then it causes a crash. The result being
that in Windows, no certs are ever loaded when using the default
definition of gnutls-trustfiles
Presumably the problem is that the C-code doesn't know how to deal with
a Cygwin (*nix) style path that has been properly recognized by the
Lisp code (via cygwin-mount).
It seems like there are two potential solutions:
1. Use Windows-style paths in the definition of gnutls-trustfiles
(this should work in Linux too, since
"C:/usr/ssl/certs/ca-bundle.crt" will generally fail the
file-exists-p test)
2. Add cygwin-mount functionality to the C-code so that it can parse
cygwin (Unix) style paths.
In any case, I imagine the C-code crashes because it sees a Unix-style
path while expecting a Windows style path... that being said the
C-code should be better behaved than that... at a minimum the code
should check to make sure the certificate file path is well-formed and
exists.
next prev parent reply other threads:[~2013-10-23 4:17 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-18 18:29 bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely emacs
2013-10-18 19:38 ` Glenn Morris
2013-10-20 20:24 ` emacs
2013-10-21 14:22 ` bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely, " Ted Zlatanov
2013-10-21 19:30 ` emacs
2013-10-22 13:27 ` Ted Zlatanov
2013-10-22 15:23 ` emacs
2013-10-22 15:41 ` emacs
2013-10-22 19:10 ` emacs
2013-10-22 20:06 ` Ted Zlatanov
2013-10-22 20:22 ` emacs
2013-10-22 20:34 ` Eli Zaretskii
2013-10-22 22:27 ` emacs
2013-10-23 2:51 ` Eli Zaretskii
2013-10-23 4:17 ` emacs [this message]
2013-10-23 14:52 ` Ted Zlatanov
2013-10-23 17:25 ` emacs
2013-10-23 18:07 ` Eli Zaretskii
2013-10-23 18:58 ` Ted Zlatanov
2013-10-23 23:45 ` emacs
2013-10-24 0:13 ` emacs
2013-10-24 10:59 ` Ted Zlatanov
2013-10-24 14:10 ` emacs
2013-10-24 15:48 ` Ted Zlatanov
2013-10-24 17:02 ` emacs
2013-10-24 17:57 ` Stefan Monnier
2013-10-24 18:42 ` emacs
2013-10-25 0:59 ` Stefan Monnier
2013-10-25 13:59 ` emacs
2013-10-26 1:52 ` Stefan Monnier
2013-10-29 5:13 ` emacs
2013-11-03 11:42 ` Ted Zlatanov
2013-11-03 15:12 ` emacs
2013-11-03 17:32 ` Eli Zaretskii
2013-11-03 19:12 ` emacs
2013-11-04 16:28 ` Ted Zlatanov
2013-11-04 16:58 ` Eli Zaretskii
2013-11-11 19:12 ` emacs
2013-11-11 19:42 ` Ted Zlatanov
2013-11-11 20:00 ` emacs
2013-11-11 20:00 ` Achim Gratz
2013-11-11 23:58 ` Ted Zlatanov
2013-11-12 0:45 ` emacs
2013-11-11 20:06 ` Eli Zaretskii
2013-11-11 21:53 ` emacs
2013-11-12 3:56 ` Eli Zaretskii
2013-11-12 15:19 ` emacs
2013-11-12 17:42 ` Eli Zaretskii
[not found] ` <<83ppq51pq8.fsf@gnu.org>
2013-11-12 18:08 ` Drew Adams
2013-11-03 21:37 ` Stefan Monnier
2013-10-23 15:16 ` bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely, " Eli Zaretskii
2013-10-23 17:12 ` emacs
2013-10-23 18:00 ` Eli Zaretskii
2013-10-23 19:49 ` emacs
2013-10-24 2:46 ` Eli Zaretskii
2013-10-25 3:17 ` emacs
2013-10-25 14:09 ` Eli Zaretskii
2013-10-25 15:38 ` Ted Zlatanov
2013-10-25 18:37 ` Eli Zaretskii
2013-11-03 17:30 ` Eli Zaretskii
2013-11-04 16:44 ` Ted Zlatanov
2013-11-04 17:06 ` Eli Zaretskii
2013-11-04 18:05 ` Ted Zlatanov
2013-11-04 22:14 ` emacs
2013-11-05 2:30 ` Ted Zlatanov
2013-11-05 23:11 ` emacs
2013-11-05 23:16 ` Alp Aker
2013-11-05 23:54 ` emacs
2013-11-11 15:53 ` Ted Zlatanov
2013-11-11 19:40 ` emacs
2013-11-11 20:11 ` Eli Zaretskii
2013-11-11 21:56 ` emacs
2013-11-12 3:58 ` Eli Zaretskii
2013-11-12 15:23 ` emacs
2013-11-06 3:51 ` Eli Zaretskii
2013-11-06 5:45 ` emacs
2013-10-22 15:43 ` bug#15648: 24.2.50; gnutls SSL connection to IMAP server causes emacs to crash completely, " Eli Zaretskii
2013-10-22 20:03 ` Ted Zlatanov
2013-10-22 20:35 ` Andy Moreton
2013-10-22 20:45 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=21095.19949.639350.970770@consult.pretender \
--to=emacs@kosowsky.org \
--cc=15648@debbugs.gnu.org \
--cc=tzz@lifelogs.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).