diff -u -r samba-3.6.6-orig/source3/winbindd/winbindd_rpc.c samba-3.6.6/source3/winbindd/winbindd_rpc.c --- samba-3.6.6-orig/source3/winbindd/winbindd_rpc.c 2014-05-22 19:28:00.000000000 +0200 +++ samba-3.6.6/source3/winbindd/winbindd_rpc.c 2014-05-22 19:50:35.000000000 +0200 @@ -580,8 +580,6 @@ &user_policy, &rid_array, &result); - num_groups = rid_array->count; - { NTSTATUS _result; dcerpc_samr_Close(b, mem_ctx, &user_policy, &_result); @@ -590,10 +588,15 @@ if (!NT_STATUS_IS_OK(status)) { return status; } - if (!NT_STATUS_IS_OK(result) || num_groups == 0) { + if (!NT_STATUS_IS_OK(result)) { + return result; + } + num_groups = rid_array->count; + if (num_groups == 0) { return result; } + user_grpsids = TALLOC_ARRAY(mem_ctx, struct dom_sid, num_groups); if (user_grpsids == NULL) { status = NT_STATUS_NO_MEMORY;