<<< Date Index >>>     <<< Thread Index >>>

Re: [1.5.10] bus error when invocation of pgp fails



* Sat Aug 20 2005 Paul Walker <paul@xxxxxxxxxxxxxxxxxxxxx>
> On Fri, Aug 19, 2005 at 09:10:09AM -0400, Ken Weingold wrote:
> 
> > > Christian has confirmed that this works; if a few other people could 
> > > confirm
> > > it doesn't break PGP for them.
> > Worked for me too.  Now I get:
> > But I think I always got that.  I can read the message.
> 
> I've just tested it, and unfortunately it isn't right. While it works in the
> sense that it stops mutt crashing, and you can read PGP signed and encrypted
> mail if all is well, it breaks the behaviour when you give PGP the wrong
> keyphrase.

I have not tested it, but, is it really the patch broke the behaviour?
I suspect 1.5.10 itself has this problem, though I haven't tested it, too.
Sorry for such laziness.


> Now, instead of the output from PGP/GnuPG saying that you gave it the wrong
> keyphrase, you just get "Could not copy message", which isn't particularly
> helpful. The same applies to both of Tamo's patches.

If a handler's return-value is -1, it means a fatal error,
and leads to the "Could not copy message" error.

Hmm, should we return other value if it just failed to decrypt?
Or, output "Could not copy message" after 1 or 2 seconds of showing
"Could not decrypt PGP message" error? I prefer the latter.


> I don't know how to fix this, and I don't have the time to look at how the
> various bits are interacting. I suspect it's one of those things which is
> trivial if you understand how it all hangs together. Thomas...?

Brendan seems most likely the person in charge of these changes.


For Brendan: the bug #1919 was also filed as debian's bug #275188.
My wrongpasswd.1 patch had similar problems.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=275188
http://bugs.debian.org/cgi-bin/bugreport.cgi/patch-1.5.6.tamo.wrongpasswd.2?bug=275188;msg=24;att=1

-- 
tamo
--- pgp.c~      Fri Aug 19 12:47:39 2005
+++ pgp.c       Sat Aug 20 23:37:15 2005
@@ -387,6 +387,7 @@ int pgp_application_pgp_handler (BODY *m
          if ((c = fgetc (pgpout)) == EOF)
          {
            mutt_error _("Could not decrypt PGP message");
+           mutt_sleep (1);
            pgp_void_passphrase ();
            rc = -1;