From: Volker Lendecke Date: Wed, 9 Oct 2019 15:17:07 +0000 (+0200) Subject: dbwrap_tdb: Return correct error from db_tdb_storev() X-Git-Tag: ldb-2.1.0~639 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a58633f64ea4e43dd3f860b4176ebae080a0a4f1;p=thirdparty%2Fsamba.git dbwrap_tdb: Return correct error from db_tdb_storev() Don't lose information to NT_STATUS_UNSUCCESSFUL Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/lib/dbwrap/dbwrap_tdb.c b/lib/dbwrap/dbwrap_tdb.c index c7da7eef9a0..ed20f885278 100644 --- a/lib/dbwrap/dbwrap_tdb.c +++ b/lib/dbwrap/dbwrap_tdb.c @@ -294,6 +294,8 @@ static NTSTATUS db_tdb_storev(struct db_record *rec, { struct db_tdb_ctx *ctx = talloc_get_type_abort(rec->private_data, struct db_tdb_ctx); + struct tdb_context *tdb = ctx->wtdb->tdb; + NTSTATUS status = NT_STATUS_OK; int ret; /* @@ -302,8 +304,12 @@ static NTSTATUS db_tdb_storev(struct db_record *rec, * anymore after it was stored. */ - ret = tdb_storev(ctx->wtdb->tdb, rec->key, dbufs, num_dbufs, flag); - return (ret == 0) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; + ret = tdb_storev(tdb, rec->key, dbufs, num_dbufs, flag); + if (ret == -1) { + enum TDB_ERROR err = tdb_error(tdb); + status = map_nt_error_from_tdb(err); + } + return status; } static NTSTATUS db_tdb_delete(struct db_record *rec)