bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#16679: 24.3.50; can't create a newly encrypted gpg file with easypg


From: Eli Zaretskii
Subject: bug#16679: 24.3.50; can't create a newly encrypted gpg file with easypg in cygwin emacs
Date: Tue, 11 Feb 2014 18:05:18 +0200

> Date: Tue, 11 Feb 2014 16:15:08 +1100
> From: Jason Lewis <jason@dickson.st>
> CC: rgm@gnu.org, 16679@debbugs.gnu.org
> 
> > Please step in Edebug through epa-file-write-region, and tell which
> > part of the condition-case fails with file-error, and why. I see
> > nothing telltale in the backtrace which would suggest any ideas. Thanks. 
> 
> I think it fails on:
> 
> 
> line: 250
>            (epa-select-keys
>             context
>             "Select recipients for encryption.
> If no one is selected, symmetric encryption will be performed.  "
>             recipients)
> 
> 
> That call seems to take quite a few seconds and then execution jumps to
> the error part on line 257.
> 
> Digging deeper with edebug, I have found the error happens in the
> epa-list-keys call and I can make the error happen just by calling
> epa-list-keys directly.
> 
> I stepped through a whole lot but I couldn't work out where it happens
> exactly. it seems to be while its stepping through the gpg keys to
> produce the list.
> 
> Backtrace:
> 
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>   string-match("\"" nil 0)
>   (while (string-match "\"" string index) (setq string (replace-match
> "\\\"" t t string) index (1+ (match-end 0))))
>   (cond ((member (aref (car lines) 0) (quote ("pub" "sec" "crt" "crs")))
> (setq cert (member (aref (car lines) 0) (quote ("crt" "crs"))) keys

Thanks.  Please show the values of 'string' and '(car lines)' right
before the while loop indicated below (which is part of epg-list-keys):

       ((equal (aref (car lines) 0) "uid")
        ;; Decode the UID name as a backslash escaped UTF-8 string,
        ;; generated by GnuPG/GpgSM.
        (setq string (copy-sequence (aref (car lines) 9))
              index 0)
        (while (string-match "\"" string index) <<<<<<<<<<<<<<<<<<
          (setq string (replace-match "\\\"" t t string)
                index (1+ (match-end 0))))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]