r26003: Split up DB_WRAP, as first step in an attempt to sanitize dependencies.
[jelmer/samba4-debian.git] / source / ntvfs / common / opendb_tdb.c
index a037e7e47eaf53ea9d6f05789b2f2ebd3ae8dd6b..9926bf8d3ef908ba12aed40ef7a46f42e9e36384 100644 (file)
@@ -41,7 +41,7 @@
 #include "system/filesys.h"
 #include "lib/tdb/include/tdb.h"
 #include "messaging/messaging.h"
-#include "db_wrap.h"
+#include "tdb_wrap.h"
 #include "lib/messaging/irpc.h"
 #include "librpc/gen_ndr/ndr_opendb.h"
 #include "ntvfs/ntvfs.h"
@@ -195,8 +195,8 @@ static NTSTATUS odb_pull_record(struct odb_lock *lck, struct opendb_file *file)
        struct odb_context *odb = lck->odb;
        TDB_DATA dbuf;
        DATA_BLOB blob;
-       NTSTATUS status;
-               
+       enum ndr_err_code ndr_err;
+
        dbuf = tdb_fetch(odb->w->tdb, lck->key);
        if (dbuf.dptr == NULL) {
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
@@ -205,11 +205,13 @@ static NTSTATUS odb_pull_record(struct odb_lock *lck, struct opendb_file *file)
        blob.data = dbuf.dptr;
        blob.length = dbuf.dsize;
 
-       status = ndr_pull_struct_blob(&blob, lck, file, (ndr_pull_flags_fn_t)ndr_pull_opendb_file);
-
+       ndr_err = ndr_pull_struct_blob(&blob, lck, file, (ndr_pull_flags_fn_t)ndr_pull_opendb_file);
        free(dbuf.dptr);
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+               return ndr_map_error2ntstatus(ndr_err);
+       }
 
-       return status;
+       return NT_STATUS_OK;
 }
 
 /*
@@ -220,7 +222,7 @@ static NTSTATUS odb_push_record(struct odb_lock *lck, struct opendb_file *file)
        struct odb_context *odb = lck->odb;
        TDB_DATA dbuf;
        DATA_BLOB blob;
-       NTSTATUS status;
+       enum ndr_err_code ndr_err;
        int ret;
 
        if (file->num_entries == 0) {
@@ -231,8 +233,10 @@ static NTSTATUS odb_push_record(struct odb_lock *lck, struct opendb_file *file)
                return NT_STATUS_OK;
        }
 
-       status = ndr_push_struct_blob(&blob, lck, file, (ndr_push_flags_fn_t)ndr_push_opendb_file);
-       NT_STATUS_NOT_OK_RETURN(status);
+       ndr_err = ndr_push_struct_blob(&blob, lck, file, (ndr_push_flags_fn_t)ndr_push_opendb_file);
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+               return ndr_map_error2ntstatus(ndr_err);
+       }
 
        dbuf.dptr = blob.data;
        dbuf.dsize = blob.length;