Possible null pointer dereference fix.
[bluesky.git] / bluesky / store.c
index 50d7a21..48a69b4 100644 (file)
@@ -199,11 +199,13 @@ void bluesky_store_async_mark_complete(BlueSkyStoreAsync *async)
     bluesky_time_hires elapsed = bluesky_now_hires() - async->start_time;
     bluesky_time_hires latency = bluesky_now_hires() - async->exec_time;
 
-    g_mutex_lock(async->store->lock);
-    async->store->pending--;
-    if (async->store->pending == 0)
-        g_cond_broadcast(async->store->cond_idle);
-    g_mutex_unlock(async->store->lock);
+    if (async->op != STORE_OP_BARRIER) {
+        g_mutex_lock(async->store->lock);
+        async->store->pending--;
+        if (async->store->pending == 0)
+            g_cond_broadcast(async->store->cond_idle);
+        g_mutex_unlock(async->store->lock);
+    }
 
     async->status = ASYNC_COMPLETE;
     g_cond_broadcast(async->completion_cond);