summaryrefslogtreecommitdiffstats
path: root/source/libads
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2007-12-29 22:47:03 +0100
committerVolker Lendecke <vl@samba.org>2007-12-29 23:13:03 +0100
commit54576733d6c0511dc7379f964b1cb035913b7c8d (patch)
treec24155630a9f9171469bdeb7b197e5ce305c0b89 /source/libads
parent8aec5d09ba023413bd8ecbdfbc7d23904df94389 (diff)
downloadsamba-54576733d6c0511dc7379f964b1cb035913b7c8d.tar.gz
samba-54576733d6c0511dc7379f964b1cb035913b7c8d.tar.xz
samba-54576733d6c0511dc7379f964b1cb035913b7c8d.zip
Make use of [un]marshall_sec_desc
Diffstat (limited to 'source/libads')
-rw-r--r--source/libads/ldap.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/source/libads/ldap.c b/source/libads/ldap.c
index 348ccacaee0..953693ce489 100644
--- a/source/libads/ldap.c
+++ b/source/libads/ldap.c
@@ -2384,20 +2384,22 @@ int ads_count_replies(ADS_STRUCT *ads, void *res)
LDAPMessage *msg, const char *field, SEC_DESC **sd)
{
struct berval **values;
- bool ret = False;
+ bool ret = true;
values = ldap_get_values_len(ads->ldap.ld, msg, field);
- if (!values) return False;
+ if (!values) return false;
if (values[0]) {
- prs_struct ps;
- prs_init(&ps, values[0]->bv_len, mem_ctx, UNMARSHALL);
- prs_copy_data_in(&ps, values[0]->bv_val, values[0]->bv_len);
- prs_set_offset(&ps,0);
-
- ret = sec_io_desc("sd", sd, &ps, 1);
- prs_mem_free(&ps);
+ NTSTATUS status;
+ status = unmarshall_sec_desc(mem_ctx,
+ (uint8 *)values[0]->bv_val,
+ values[0]->bv_len, sd);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("unmarshall_sec_desc failed: %s\n",
+ nt_errstr(status)));
+ ret = false;
+ }
}
ldap_value_free_len(values);