aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2005-04-14 08:49:20 +0000
committerMarcus Brinkmann <[email protected]>2005-04-14 08:49:20 +0000
commit34f97998390b7be1febbb436f01482984062d7d6 (patch)
treeaf719fad12beb98fe82dc5fc271bd65aa538eef4
parentFix last change. (diff)
downloadgpgme-34f97998390b7be1febbb436f01482984062d7d6.tar.gz
gpgme-34f97998390b7be1febbb436f01482984062d7d6.zip
2005-04-14 Marcus Brinkmann <[email protected]>
* wait-global.c (gpgme_wait): Use LI->ctx when checking a context in the list, not the user-provided CTX.
-rw-r--r--gpgme/ChangeLog4
-rw-r--r--gpgme/wait-global.c10
2 files changed, 10 insertions, 4 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index d993d473..ba448ef7 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,5 +1,9 @@
2005-04-14 Marcus Brinkmann <[email protected]>
+ * wait-global.c (gpgme_wait): Use LI->ctx when checking a context
+ in the list, not the user-provided CTX.
+ Reported by Igor Belyi <[email protected]>.
+
* wait-global.c (gpgme_wait): If no context is found, and we
should not hang, set *status to 0 and return NULL.
Reported by Igor Belyi <[email protected]>.
diff --git a/gpgme/wait-global.c b/gpgme/wait-global.c
index 24d75507..db422bf2 100644
--- a/gpgme/wait-global.c
+++ b/gpgme/wait-global.c
@@ -331,13 +331,15 @@ gpgme_wait (gpgme_ctx_t ctx, gpgme_error_t *status, int hang)
LOCK (ctx_list_lock);
for (li = ctx_active_list; li; li = li->next)
{
- for (i = 0; i < ctx->fdt.size; i++)
- if (ctx->fdt.fds[i].fd != -1)
+ gpgme_ctx_t actx = li->ctx;
+
+ for (i = 0; i < actx->fdt.size; i++)
+ if (actx->fdt.fds[i].fd != -1)
break;
- if (i == ctx->fdt.size)
+ if (i == actx->fdt.size)
{
gpgme_error_t err = 0;
- _gpgme_engine_io_event (ctx->engine, GPGME_EVENT_DONE, &err);
+ _gpgme_engine_io_event (actx->engine, GPGME_EVENT_DONE, &err);
}
}
UNLOCK (ctx_list_lock);