diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/netapi/group.c | 2 | ||||
-rw-r--r-- | source3/libsmb/clispnego.c | 4 | ||||
-rw-r--r-- | source3/rpc_server/srv_samr_nt.c | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/source3/lib/netapi/group.c b/source3/lib/netapi/group.c index 8dba4b8838..95c012a7f6 100644 --- a/source3/lib/netapi/group.c +++ b/source3/lib/netapi/group.c @@ -1243,7 +1243,7 @@ WERROR NetGroupEnum_r(struct libnetapi_ctx *ctx, goto done; } - if (r->out.resume_handle) { + if (r->out.resume_handle && info.info3.count > 0) { *r->out.resume_handle = info.info3.entries[info.info3.count-1].idx; } diff --git a/source3/libsmb/clispnego.c b/source3/libsmb/clispnego.c index fd312a4c0a..fb95d71925 100644 --- a/source3/libsmb/clispnego.c +++ b/source3/libsmb/clispnego.c @@ -152,7 +152,7 @@ bool spnego_parse_negTokenInit(DATA_BLOB blob, for (i=0; asn1_tag_remaining(data) > 0 && i < ASN1_MAX_OIDS-1; i++) { const char *oid_str = NULL; asn1_read_OID(data,NULL,&oid_str); - OIDs[i] = oid_str; + OIDs[i] = CONST_DISCARD(char *, oid_str); } OIDs[i] = NULL; asn1_end_tag(data); @@ -257,7 +257,7 @@ bool parse_negTokenTarg(DATA_BLOB blob, char *OIDs[ASN1_MAX_OIDS], DATA_BLOB *se for (i=0; asn1_tag_remaining(data) > 0 && i < ASN1_MAX_OIDS-1; i++) { const char *oid_str = NULL; asn1_read_OID(data,NULL,&oid_str); - OIDs[i] = oid_str; + OIDs[i] = CONST_DISCARD(char *, oid_str); } OIDs[i] = NULL; asn1_end_tag(data); diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index d08bb50bb9..36be832a75 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -4908,6 +4908,8 @@ NTSTATUS _samr_DeleteUser(pipes_struct *p, if (!close_policy_hnd(p, r->in.user_handle)) return NT_STATUS_OBJECT_NAME_INVALID; + ZERO_STRUCTP(r->out.user_handle); + force_flush_samr_cache(disp_info); return NT_STATUS_OK; |