1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-21 03:17:08 +03:00

152 Commits

Author SHA1 Message Date
Andrew Bartlett
35e56d2b71 dsdb: Use dsdb_next_callback() rather than a no-op per-module callback
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-09-16 19:36:52 +02:00
Matthieu Patou
2bdf2c56cc dsdb: make the name of non related class more obvious
Signed-off-by: Matthieu Patou <mat@matws.net>

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2013-05-14 15:21:31 +12:00
Stefan Metzmacher
ff274bafeb s4:dsdb/objectclass: do not pass the callers controls on helper searches
We add AS_SYSTEM and SHOW_RECYCLED to the helper search,
don't let the caller specify additional controls.

This also fixes a problem when the caller also specified AS_SYSTEM.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-11-30 17:17:21 +01:00
Stefan Metzmacher
844b736a1d s4:dsdb/objectclass: do helper searches AS_SYSTEM and with SHOW_RECYCLED
Note that SHOW_RECYCLED implies SHOW_DELETED.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-11-30 17:17:19 +01:00
Matthias Dieter Wallnöfer
5f8006cb64 s4:dsdb_sort_objectClass_attr - simplify memory context handling
Do only require the out memory context and build the temporary one in
the body of the function. This greatly simplifies the callers.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2012-08-22 01:31:55 +02:00
Andrew Bartlett
9566786853 s4-dsdb: Add mem_ctx argument to samdb_ntds_settings_dn
As this value is calculated new each time, we need to give it a context to live on.

If the value is the forced value during provision, a reference is taken.

This was responsible for the memory leak in the replication process.  In the
example I was given, this DN appeared in memory 13596 times!

Andrew Bartlett

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Tue Aug 14 10:05:14 CEST 2012 on sn-devel-104
2012-08-14 10:05:14 +02:00
Matthias Dieter Wallnöfer
0c44d46f24 s4:dsdb/samdb/ldb_modules/schema.c - move "get_last_structural_class()" into "util.c"
And remove this helper module - it does not have much sense keeping it.

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Wed Apr 11 06:31:51 CEST 2012 on sn-devel-104
2012-04-11 06:31:51 +02:00
Matthias Dieter Wallnöfer
3fa5f84d2f s4:dsdb - introduce a only constant-time "get_last_structural_class()" call
With the redesign of the previous patches this has become possible.
2012-04-11 12:50:16 +10:00
Matthias Dieter Wallnöfer
4eb0d42291 s4:dsdb - move "objectclass_sort()" out from the objectclass LDB module into the schema code
This allows it to be useful for the dbchecker utility in respect to
object class problems.
Fix up the API to only work with standardised LDB "ldb_message_element"
structures which do allow much easier interoperations. As a consequence this
leads to some changes in the objectclass module as well.
2012-04-11 12:50:16 +10:00
Matthias Dieter Wallnöfer
206421c8fd s4:dsdb - enhance "get_last_structural_class()" for optimisations
If the objectclass entry has been sorted before we are able to determine
the (last) structural or 88 object class in constant time.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2012-03-26 00:57:29 +02:00
Matthias Dieter Wallnöfer
0f8ffa9ce1 s4:objectclass LDB module - fix up the sorting in respect to structural or 88 objectclasses
Please have a look at MS-ADTS 3.1.1.1.4.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2012-03-26 00:57:29 +02:00
Matthias Dieter Wallnöfer
52340b86a2 s4:objectclass LDB module - clean up "objectclass_sort()"
Make it easier to comprehend

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2012-03-26 00:57:28 +02:00
Matthieu Patou
f39426c8ae s4-dsdb: Relax the conditions where we can't do a subtree delete
If the parent object is a SAM object (as defined in 3.1.1.5.2.3
Special Classes and Attributes of MS-ADTS) then we can use the subtree
delete control even if the object is a critical one.

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Mon Dec 19 14:32:19 CET 2011 on sn-devel-104
2011-12-19 14:32:18 +01:00
Matthias Dieter Wallnöfer
751bab4fb2 s4:objectclass LDB module - objectclass modify op. - remove superflous "talloc_strdup"
We are adding strings embedded in the schema structure which is basically
global and lives longer than the request - hence no duplication needed.

Reviewed-by: abartlet
2011-10-27 18:52:29 +02:00
Matthias Dieter Wallnöfer
184c17587c s4:objectclass LDB module - objectclass modify operations
According to bug #8486 the modification to direct related structural
object classes is possible (equal, child, parent).

Reviewed-by: abartlet
2011-10-27 18:52:29 +02:00
Matthias Dieter Wallnöfer
68b3770c45 s4:objectclass LDB module - forbid to add unrelated objectclasses
E.g. unsatisfied abstract objectclasses, additional top-most structural
classes

