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