]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix possible infinite loop in remote driver
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 12 Apr 2011 14:58:48 +0000 (16:58 +0200)
committerEric Blake <eblake@redhat.com>
Tue, 12 Apr 2011 15:18:40 +0000 (09:18 -0600)
When we take out completed calls from queue we might end up
in circular pointer. We don't want pointer to previous item
point to element taken out.

src/remote/remote_driver.c

index 5cb4f4cb230c6a88dc853cbb62a7529609c04748..b979f71c83a3ab3e0b483762c6cb3bb689d76169 100644 (file)
@@ -10672,8 +10672,9 @@ remoteIOEventLoop(virConnectPtr conn,
                  */
                 VIR_DEBUG("Waking up sleep %d %p %p", tmp->proc_nr, tmp, priv->waitDispatch);
                 virCondSignal(&tmp->cond);
+            } else {
+                prev = tmp;
             }
-            prev = tmp;
             tmp = tmp->next;
         }