summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c b/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
index 12af9c5450..2225327bbe 100644
--- a/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
+++ b/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
@@ -687,14 +687,21 @@ static int lsqlite3_search_callback(void *result, int col_num, char **cols, char
/* call the async callback for the last entry
* except the first time */
if (ac->current_eid != 0) {
- msg = ldb_msg_canonicalize(ldb, msg);
- if (!msg) return SQLITE_ABORT;
+ ret = ldb_msg_normalize(ldb, ac->req, msg, &msg);
+ if (ret != LDB_SUCCESS) {
+ return SQLITE_ABORT;
+ }
ret = ldb_module_send_entry(ac->req, msg, NULL);
if (ret != LDB_SUCCESS) {
ac->callback_failed = true;
+ /* free msg object */
+ TALLOC_FREE(msg);
return SQLITE_ABORT;
}
+
+ /* free msg object */
+ TALLOC_FREE(msg);
}
/* start over */
@@ -960,8 +967,10 @@ int lsql_search(struct lsql_context *ctx)
/* complete the last message if any */
if (ctx->ares) {
- ctx->ares->message = ldb_msg_canonicalize(ldb, ctx->ares->message);
- if (ctx->ares->message == NULL) {
+ ret = ldb_msg_normalize(ldb, ctx->ares,
+ ctx->ares->message,
+ &ctx->ares->message);
+ if (ret != LDB_SUCCESS) {
return LDB_ERR_OPERATIONS_ERROR;
}