diff options
Diffstat (limited to '')
| -rw-r--r-- | gpgme/rungpg.c | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index 74723e6a..d55fbc69 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -808,7 +808,12 @@ read_status (GpgObject gpg)      {        gpg->status.eof = 1;        if (gpg->status.fnc) -	gpg->status.fnc (gpg->status.fnc_value, GPGME_STATUS_EOF, ""); +	{ +	  GpgmeError err; +	  err = gpg->status.fnc (gpg->status.fnc_value, GPGME_STATUS_EOF, ""); +	  if (err) +	    return err; +	}        return 0;      } @@ -886,8 +891,11 @@ read_status (GpgObject gpg)                          }  		      else if (gpg->status.fnc)  			{ -			  gpg->status.fnc (gpg->status.fnc_value,  -					   r->code, rest); +			  GpgmeError err; +			  err = gpg->status.fnc (gpg->status.fnc_value,  +						 r->code, rest); +			  if (err) +			    return err;                          }  		      if (r->code == GPGME_STATUS_END_STREAM) @@ -939,11 +947,7 @@ status_handler (void *opaque, int fd)    assert (fd == gpg->status.fd[0]);    err = read_status (gpg);    if (err) -    { -      DEBUG1 ("gpg_handler: read_status problem %d\n - stop", err); -      _gpgme_io_close (fd); -      return err; -    } +    return err;    if (gpg->status.eof)      _gpgme_io_close (fd);    return 0; | 
