{
struct ldb_val *read = private_data;
- /* Yes, we leak this. That is OK */
+ /*
+ * This should not leak if possible, please check with Leak Sanitizer.
+ */
read->data = talloc_size(NULL, data.length);
assert_non_null(read->data);
struct test_ctx *test_ctx =
talloc_get_type_abort(*state, struct test_ctx);
struct ldb_kv_private *ldb_kv = get_ldb_kv(test_ctx->ldb);
- struct ldb_val key;
- struct ldb_val val;
+ struct ldb_val key = {};
+ struct ldb_val val = {};
const char *KEY1 = "KEY01";
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
assert_int_equal(ret, LDB_SUCCESS);
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, LDB_SUCCESS);
struct test_ctx *test_ctx =
talloc_get_type_abort(*state, struct test_ctx);
struct ldb_kv_private *ldb_kv = get_ldb_kv(test_ctx->ldb);
- struct ldb_val key;
- struct ldb_val val;
+ struct ldb_val key = {};
+ struct ldb_val val = {};
const char *KEY1 = "KEY01";
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
assert_int_equal(ret, LDB_SUCCESS);
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(ldb->modules);
assert_int_equal(ret, LDB_SUCCESS);
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
assert_int_equal(ret, LDB_ERR_NO_SUCH_OBJECT);
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
struct test_ctx *test_ctx =
talloc_get_type_abort(*state, struct test_ctx);
struct ldb_kv_private *ldb_kv = get_ldb_kv(test_ctx->ldb);
- struct ldb_val key;
- struct ldb_val val;
+ struct ldb_val key = {};
+ struct ldb_val val = {};
const char *KEY1 = "KEY01";
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
assert_int_equal(ret, LDB_SUCCESS);
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, LDB_SUCCESS);