Reviewed-by: abartlet
2011-10-27 18:52:29 +02:00
Matthias Dieter Wallnöfer
730257f4c0 s4:objectclass LDB module - "objectclass_add" - small optimisation
This saves us from doing one "ldb_msg_find_element".

Reviewed-by: abartlet
2011-10-27 18:52:29 +02:00
Matthias Dieter Wallnöfer
82d9c9e5a0 s4:objectclass LDB module - "check_rodc_ntdsdsa_add"
For convention use "ldb_attr_cmp()".

Reviewed-by: abartlet
2011-10-27 18:52:29 +02:00
Matthias Dieter Wallnöfer
3756508fec s4:objectclass LDB module - update copyright
Reviewed-by: abartlet
2011-10-27 18:52:28 +02:00
Andrew Bartlett
d40fe50a67 build: avoid util.h as a public header name due to conflict with MacOS 2011-09-23 09:24:03 +02:00
Matthieu Patou
326e2dd681 s4-dsdb: Improve the calculation of system flags according to 3.1.1.5.2.4 2011-07-26 23:34:24 +02:00
Matthieu Patou
72ca5c39c9 s4-dsdb: Use controls provided during the request while searching for object to delete
If the parent request specify the show_deleted control we must use it in
order to be able to see the deleted objects.

Also we just allow to trusted connections with the system account to
remove deleted objects, others receive an unwilling to perform.
2011-07-21 11:44:35 +10:00
Matthias Dieter Wallnöfer
b7de06e8e7 s4:objectclass LDB module - "ldb_msg_sanity_check" call not really needed
This call should only be performed at the beginning of a request.
"ldb_msg_sanity_check" checks for DN validity (which should already have been
done at the beginning of the request) and empty attributes (which should
be done by the "objectclass_attrs" LDB module).

Hence it is superflous here.

Reviewed-by: abartlet
2011-04-07 15:53:20 +02:00
Matthias Dieter Wallnöfer
1d8980df04 s4:objectclass LDB module - fix a comment - add a ")"
Reviewed-by: abartlet
2011-04-07 15:53:19 +02:00
Matthias Dieter Wallnöfer
746194cfc4 Revert "s4:objectclass LDB module - if we cannot find DN's parent then the DN itself is invalid"
This is not needed anymore with the new DN checking.

This reverts commit 5896b7299331aedd065397d2078c62d85bcf68f6.

Reviewed by: Tridge
2011-03-04 22:07:24 +01:00
Matthias Dieter Wallnöfer
86707c7cc4 s4:objectclass LDB module - fix a comment
Reviewed by: Tridge
2011-03-04 22:07:24 +01:00
Matthias Dieter Wallnöfer
5896b72993 s4:objectclass LDB module - if we cannot find DN's parent then the DN itself is invalid
ERR_INVALID_DN_SYNTAX fits better than ERR_OPERATION_ERROR in this case. This
one gets triggered if we perform "add" requests without the LDAP server.

Reviewed by: Tridge
2011-03-04 08:51:29 +01:00
Jelmer Vernooij
59a077d8f5 Fix some types
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Mon Feb 28 23:30:06 CET 2011 on sn-devel-104
2011-02-28 23:30:06 +01:00
Matthias Dieter Wallnöfer
3468f8de1e s4:dsdb/samdb/ldb_modules/objectclass.c - move LSA specific object checks into "objectclass_attrs" LDB module
LSA object classes are protected on both LDAP add and LDAP modify
operations, so I've refactored the previous check in the objectclass LDB
module only for LDAP adds in a new one in the objectclass_attrs LDB
module for both adds and modifies.
This is the result of the investigations done by Hongwei Sun and I in
the last months.
Interestingly these protection mechansim doesn't apply on LDAP deletes!

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2011-01-25 12:27:20 +01:00
Andrew Tridgell
87f3151047 s4-dsdb: pass parent request to dsdb_module_*() functions
this preserves the request hierarchy for dsdb_module_*() calls inside
dsdb ldb modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-01-17 05:23:04 +01:00
Matthias Dieter Wallnöfer
8680c6f888 s4:objectclass LDB module - simply use "msg" when requesting the message 2010-11-26 13:10:01 +01:00
Matthias Dieter Wallnöfer
848010b570 s4:objectclass LDB module - move the "mem_ctx" allocation to a better place
It's only needed if we've a schema around.
2010-11-26 13:10:00 +01:00
Andrew Bartlett
7048ad11f5 s4-dsdb Reorganise and clarify the LSA objectClass check (forbidden on LDAP)
This arranged the check to avoid talloc_strdup() (the schema pointers
are constant, and can be relied upon), and checks the untrusted bit
first (it is faster), before the ldb_attr_cmp().

