2005-04-14 Marcus Brinkmann <marcus@g10code.de>
+ * wait-global.c (gpgme_wait): Use LI->ctx when checking a context
+ in the list, not the user-provided CTX.
+ Reported by Igor Belyi <gpgme@katehok.ac93.org>.
+
* 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 <gpgme@katehok.ac93.org>.
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);