aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/rungpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'gpgme/rungpg.c')
-rw-r--r--gpgme/rungpg.c20
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;