Fix: lib/iterator.c: unbalanced ctx put (leak)
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 5 Dec 2019 06:58:07 +0000 (01:58 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 13 Dec 2019 01:02:17 +0000 (20:02 -0500)
Missing context put in iterator init error path.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
lib/iterator.c

index 639a2d290a5abc5aeabc94148c772c6b3dc9dc67..77093217cd2e8a979b5220cffc0a7492f88464c6 100644 (file)
@@ -778,6 +778,8 @@ int bt_iter_init(struct bt_iter *iter,
 error:
        bt_heap_free(iter->stream_heap);
 error_heap_init:
 error:
        bt_heap_free(iter->stream_heap);
 error_heap_init:
+       bt_context_put(ctx);
+       iter->ctx = NULL;
        g_free(iter->stream_heap);
        iter->stream_heap = NULL;
 error_ctx:
        g_free(iter->stream_heap);
        iter->stream_heap = NULL;
 error_ctx:
@@ -812,6 +814,7 @@ void bt_iter_fini(struct bt_iter *iter)
        }
        iter->ctx->current_iterator = NULL;
        bt_context_put(iter->ctx);
        }
        iter->ctx->current_iterator = NULL;
        bt_context_put(iter->ctx);
+       iter->ctx = NULL;
 }
 
 void bt_iter_destroy(struct bt_iter *iter)
 }
 
 void bt_iter_destroy(struct bt_iter *iter)
This page took 0.025052 seconds and 4 git commands to generate.