From: Joseph Sutton Date: Fri, 11 Aug 2023 00:04:02 +0000 (+1200) Subject: s4:kdc: Have encode_claims_set return NTSTATUS X-Git-Tag: tevent-0.16.0~975 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78fc6fbb61c40efe6cd20b83270acb11348eb5aa;p=thirdparty%2Fsamba.git s4:kdc: Have encode_claims_set return NTSTATUS This change will simplify things later. Probably. Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/source4/kdc/ad_claims.c b/source4/kdc/ad_claims.c index 28e3d0d3e34..6b89eb66f7b 100644 --- a/source4/kdc/ad_claims.c +++ b/source4/kdc/ad_claims.c @@ -673,10 +673,10 @@ static uint32_t claim_get_value_count(const struct CLAIM_ENTRY *claim) return 0; } -static int encode_claims_set(struct ldb_context *ldb, - TALLOC_CTX *mem_ctx, - struct CLAIMS_SET *claims_set, - DATA_BLOB *claims_blob) +static NTSTATUS encode_claims_set(struct ldb_context *ldb, + TALLOC_CTX *mem_ctx, + struct CLAIMS_SET *claims_set, + DATA_BLOB *claims_blob) { TALLOC_CTX *tmp_ctx = NULL; enum ndr_err_code ndr_err; @@ -686,25 +686,25 @@ static int encode_claims_set(struct ldb_context *ldb, tmp_ctx = talloc_new(mem_ctx); if (tmp_ctx == NULL) { - return ldb_oom(ldb); + return NT_STATUS_NO_MEMORY; } metadata_ndr = talloc_zero(tmp_ctx, struct CLAIMS_SET_METADATA_NDR); if (metadata_ndr == NULL) { talloc_free(tmp_ctx); - return ldb_oom(ldb); + return NT_STATUS_NO_MEMORY; } metadata = talloc_zero(metadata_ndr, struct CLAIMS_SET_METADATA); if (metadata == NULL) { talloc_free(tmp_ctx); - return ldb_oom(ldb); + return NT_STATUS_NO_MEMORY; } claims_set_info = talloc_zero(metadata, struct CLAIMS_SET_NDR); if (claims_set_info == NULL) { talloc_free(tmp_ctx); - return ldb_oom(ldb); + return NT_STATUS_NO_MEMORY; } metadata_ndr->claims.metadata = metadata; @@ -722,11 +722,11 @@ static int encode_claims_set(struct ldb_context *ldb, nt_errstr(nt_status)); talloc_free(tmp_ctx); - return ldb_operr(ldb); + return nt_status; } talloc_free(tmp_ctx); - return LDB_SUCCESS; + return NT_STATUS_OK; } static bool is_schema_dn(struct ldb_dn *dn, @@ -794,6 +794,7 @@ static int get_all_claims(struct ldb_context *ldb, struct ldb_dn *claim_types_child = NULL; struct ldb_dn *config_dn = ldb_get_config_basedn(ldb); struct ldb_dn *schema_dn = ldb_get_schema_basedn(ldb); + NTSTATUS status; bool ok; int ret; struct ldb_result *res = NULL; @@ -1232,7 +1233,10 @@ static int get_all_claims(struct ldb_context *ldb, } /* Encode the claims ready to go into a PAC buffer. */ - ret = encode_claims_set(ldb, mem_ctx, &claims_set, claims_blob); + status = encode_claims_set(ldb, mem_ctx, &claims_set, claims_blob); + if (!NT_STATUS_IS_OK(status)) { + ret = LDB_ERR_OPERATIONS_ERROR; + } talloc_free(tmp_ctx); return ret;