[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wl broken with Emacs from trunk?



Confirmed, I think that is Emacs's bug.

As you noticed, the change of src/gnutls.c in r115532 causes the
problem.  I doubt this change was intentionally committed because
there is any comment about this change.  And, reverting this change
solves the problem.

$ bzr diff -r 115531..115532 src/gnutls.c | patch -p 0 -R

You can confirm the bug with the below code.

(progn
  (require 'gnutls)
  (open-gnutls-stream "test" nil "imap.gmail.com" 993))

Please report this bug to bug-gnu-emacs@gnu.org.

-- 
Kazuhiro Ito

> I think the following commit is causing this issue:
> 
> % bzr diff -r 115531..115532 src/gnutls.c 
> === modified file 'src/gnutls.c'
> --- src/gnutls.c	2013-12-14 18:04:09 +0000
> +++ src/gnutls.c	2013-12-15 04:20:53 +0000
> @@ -825,8 +825,7 @@
>    verify_error          = Fplist_get (proplist, QCgnutls_bootprop_verify_error);
>    prime_bits            = Fplist_get (proplist, QCgnutls_bootprop_min_prime_bits);
>  
> -  if (!Flistp (verify_error))
> -    error ("gnutls-boot: invalid :verify_error parameter (not a list)");
> +  CHECK_LIST_CONS (verify_error, verify_error);
>  
>    if (!STRINGP (hostname))
>      error ("gnutls-boot: invalid :hostname parameter (not a string)");
> @@ -1071,8 +1070,7 @@
>  
>    if (peer_verification != 0)
>      {
> -      if (EQ (verify_error, Qt)
> -          || !NILP (Fmember (QCgnutls_bootprop_trustfiles, verify_error)))
> +      if (!NILP (Fmember (QCgnutls_bootprop_trustfiles, verify_error)))
>          {
>  	  emacs_gnutls_deinit (proc);
>  	  error ("Certificate validation failed %s, verification code %d",
> @@ -1121,8 +1119,7 @@
>  
>        if (!fn_gnutls_x509_crt_check_hostname (gnutls_verify_cert, c_hostname))
>  	{
> -          if (EQ (verify_error, Qt)
> -              || !NILP (Fmember (QCgnutls_bootprop_hostname, verify_error)))
> +          if (!NILP (Fmember (QCgnutls_bootprop_hostname, verify_error)))
>              {
>  	      fn_gnutls_x509_crt_deinit (gnutls_verify_cert);
>  	      emacs_gnutls_deinit (proc);