[SCM] Samba Shared Repository - branch master updated
Matthias Dieter Wallnöfer
mdw at samba.org
Mon Oct 18 13:02:01 MDT 2010
The branch, master has been updated
via 8556602 ldb:"ldb_schema_attribute_by_name_internal" - switch back to 32bit counters
via 48cd89e ldb:ldb_tdb.c - fix up counter variables
via 94a4458 ldb:ldb_tdb.c - improve the error outputs
via 3ead246 s4:"util_ldb" - remove some really unused dependancies
from a610ce4 libcli/nbt: we don't need LIBCLI_COMPOSITE anymore
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 8556602b048e825b35df314d6865f997823ec2bb
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Mon Oct 18 20:19:00 2010 +0200
ldb:"ldb_schema_attribute_by_name_internal" - switch back to 32bit counters
Use the signed counter for the binary search but use an unsigned one for
accessing the entry.
Autobuild-User: Matthias Dieter Wallnöfer <mdw at samba.org>
Autobuild-Date: Mon Oct 18 19:01:31 UTC 2010 on sn-devel-104
commit 48cd89e25d58d5d2fd0dbb7ce4a0e8b96e3e6044
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Mon Oct 18 20:10:17 2010 +0200
ldb:ldb_tdb.c - fix up counter variables
"find_element" returns an "int" since there is also the possibility that a
certain element doesn't exist - then "-1" is returned. But beside this
exception treat all other return values as unsigned.
commit 94a445869c5fa3bb6df542c494e8822478f790e8
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Mon Oct 18 20:07:49 2010 +0200
ldb:ldb_tdb.c - improve the error outputs
- Fix indentation
- Include always the failing DN
- Reorder the outputs to make them consistent
commit 3ead246062b927e44cb75e684cc67c41109d63c4
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date: Mon Oct 18 19:24:43 2010 +0200
s4:"util_ldb" - remove some really unused dependancies
-----------------------------------------------------------------------
Summary of changes:
source4/auth/credentials/config.mk | 2 +-
source4/auth/credentials/credentials_secrets.c | 1 -
source4/auth/ntlm/auth_sam.c | 1 -
source4/auth/wscript_build | 2 +-
source4/dsdb/samdb/ldb_modules/samba3sid.c | 1 -
source4/dsdb/samdb/ldb_modules/samldb.c | 1 -
source4/kdc/db-glue.c | 1 -
source4/lib/basic.mk | 2 +-
source4/lib/ldb-samba/wscript_build | 2 +-
source4/lib/ldb/common/ldb_attributes.c | 9 ++--
source4/lib/ldb/ldb_tdb/ldb_tdb.c | 51 +++++++++++++++--------
source4/libnet/libnet_join.c | 1 -
source4/nbt_server/dgram/netlogon.c | 1 -
13 files changed, 42 insertions(+), 33 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/auth/credentials/config.mk b/source4/auth/credentials/config.mk
index 9762966..2d35180 100644
--- a/source4/auth/credentials/config.mk
+++ b/source4/auth/credentials/config.mk
@@ -2,7 +2,7 @@
# Start SUBSYSTEM CREDENTIALS
[SUBSYSTEM::CREDENTIALS]
PUBLIC_DEPENDENCIES = \
- LIBCLI_AUTH SECRETS LIBCRYPTO KERBEROS UTIL_LDB HEIMDAL_GSSAPI
+ LIBCLI_AUTH SECRETS LIBCRYPTO KERBEROS HEIMDAL_GSSAPI
PRIVATE_DEPENDENCIES = \
SECRETS SAMDB
diff --git a/source4/auth/credentials/credentials_secrets.c b/source4/auth/credentials/credentials_secrets.c
index 8c8043c..210590c 100644
--- a/source4/auth/credentials/credentials_secrets.c
+++ b/source4/auth/credentials/credentials_secrets.c
@@ -27,7 +27,6 @@
#include "librpc/gen_ndr/samr.h" /* for struct samrPassword */
#include "param/secrets.h"
#include "system/filesys.h"
-#include "../lib/util/util_ldb.h"
#include "auth/credentials/credentials.h"
#include "auth/credentials/credentials_krb5.h"
#include "auth/kerberos/kerberos_util.h"
diff --git a/source4/auth/ntlm/auth_sam.c b/source4/auth/ntlm/auth_sam.c
index 8de33ff..259efec 100644
--- a/source4/auth/ntlm/auth_sam.c
+++ b/source4/auth/ntlm/auth_sam.c
@@ -22,7 +22,6 @@
#include "includes.h"
#include "system/time.h"
#include "lib/ldb/include/ldb.h"
-#include "../lib/util/util_ldb.h"
#include "libcli/ldap/ldap_ndr.h"
#include "libcli/security/security.h"
#include "auth/auth.h"
diff --git a/source4/auth/wscript_build b/source4/auth/wscript_build
index 38fb1b7..e44a032 100644
--- a/source4/auth/wscript_build
+++ b/source4/auth/wscript_build
@@ -33,7 +33,7 @@ bld.SAMBA_SUBSYSTEM('auth_system_session',
bld.SAMBA_SUBSYSTEM('auth_sam',
source='sam.c',
autoproto='auth_sam.h',
- public_deps='SAMDB UTIL_LDB LIBSECURITY ldb tevent',
+ public_deps='SAMDB LIBSECURITY ldb tevent',
deps=''
)
diff --git a/source4/dsdb/samdb/ldb_modules/samba3sid.c b/source4/dsdb/samdb/ldb_modules/samba3sid.c
index a5b3df1..f6db0d1 100644
--- a/source4/dsdb/samdb/ldb_modules/samba3sid.c
+++ b/source4/dsdb/samdb/ldb_modules/samba3sid.c
@@ -29,7 +29,6 @@
#include "dsdb/samdb/ldb_modules/util.h"
#include "libcli/security/security.h"
#include "librpc/gen_ndr/ndr_security.h"
-#include "../lib/util/util_ldb.h"
#include "ldb_wrap.h"
#include "param/param.h"
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c
index 3a971e8..8db93b2 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -37,7 +37,6 @@
#include "dsdb/samdb/ldb_modules/ridalloc.h"
#include "libcli/security/security.h"
#include "librpc/gen_ndr/ndr_security.h"
-#include "../lib/util/util_ldb.h"
#include "ldb_wrap.h"
#include "param/param.h"
diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c
index 9d6a230..e9ae5b3 100644
--- a/source4/kdc/db-glue.c
+++ b/source4/kdc/db-glue.c
@@ -30,7 +30,6 @@
#include "auth/auth.h"
#include "auth/credentials/credentials.h"
#include "auth/auth_sam.h"
-#include "../lib/util/util_ldb.h"
#include "dsdb/samdb/samdb.h"
#include "dsdb/common/util.h"
#include "librpc/ndr/libndr.h"
diff --git a/source4/lib/basic.mk b/source4/lib/basic.mk
index 4b40ed4..7df92d4 100644
--- a/source4/lib/basic.mk
+++ b/source4/lib/basic.mk
@@ -11,7 +11,7 @@ GENCACHE_OBJ_FILES = $(libgencachesrcdir)/gencache.o
[SUBSYSTEM::LDB_WRAP]
PUBLIC_DEPENDENCIES = LIBLDB
-PRIVATE_DEPENDENCIES = LDBSAMBA UTIL_LDB
+PRIVATE_DEPENDENCIES = LDBSAMBA
LDB_WRAP_OBJ_FILES = $(libsrcdir)/ldb_wrap.o
PUBLIC_HEADERS += $(libsrcdir)/ldb_wrap.h
diff --git a/source4/lib/ldb-samba/wscript_build b/source4/lib/ldb-samba/wscript_build
index fd07fd1..a2ac32b 100644
--- a/source4/lib/ldb-samba/wscript_build
+++ b/source4/lib/ldb-samba/wscript_build
@@ -9,7 +9,7 @@ bld.SAMBA_SUBSYSTEM('LDBSAMBA',
autoproto='ldif_handlers_proto.h',
public_deps='ldb',
public_headers='ldb_wrap.h',
- deps='LIBSECURITY LIBNDR NDR_DRSBLOBS CREDENTIALS UTIL_LDB NDR_DNSP SAMDB'
+ deps='LIBSECURITY LIBNDR NDR_DRSBLOBS CREDENTIALS NDR_DNSP SAMDB'
)
diff --git a/source4/lib/ldb/common/ldb_attributes.c b/source4/lib/ldb/common/ldb_attributes.c
index 13f4d32..ea6fafd 100644
--- a/source4/lib/ldb/common/ldb_attributes.c
+++ b/source4/lib/ldb/common/ldb_attributes.c
@@ -123,8 +123,8 @@ static const struct ldb_schema_attribute *ldb_schema_attribute_by_name_internal(
const char *name)
{
/* for binary search we need signed variables */
- long long int i, e, b = 0;
- int r;
+ int r, i, e, b = 0;
+ unsigned int u_i;
const struct ldb_schema_attribute *def = &ldb_attribute_default;
/* as handlers are sorted, '*' must be the first if present */
@@ -139,9 +139,10 @@ static const struct ldb_schema_attribute *ldb_schema_attribute_by_name_internal(
while (b <= e) {
i = (b + e) / 2;
- r = ldb_attr_cmp(name, ldb->schema.attributes[i].name);
+ u_i = (unsigned int) i;
+ r = ldb_attr_cmp(name, ldb->schema.attributes[u_i].name);
if (r == 0) {
- return &ldb->schema.attributes[i];
+ return &ldb->schema.attributes[u_i];
}
if (r < 0) {
e = i - 1;
diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
index f12bc58..4350537 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
@@ -4,7 +4,7 @@
Copyright (C) Andrew Tridgell 2004
Copyright (C) Stefan Metzmacher 2004
Copyright (C) Simo Sorce 2006-2008
- Copyright (C) Matthias Dieter Wallnöfer 2009
+ Copyright (C) Matthias Dieter Wallnöfer 2009-2010
** NOTE! The following LGPL license applies to the ldb
** library. This does NOT imply that all of Samba is released
@@ -296,7 +296,7 @@ static int ltdb_add_internal(struct ldb_module *module,
struct ldb_message_element *el = &msg->elements[i];
if (el->num_values == 0) {
- ldb_asprintf_errstring(ldb, "attribute %s on %s specified, but with 0 values (illegal)",
+ ldb_asprintf_errstring(ldb, "attribute '%s' on '%s' specified, but with 0 values (illegal)",
el->name, ldb_dn_get_linearized(msg->dn));
return LDB_ERR_CONSTRAINT_VIOLATION;
}
@@ -548,7 +548,8 @@ static int msg_delete_element(struct ldb_module *module,
return LDB_ERR_NO_SUCH_ATTRIBUTE;
}
- el = &msg->elements[found];
+ i = (unsigned int) found;
+ el = &(msg->elements[i]);
a = ldb_schema_attribute_by_name(ldb, el->name);
@@ -608,7 +609,7 @@ int ltdb_modify_internal(struct ldb_module *module,
struct ltdb_private *ltdb = talloc_get_type(data, struct ltdb_private);
TDB_DATA tdb_key, tdb_data;
struct ldb_message *msg2;
- unsigned i, j, k;
+ unsigned int i, j, k;
int ret = LDB_SUCCESS, idx;
struct ldb_control *control_permissive = NULL;
@@ -655,7 +656,8 @@ int ltdb_modify_internal(struct ldb_module *module,
case LDB_FLAG_MOD_ADD:
if (el->num_values == 0) {
- ldb_asprintf_errstring(ldb, "attribute %s on %s specified, but with 0 values (illigal)",
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': attribute on '%s' specified, but with 0 values (illegal)",
el->name, ldb_dn_get_linearized(msg2->dn));
ret = LDB_ERR_CONSTRAINT_VIOLATION;
goto done;
@@ -691,12 +693,14 @@ int ltdb_modify_internal(struct ldb_module *module,
ret = LDB_ERR_OTHER;
goto done;
}
- ret = ltdb_index_add_element(module, msg2->dn, el);
+ ret = ltdb_index_add_element(module, msg2->dn,
+ el);
if (ret != LDB_SUCCESS) {
goto done;
}
} else {
- el2 = &(msg2->elements[idx]);
+ j = (unsigned int) idx;
+ el2 = &(msg2->elements[j]);
/* Check that values don't exist yet on multi-
valued attributes or aren't provided twice */
@@ -713,12 +717,16 @@ int ltdb_modify_internal(struct ldb_module *module,
continue;
}
- ldb_asprintf_errstring(ldb, "%s: value #%d already exists", el->name, j);
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': value #%u on '%s' already exists",
+ el->name, j, ldb_dn_get_linearized(msg2->dn));
ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
goto done;
}
if (ldb_msg_find_val(el, &el->values[j]) != &el->values[j]) {
- ldb_asprintf_errstring(ldb, "%s: value #%d provided more than once", el->name, j);
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': value #%u on '%s' provided more than once",
+ el->name, j, ldb_dn_get_linearized(msg2->dn));
ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
goto done;
}
@@ -756,22 +764,27 @@ int ltdb_modify_internal(struct ldb_module *module,
/* TODO: This is O(n^2) - replace with more efficient check */
for (j=0; j<el->num_values; j++) {
if (ldb_msg_find_val(el, &el->values[j]) != &el->values[j]) {
- ldb_asprintf_errstring(ldb, "%s: value #%d provided more than once", el->name, j);
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': value #%u on '%s' provided more than once",
+ el->name, j, ldb_dn_get_linearized(msg2->dn));
ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
goto done;
}
}
+ /* Checks if element already exists */
idx = find_element(msg2, el->name);
if (idx != -1) {
- el2 = &(msg2->elements[idx]);
+ j = (unsigned int) idx;
+ el2 = &(msg2->elements[j]);
if (ldb_msg_element_compare(el, el2) == 0) {
/* we are replacing with the same values */
continue;
}
/* Delete the attribute if it exists in the DB */
- if (msg_delete_attribute(module, ldb, msg2, el->name) != 0) {
+ if (msg_delete_attribute(module, ldb, msg2,
+ el->name) != 0) {
ret = LDB_ERR_OTHER;
goto done;
}
@@ -805,7 +818,8 @@ int ltdb_modify_internal(struct ldb_module *module,
control_permissive) {
ret = LDB_SUCCESS;
} else {
- ldb_asprintf_errstring(ldb, "No such attribute: %s for delete on %s",
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': no such attribute for delete on '%s'",
msg->elements[i].name, dn);
}
if (ret != LDB_SUCCESS) {
@@ -822,7 +836,8 @@ int ltdb_modify_internal(struct ldb_module *module,
control_permissive) {
ret = LDB_SUCCESS;
} else {
- ldb_asprintf_errstring(ldb, "No matching attribute value when deleting attribute: %s on %s",
+ ldb_asprintf_errstring(ldb,
+ "attribute '%s': no matching attribute value while deleting attribute on '%s'",
msg->elements[i].name, dn);
}
if (ret != LDB_SUCCESS) {
@@ -833,9 +848,9 @@ int ltdb_modify_internal(struct ldb_module *module,
break;
default:
ldb_asprintf_errstring(ldb,
- "Invalid ldb_modify flags on %s: 0x%x",
- msg->elements[i].name,
- msg->elements[i].flags & LDB_FLAG_MOD_MASK);
+ "attribute '%s': invalid modify flags on '%s': 0x%x",
+ msg->elements[i].name, ldb_dn_get_linearized(msg->dn),
+ msg->elements[i].flags & LDB_FLAG_MOD_MASK);
ret = LDB_ERR_PROTOCOL_ERROR;
goto done;
}
@@ -1262,7 +1277,7 @@ static int ltdb_handle_request(struct ldb_module *module,
struct ltdb_context *ac;
struct tevent_timer *te;
struct timeval tv;
- int i;
+ unsigned int i;
ldb = ldb_module_get_ctx(module);
diff --git a/source4/libnet/libnet_join.c b/source4/libnet/libnet_join.c
index da21108..6c030be 100644
--- a/source4/libnet/libnet_join.c
+++ b/source4/libnet/libnet_join.c
@@ -27,7 +27,6 @@
#include "param/secrets.h"
#include "dsdb/samdb/samdb.h"
#include "ldb_wrap.h"
-#include "../lib/util/util_ldb.h"
#include "libcli/security/security.h"
#include "auth/credentials/credentials.h"
#include "auth/credentials/credentials_krb5.h"
diff --git a/source4/nbt_server/dgram/netlogon.c b/source4/nbt_server/dgram/netlogon.c
index 8e231cc..81ee4c6 100644
--- a/source4/nbt_server/dgram/netlogon.c
+++ b/source4/nbt_server/dgram/netlogon.c
@@ -26,7 +26,6 @@
#include "lib/ldb/include/ldb.h"
#include "dsdb/samdb/samdb.h"
#include "auth/auth.h"
-#include "../lib/util/util_ldb.h"
#include "param/param.h"
#include "smbd/service_task.h"
#include "cldap_server/cldap_server.h"
--
Samba Shared Repository
More information about the samba-cvs
mailing list