svn commit: samba r19109 - in
branches/SAMBA_4_0_RELEASE/source/lib/ldb: common ldb_ldap ldb_tdb
abartlet at samba.org
abartlet at samba.org
Fri Oct 6 03:40:48 GMT 2006
Author: abartlet
Date: 2006-10-06 03:40:45 +0000 (Fri, 06 Oct 2006)
New Revision: 19109
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19109
Log:
Merge fixes to ldb made since the TP3 release snapshot was taken.
Andrew Bartlett
Modified:
branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_dn.c
branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_utf8.c
branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_ldap/ldb_ldap.c
branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_tdb/ldb_cache.c
Changeset:
Modified: branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_dn.c
===================================================================
--- branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_dn.c 2006-10-06 03:39:00 UTC (rev 19108)
+++ branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_dn.c 2006-10-06 03:40:45 UTC (rev 19109)
@@ -345,6 +345,10 @@
/* Allocate a structure to hold the exploded DN */
edn = ldb_dn_new(mem_ctx);
+ if (edn == NULL) {
+ return NULL;
+ }
+
pdn = NULL;
/* Empty DNs */
@@ -670,6 +674,7 @@
dst.name = talloc_strdup(mem_ctx, src->name);
if (dst.name == NULL) {
talloc_free(dst.value.data);
+ dst.value.data = NULL;
}
return dst;
@@ -693,6 +698,7 @@
newdn->comp_num = num_el;
n = newdn->comp_num - 1;
newdn->components = talloc_array(newdn, struct ldb_dn_component, newdn->comp_num);
+ if (newdn->components == NULL) goto failed;
if (dn->comp_num == 0) return newdn;
e = dn->comp_num - 1;
@@ -813,6 +819,7 @@
int comp_num = dn2->comp_num;
if (dn1 != NULL) comp_num += dn1->comp_num;
newdn = ldb_dn_copy_partial(mem_ctx, dn2, comp_num);
+ LDB_DN_NULL_FAILED(newdn);
}
if (dn1 == NULL) {
@@ -822,6 +829,9 @@
for (i = 0; i < dn1->comp_num; i++) {
newdn->components[i] = ldb_dn_copy_component(newdn->components,
&(dn1->components[i]));
+ if (newdn->components[i].value.data == NULL) {
+ goto failed;
+ }
}
return newdn;
Modified: branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_utf8.c
===================================================================
--- branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_utf8.c 2006-10-06 03:39:00 UTC (rev 19108)
+++ branches/SAMBA_4_0_RELEASE/source/lib/ldb/common/ldb_utf8.c 2006-10-06 03:40:45 UTC (rev 19109)
@@ -126,7 +126,7 @@
{
int i;
char *ret = talloc_strdup(mem_ctx, s);
- if (!s) {
+ if (!ret) {
errno = ENOMEM;
return NULL;
}
Modified: branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_ldap/ldb_ldap.c
===================================================================
--- branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_ldap/ldb_ldap.c 2006-10-06 03:39:00 UTC (rev 19108)
+++ branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_ldap/ldb_ldap.c 2006-10-06 03:40:45 UTC (rev 19109)
@@ -210,10 +210,15 @@
}
for (i=0;i<count;i++) {
- el->values[i].data = talloc_memdup(el->values, bval[i]->bv_val, bval[i]->bv_len);
+ /* we have to ensure this is null terminated so that
+ ldb_msg_find_attr_as_string() can work */
+ el->values[i].data = talloc_size(el->values, bval[i]->bv_len+1);
if (!el->values[i].data) {
+ errno = ENOMEM;
return -1;
}
+ memcpy(el->values[i].data, bval[i]->bv_val, bval[i]->bv_len);
+ el->values[i].data[bval[i]->bv_len] = 0;
el->values[i].length = bval[i]->bv_len;
el->num_values++;
}
Modified: branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_tdb/ldb_cache.c
===================================================================
--- branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_tdb/ldb_cache.c 2006-10-06 03:39:00 UTC (rev 19108)
+++ branches/SAMBA_4_0_RELEASE/source/lib/ldb/ldb_tdb/ldb_cache.c 2006-10-06 03:40:45 UTC (rev 19109)
@@ -318,7 +318,7 @@
struct ltdb_private *ltdb = module->private_data;
struct ldb_dn *baseinfo_dn = NULL;
struct ldb_dn *indexlist_dn = NULL;
- double seq;
+ uint64_t seq;
if (ltdb->cache == NULL) {
ltdb->cache = talloc_zero(ltdb, struct ltdb_cache);
@@ -356,7 +356,7 @@
/* if the current internal sequence number is the same as the one
in the database then assume the rest of the cache is OK */
- seq = ldb_msg_find_attr_as_double(ltdb->cache->baseinfo, LTDB_SEQUENCE_NUMBER, 0);
+ seq = ldb_msg_find_attr_as_uint64(ltdb->cache->baseinfo, LTDB_SEQUENCE_NUMBER, 0);
if (seq == ltdb->sequence_number) {
goto done;
}
More information about the samba-cvs
mailing list