gpgme_op_verify returns GPGME_SIG_STAT_NONE
Bart Trojanowski
bart at jukie.net
Sun Jul 1 00:41:01 CEST 2001
More on my gpgme_op_verify problem...
For the purposes of finding the bug I have converted my code to use
both of the GpgmeData (sig and data) as 'from_mem' type. There was no
difference.
If it matters this is the call to gpg that gpgme makes:
/usr/local/bin/gpg --enable-special-filenames --batch \
--status-fd 5 --no-tty --verify --verbose -- -&6 -
After running gpgme_op_verify (ctx, sig, data, &status) I see (in the dump
from gpgme) the gpg_outbound_handler writing out the signature, then I see
the gpg_outbound_handler writing out the data (to a different fd).
Then the problem occurs: do_select is notified that the 'status fd' is
ready to be read -- assumption here is that the verify operation either
failed or succeeded; in any case it's over. The gpg_status_handler is
called to read the status... but the read() call returns 0.
This screws up everything... this error condition is not handled very-well
in gpgme_op_verify as if ( c->result.verify->notation ) does not have an
else to capture the case when there was no result returned.
Throwing in a sleep(10) before the read does not do anything; so I am
thinking that the gpg child process is really done. I am not seeing any
signals in gdb so I don't think it has crashed.
How can I find out more about what happened in gnupg? Is there a
'export GPGME_DEBUG=3' equivalent for gpg?
Thanks in advance.
Bart.
--
WebSig: http://www.jukie.net/~bart/sig/
More information about the Gnupg-devel
mailing list