{
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);
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int rcode;
int flags = 0;
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
/*
* Now check that the error code we return in the
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int flags = 0;
TALLOC_CTX *tmp_ctx;
*/
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &read);
assert_int_equal(ret, LDB_ERR_PROTOCOL_ERROR);
+ TALLOC_FREE(read.data);
talloc_free(tmp_ctx);
}
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int flags = 0;
TALLOC_CTX *tmp_ctx;
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
assert_int_equal(ret, 0);
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &read);
assert_int_equal(ret, LDB_ERR_NO_SUCH_OBJECT);
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int flags = 0;
TALLOC_CTX *tmp_ctx;
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
/*
assert_int_equal(ret, 0);
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &read);
assert_int_equal(ret, LDB_ERR_NO_SUCH_OBJECT);
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int flags = 0;
TALLOC_CTX *tmp_ctx;
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
*/
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &read);
assert_int_equal(ret, LDB_ERR_NO_SUCH_OBJECT);
+ TALLOC_FREE(read.data);
/*
* Abort the transaction
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
.length = sizeof(value)
};
- struct ldb_val read;
+ struct ldb_val read = {};
int flags = 0;
TALLOC_CTX *tmp_ctx;
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
assert_int_equal(ret, 0);
assert_int_equal(sizeof(value), read.length);
assert_memory_equal(value, read.data, sizeof(value));
+ TALLOC_FREE(read.data);
ret = ldb_kv->kv_ops->unlock_read(test_ctx->ldb->modules);
assert_int_equal(ret, 0);
}
if ((strlen(VAL1) + 1) != val.length) {
+ TALLOC_FREE(val.data);
print_error(__location__": KEY1 value lengths different"
", expected (%d) actual(%d)\n",
(int)(strlen(VAL1) + 1), (int)val.length);
"expected (%s) actual(%s)\n",
VAL1,
val.data);
+ TALLOC_FREE(val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(ldb->modules);
if (ret != LDB_SUCCESS) {
}
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
+ TALLOC_FREE(val.data);
if (ret != LDB_ERR_NO_SUCH_OBJECT) {
print_error(__location__": fetch_and_parse returned "
"(%d)\n",
}
if ((strlen(VAL1) + 1) != val.length) {
+ TALLOC_FREE(val.data);
print_error(__location__": KEY1 value lengths different"
", expected (%d) actual(%d)\n",
(int)(strlen(VAL1) + 1), (int)val.length);
"expected (%s) actual(%s)\n",
VAL1,
val.data);
+ TALLOC_FREE(val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(ldb->modules);
if (ret != LDB_SUCCESS) {
print_error(__location__": KEY2 value lengths different"
", expected (%d) actual(%d)\n",
(int)(strlen(VAL2) + 1), (int)val.length);
+ TALLOC_FREE(val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
if (memcmp(VAL2, val.data, strlen(VAL2)) != 0) {
"expected (%s) actual(%s)\n",
VAL2,
val.data);
+ TALLOC_FREE(val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(ldb->modules);
if (ret != LDB_SUCCESS) {
}
if ((strlen(VAL1) + 1) != val.length) {
+ TALLOC_FREE(val.data);
print_error(__location__": KEY1 value lengths different"
", expected (%d) actual(%d)\n",
(int)(strlen(VAL1) + 1), (int)val.length);
val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
+ TALLOC_FREE(val.data);
/*
* Check that KEY2 is there
}
if ((strlen(VAL2) + 1) != val.length) {
+ TALLOC_FREE(val.data);
print_error(__location__": KEY2 value lengths different"
", expected (%d) actual(%d)\n",
(int)(strlen(VAL2) + 1), (int)val.length);
val.data);
exit(LDB_ERR_OPERATIONS_ERROR);
}
+ TALLOC_FREE(val.data);
ret = ldb_kv->kv_ops->unlock_read(ldb->modules);
if (ret != LDB_SUCCESS) {
}
ret = ldb_kv->kv_ops->fetch_and_parse(ldb_kv, key, parse, &val);
+ TALLOC_FREE(val.data);
if (ret != LDB_ERR_NO_SUCH_OBJECT) {
print_error(__location__": fetch_and_parse returned "
"(%d)\n",