]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:dcesrv_samr - Fix up "EnumDomainGroups" and "QueryDisplayInfo" calls
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Wed, 3 Mar 2010 10:22:07 +0000 (11:22 +0100)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Wed, 3 Mar 2010 16:15:31 +0000 (17:15 +0100)
We need to look for both global and universal group types when querying them.
Found by ekacnet (http://lists.samba.org/archive/samba-technical/2010-March/069777.html).

source4/rpc_server/samr/dcesrv_samr.c

index edfacfb4f4b776db2abacea03b46709f8ecd9580..b61c6f471d28a50806af2267d94cc103e55ad8ea 100644 (file)
@@ -1139,7 +1139,8 @@ static NTSTATUS dcesrv_samr_EnumDomainGroups(struct dcesrv_call_state *dce_call,
        ldb_cnt = samdb_search_domain(d_state->sam_ctx, mem_ctx,
                                      d_state->domain_dn, &res, attrs,
                                      d_state->domain_sid,
-                                     "(&(grouptype=%d)(objectclass=group))",
+                                     "(&(|(groupType=%d)(groupType=%d))(objectClass=group))",
+                                     GTYPE_SECURITY_UNIVERSAL_GROUP,
                                      GTYPE_SECURITY_GLOBAL_GROUP);
        if (ldb_cnt == -1) {
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
@@ -3776,8 +3777,10 @@ static NTSTATUS dcesrv_samr_QueryDisplayInfo(struct dcesrv_call_state *dce_call,
                break;
        case 3:
        case 5:
-               filter = talloc_asprintf(mem_ctx, "(&(grouptype=%d)"
-                                        "(objectclass=group))",
+               filter = talloc_asprintf(mem_ctx,
+                                        "(&(|(groupType=%d)(groupType=%d))"
+                                        "(objectClass=group))",
+                                        GTYPE_SECURITY_UNIVERSAL_GROUP,
                                         GTYPE_SECURITY_GLOBAL_GROUP);
                break;
        default: