2005-04-14 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Thu, 14 Apr 2005 08:49:20 +0000 (08:49 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Thu, 14 Apr 2005 08:49:20 +0000 (08:49 +0000)
* wait-global.c (gpgme_wait): Use LI->ctx when checking a context
in the list, not the user-provided CTX.

gpgme/ChangeLog
gpgme/wait-global.c

index d993d47329c9e426870310365bd43aaeb7c4a87f..ba448ef7a07eeb421e52dee9641d8f9f46f5d11f 100644 (file)
@@ -1,5 +1,9 @@
 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>.
index 24d75507e91295b82571a00f5aac8cecb21e848c..db422bf22abd427dbc3eaac6831574e640a7e7a5 100644 (file)
@@ -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);