From: Douglas Bagnall Date: Wed, 8 May 2019 02:52:31 +0000 (+1200) Subject: s4/dsdb/util_samr: check some return codes (CID 1444977) X-Git-Tag: tdb-1.4.1~115 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=215eef5b6f5949b84b17fb131383b9b97ba94958;p=thirdparty%2Fsamba.git s4/dsdb/util_samr: check some return codes (CID 1444977) Signed-off-by: Douglas Bagnall Reviewed-by: Gary Lockyer --- diff --git a/source4/dsdb/common/util_samr.c b/source4/dsdb/common/util_samr.c index bb906fa0488..5370fc94eba 100644 --- a/source4/dsdb/common/util_samr.c +++ b/source4/dsdb/common/util_samr.c @@ -154,11 +154,20 @@ NTSTATUS dsdb_add_user(struct ldb_context *ldb, return NT_STATUS_FOOBAR; } - ldb_msg_add_string(msg, "sAMAccountName", account_name); - ldb_msg_add_string(msg, "objectClass", obj_class); - samdb_msg_add_uint(ldb, tmp_ctx, msg, - "userAccountControl", - user_account_control); + ret = ldb_msg_add_string(msg, "sAMAccountName", account_name); + if (ret != LDB_SUCCESS) { + goto failed; + } + ret = ldb_msg_add_string(msg, "objectClass", obj_class); + if (ret != LDB_SUCCESS) { + goto failed; + } + ret = samdb_msg_add_uint(ldb, tmp_ctx, msg, + "userAccountControl", + user_account_control); + if (ret != LDB_SUCCESS) { + goto failed; + } /* This is only here for migrations using pdb_samba4, the * caller and the samldb are responsible for ensuring it makes @@ -237,6 +246,11 @@ NTSTATUS dsdb_add_user(struct ldb_context *ldb, } talloc_free(tmp_ctx); return NT_STATUS_OK; + + failed: + ldb_transaction_cancel(ldb); + talloc_free(tmp_ctx); + return NT_STATUS_INTERNAL_ERROR; } /*