The strcmp() here was valid, if unusual, because the ldapDisplayName
values are already in the correct case, but strcasecmp() is more
correct, as for the small extra cost, we avoid a difficult to diagnose
bug later.

Andrew Bartlett

Signed-off-by: Matthias Dieter Wallnöfer <mdw@samba.org>
2010-11-26 13:10:00 +01:00
Andrew Bartlett
439a2d6983 s4-objectclass Use a specific local variable name, not 'value'
This makes it clearer what the local variable in use here does.

Andrew Bartlett

Signed-off-by: Matthias Dieter Wallnöfer <mdw@samba.org>
2010-11-26 13:09:59 +01:00
Matthias Dieter Wallnöfer
ae61408e2f s4:lsa RPC server / objectclass LDB module - fix the creation of trusted domain objects
Tridge pointed out that it is to dangerous to allow them to be created
with SYSTEM permissions. The solution using the "untrusted" flag should
be much more viable.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Thu Nov 25 13:05:56 CET 2010 on sn-devel-104
2010-11-25 13:05:56 +01:00
Matthias Dieter Wallnöfer
1352a9406f s4:objectclass LDB module - LSA objects - allow them if the SYSTEM control is specified
This fits better than the RELAX one.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Wed Nov 24 18:23:01 CET 2010 on sn-devel-104
2010-11-24 18:23:01 +01:00
Matthias Dieter Wallnöfer
8c01d6a837 s4:objectclass LDB module - move one checks into the "objectclass derivation loop"
This denies objects created from possible derivated classes from the prohibited
ones.

Also small cosmetic improvements for another check.
2010-11-24 17:39:18 +01:00
Matthias Dieter Wallnöfer
0a6834e630 s4:objectclass LDB module - some more or less cosmetic return value macro changes
Sometimes "ldb_module_oom" fits better than "ldb_operr" or "ldb_oom".
2010-11-24 17:39:18 +01:00
Matthias Dieter Wallnöfer
f863f434a0 s4:objectclass LDB module - the "olddn" is the special DN for rename requests 2010-11-16 13:29:49 +01:00
Matthias Dieter Wallnöfer
71a5ea93ff s4:objectclass LDB module - free "nc_root" after name context comparisons 2010-11-16 07:59:15 +00:00
Matthias Dieter Wallnöfer
061766e732 s4:objectclass LDB module - improve the default name context checking on modifications
Pointed out by abartlet
2010-11-15 22:31:04 +00:00
Matthias Dieter Wallnöfer
16e73c68cb s4:objectclass LDB module - implement the "objectClass" change restrictions on Windows 2000 forest function level
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Mon Nov 15 13:10:05 UTC 2010 on sn-devel-104
2010-11-15 13:10:05 +00:00
Matthias Dieter Wallnöfer
113a9c1806 s4:objectclass LDB module - multiple "objectClass" change elements are unfortunately still allowed
The test message has been compressed - therefore I've now used "modify_ldif".
2010-11-13 12:32:34 +01:00
Matthias Dieter Wallnöfer
37bd313304 s4:objectclass LDB module - we should not simply ignore additional "objectClass" attribute changes
There first one we perform all other tentatives are terminated with
ERR_ATTRIBUTE_OR_VALUE_EXISTS (tested against Windows).

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Fri Nov 12 19:39:07 UTC 2010 on sn-devel-104
2010-11-12 19:39:06 +00:00
Matthias Dieter Wallnöfer
feb00fe7cc s4:dsdb - proof against empty RDN values where expected
This should prevent crashes as pointed out on the mailing list.
2010-11-11 10:03:40 +01:00
Matthias Dieter Wallnöfer
e96c9df817 s4:objectclass LDB module - allow RDNs also to come from superclasses
Detected by a testcase written by Zahari Zahariev.
2010-11-11 10:03:40 +01:00
Matthias Dieter Wallnöfer
8caf0ed909 s4:objectclass LDB module - no idea why we'd need the "objectGUID" here 2010-11-08 10:51:45 +01:00
Matthias Dieter Wallnöfer
9d4eeaeb19 s4:objectclass LDB module - the structural objectclass has always to be specified
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Wed Nov  3 16:20:55 UTC 2010 on sn-devel-104
2010-11-03 16:20:55 +00:00
Andrew Tridgell
9103047782 s4-ldb: enable version checking in dsdb ldb modules 2010-11-01 13:05:04 +00:00
Andrew Tridgell
7eb2eed156 s4-dsdb: convert the rest of the ldb modules to the new module type 2010-11-01 18:55:19 +11:00