aboutsummaryrefslogtreecommitdiffstats
path: root/common/exectool.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/exectool.c')
-rw-r--r--common/exectool.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/common/exectool.c b/common/exectool.c
index a2828a6c6..766ee94c7 100644
--- a/common/exectool.c
+++ b/common/exectool.c
@@ -54,6 +54,13 @@ typedef struct
} read_and_log_buffer_t;
+static inline gpg_error_t
+my_error_from_syserror (void)
+{
+ return gpg_err_make (default_errsource, gpg_err_code_from_syserror ());
+}
+
+
static void
read_and_log_stderr (read_and_log_buffer_t *state, es_poll_t *fderr)
{
@@ -102,7 +109,7 @@ read_and_log_stderr (read_and_log_buffer_t *state, es_poll_t *fderr)
}
else if (es_ferror (fderr->stream))
{
- err = gpg_error_from_syserror ();
+ err = my_error_from_syserror ();
log_error ("error reading stderr of '%s': %s\n",
state->pgmname, gpg_strerror (err));
fderr->ignore = 1; /* Disable. */
@@ -172,7 +179,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
if (errno == EAGAIN)
return 0; /* We will just retry next time. */
- return gpg_error_from_syserror ();
+ return my_error_from_syserror ();
}
assert (c->nread <= sizeof c->buffer);
@@ -187,7 +194,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
if (errno == EAGAIN)
return 0; /* We will just retry next time. */
- return gpg_error_from_syserror ();
+ return my_error_from_syserror ();
}
assert (nwritten <= c->nread);
@@ -196,7 +203,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
assert (c->writep - c->buffer <= sizeof c->buffer);
if (es_fflush (sink) && errno != EAGAIN)
- err = gpg_error_from_syserror ();
+ err = my_error_from_syserror ();
return err;
}
@@ -272,7 +279,7 @@ gnupg_exec_tool_stream (const char *pgmname, const char *argv[],
count = es_poll (fds, DIM(fds), -1);
if (count == -1)
{
- err = gpg_error_from_syserror ();
+ err = my_error_from_syserror ();
log_error ("error polling '%s': %s\n", pgmname, gpg_strerror (err));
goto leave;
}
@@ -391,13 +398,13 @@ gnupg_exec_tool (const char *pgmname, const char *argv[],
input = es_mopen ((char *) input_string, len, len,
0 /* don't grow */, NULL, nop_free, "rb");
if (! input)
- return gpg_error_from_syserror ();
+ return my_error_from_syserror ();
}
output = es_fopenmem (0, "wb");
if (! output)
{
- err = gpg_error_from_syserror ();
+ err = my_error_from_syserror ();
goto leave;
}
@@ -413,7 +420,7 @@ gnupg_exec_tool (const char *pgmname, const char *argv[],
*result = xtrymalloc (len);
if (*result == NULL)
{
- err = gpg_error_from_syserror ();
+ err = my_error_from_syserror ();
goto leave;
}