[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Wed Dec 14 05:30:02 UTC 2022
The branch, master has been updated
via ac78cb71d69 libads: Save intermediate NULL checks with talloc_asprintf_addbuf()
via 300ad4ff127 lib: Save intermediate NULL checks with talloc_asprintf_addbuf()
via 4156d37db17 winbind: Save lines with talloc_asprintf_addbuf()
via f25b6de771d winbind: Save an intermediate NULL check with talloc_asprintf_addbuf()
via fa8a657b91c auth4: Save lines with talloc_asprintf_addbuf() in authsam_domain_group_filter()
via 6b6f8debb5d libcldap: Save lines in cldap_netlogon_create_filter() with talloc_asprintf_addbuf()
via c86112fe90b dns_server: Use talloc_asprintf_addbuf() in b9_format()
via cbcf7f0d21b lib: Use talloc_asprintf_addbuf() in rdn_name_add()
via ffba59b5c0b lib: Use talloc_asprintf_addbuf() in ldb_module_call_chain()
via fe8895c83c5 lib: Use talloc_asprintf_addbuf() in print_socket_options()
via bcdbe6ef6b5 lib: Use talloc_asprintf_addbuf() in ldif_write_prefixMap()
via c692b5c95bd lib: Use talloc_asprintf_addbuf() in str_list_join_shell()
via 2c7766c28f2 lib: Use talloc_asprintf_addbuf() in str_list_join()
via 101396ab765 lib: Use talloc_asprintf_addbuf() in debug.c
via ccb5bafe93e lib: Move talloc_asprintf_addbuf() to talloc
via 7870e82cb44 lib: Fix whitespace
from 5955dc1e4fd smbd: set long process name of smbd child processes to "smbd: <CLIENT IP>"
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit ac78cb71d69d0307a668311e94e7181db6ad840e
Author: Volker Lendecke <vl at samba.org>
Date: Wed Nov 30 14:48:33 2022 +0100
libads: Save intermediate NULL checks with talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Wed Dec 14 05:29:51 UTC 2022 on sn-devel-184
commit 300ad4ff1273b8656986e4e7853418c9238122ca
Author: Volker Lendecke <vl at samba.org>
Date: Wed Nov 30 14:44:13 2022 +0100
lib: Save intermediate NULL checks with talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 4156d37db177b3b047fc0a448912d9bcb9354994
Author: Volker Lendecke <vl at samba.org>
Date: Wed Nov 30 14:28:54 2022 +0100
winbind: Save lines with talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit f25b6de771df587e58a28ae417bb5a2f596ec5a2
Author: Volker Lendecke <vl at samba.org>
Date: Wed Nov 30 14:23:26 2022 +0100
winbind: Save an intermediate NULL check with talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit fa8a657b91c123849eb40f74dbce6974ec04338b
Author: Volker Lendecke <vl at samba.org>
Date: Tue Nov 29 10:48:25 2022 +0100
auth4: Save lines with talloc_asprintf_addbuf() in authsam_domain_group_filter()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6b6f8debb5dedf1520a7bedfa0277849f70683dd
Author: Volker Lendecke <vl at samba.org>
Date: Tue Nov 29 10:46:42 2022 +0100
libcldap: Save lines in cldap_netlogon_create_filter() with talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c86112fe90b6ebd2f4206c9c2f78b845543cb96e
Author: Volker Lendecke <vl at samba.org>
Date: Tue Nov 29 10:37:03 2022 +0100
dns_server: Use talloc_asprintf_addbuf() in b9_format()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit cbcf7f0d21b146b52bf472a3627b7ea8cd3d0b80
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 11:25:32 2022 +0100
lib: Use talloc_asprintf_addbuf() in rdn_name_add()
Add implicit NULL checks
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit ffba59b5c0b584d503f223dd5bcde84799b5d0c5
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 11:07:25 2022 +0100
lib: Use talloc_asprintf_addbuf() in ldb_module_call_chain()
This was exactly what talloc_asprintf_addbuf() does.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit fe8895c83c560f424edd35d9394414c2801127d2
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 11:01:16 2022 +0100
lib: Use talloc_asprintf_addbuf() in print_socket_options()
With the proper NULL checks we don't need the stackframe,
use a passed in context instead.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit bcdbe6ef6b59ae3638f263fbd5ddf4107c3f52cf
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 10:58:46 2022 +0100
lib: Use talloc_asprintf_addbuf() in ldif_write_prefixMap()
The first call of talloc_asprintf_append() did not have a NULL check.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c692b5c95bdc0d96ab7797a59b94addaa1c80d94
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 10:55:04 2022 +0100
lib: Use talloc_asprintf_addbuf() in str_list_join_shell()
This adds proper NULL checks via talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 2c7766c28f2801d0b103d6a5046098810a4f0bee
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 10:43:06 2022 +0100
lib: Use talloc_asprintf_addbuf() in str_list_join()
This adds intermediate NULL checks via talloc_asprintf_addbuf()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 101396ab765a5cad90b43165253c960b579a2f1d
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 10:38:50 2022 +0100
lib: Use talloc_asprintf_addbuf() in debug.c
Slightly simplify debug_list_class_names_and_levels()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit ccb5bafe93eb431ba53569b5176317bcbdeae322
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 10:19:54 2022 +0100
lib: Move talloc_asprintf_addbuf() to talloc
I wanted to use this in debug.c, but this would have meant to pollute
debug's deps with a lot of stuff. Also, looking through uses of
talloc_asprint_append(), very many of those don't do NULL checks
properly and could benefit from the _addbuf() flavor. We can add a
vasprintf variant later if the need shows up.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 7870e82cb4405a983f106a119203f1e193cb2f12
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 28 08:35:57 2022 +0100
lib: Fix whitespace
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/ldb-samba/ldif_handlers.c | 69 +++++++++----------
lib/ldb/common/ldb_dn.c | 14 ++--
lib/ldb/common/ldb_modules.c | 9 +--
lib/ldb/modules/rdn_name.c | 16 ++---
...oc-util-2.3.0.sigs => pytalloc-util-2.3.5.sigs} | 0
.../ABI/{talloc-2.1.11.sigs => talloc-2.3.5.sigs} | 1 +
lib/talloc/talloc.c | 23 +++++++
lib/talloc/talloc.h | 14 ++++
lib/talloc/wscript | 2 +-
lib/util/debug.c | 15 ++--
lib/util/samba_util.h | 14 ----
lib/util/util_net.c | 19 ++----
lib/util/util_str.c | 23 -------
lib/util/util_strlist.c | 55 +++++++--------
libcli/cldap/cldap.c | 42 ++++--------
source3/lib/substitute.c | 34 +++++-----
source3/libads/ldap_schema.c | 79 ++++++++++------------
source3/winbindd/idmap_ad.c | 11 +--
source3/winbindd/winbindd_misc.c | 4 +-
source3/winbindd/winbindd_wins_byname.c | 11 ++-
source4/auth/sam.c | 18 ++---
source4/dns_server/dlz_bind9.c | 2 +-
22 files changed, 208 insertions(+), 267 deletions(-)
copy lib/talloc/ABI/{pytalloc-util-2.3.0.sigs => pytalloc-util-2.3.5.sigs} (100%)
copy lib/talloc/ABI/{talloc-2.1.11.sigs => talloc-2.3.5.sigs} (98%)
Changeset truncated at 500 lines:
diff --git a/lib/ldb-samba/ldif_handlers.c b/lib/ldb-samba/ldif_handlers.c
index 78a433748bb..b8f04747456 100644
--- a/lib/ldb-samba/ldif_handlers.c
+++ b/lib/ldb-samba/ldif_handlers.c
@@ -1,4 +1,4 @@
-/*
+/*
ldb database library - ldif handlers for Samba
Copyright (C) Andrew Tridgell 2005
@@ -7,7 +7,7 @@
** NOTE! The following LGPL license applies to the ldb
** library. This does NOT imply that all of Samba is released
** under the LGPL
-
+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
@@ -59,7 +59,7 @@ static int ldif_write_NDR(struct ldb_context *ldb, void *mem_ctx,
return ldb_handler_copy(ldb, mem_ctx, in, out);
}
p = talloc_size(mem_ctx, struct_size);
- err = ndr_pull_struct_blob(in, mem_ctx,
+ err = ndr_pull_struct_blob(in, mem_ctx,
p, pull_fn);
if (err != NDR_ERR_SUCCESS) {
/* fail in not in mask_error mode */
@@ -74,7 +74,7 @@ static int ldif_write_NDR(struct ldb_context *ldb, void *mem_ctx,
out->data = (uint8_t *)ndr_print_struct_string(mem_ctx, print_fn, "NDR", p);
talloc_free(p);
if (out->data == NULL) {
- return ldb_handler_copy(ldb, mem_ctx, in, out);
+ return ldb_handler_copy(ldb, mem_ctx, in, out);
}
out->length = strlen((char *)out->data);
return 0;
@@ -95,18 +95,18 @@ static int ldif_read_objectSid(struct ldb_context *ldb, void *mem_ctx,
char p[in->length+1];
memcpy(p, in->data, in->length);
p[in->length] = '\0';
-
+
ret = dom_sid_parse(p, &sid);
if (ret == false) {
return -1;
}
-
+
*out = data_blob_talloc(mem_ctx, NULL,
ndr_size_dom_sid(&sid, 0));
if (out->data == NULL) {
return -1;
}
-
+
ndr_err = ndr_push_struct_into_fixed_blob(out, &sid,
(ndr_push_flags_fn_t)ndr_push_dom_sid);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -144,7 +144,7 @@ bool ldif_comparision_objectSid_isString(const struct ldb_val *v)
}
if (strncmp("S-", (const char *)v->data, 2) != 0) return false;
-
+
return true;
}
@@ -208,7 +208,7 @@ static int extended_dn_read_SID(struct ldb_context *ldb, void *mem_ctx,
return 0;
}
}
-
+
/* Perhaps not a string after all */
*out = data_blob_talloc(mem_ctx, NULL, in->length/2+1);
@@ -290,13 +290,13 @@ static int extended_dn_read_GUID(struct ldb_context *ldb, void *mem_ctx,
if (in->length != 32) {
return -1;
}
-
+
*out = data_blob_talloc(mem_ctx, NULL, in->length/2+1);
-
+
if (!out->data) {
return -1;
}
-
+
(*out).length = strhex_to_str((char *)out->data, out->length,
(const char *)in->data, in->length);
@@ -407,12 +407,12 @@ static int ldif_write_ntSecurityDescriptor(struct ldb_context *ldb, void *mem_ct
enum ndr_err_code ndr_err;
if (ldb_get_flags(ldb) & LDB_FLG_SHOW_BINARY) {
- return ldif_write_NDR(ldb, mem_ctx, in, out,
+ return ldif_write_NDR(ldb, mem_ctx, in, out,
sizeof(struct security_descriptor),
(ndr_pull_flags_fn_t)ndr_pull_security_descriptor,
(ndr_print_fn_t)ndr_print_security_descriptor,
true);
-
+
}
sd = talloc(mem_ctx, struct security_descriptor);
@@ -457,7 +457,7 @@ static int ldif_write_sddlSecurityDescriptor(struct ldb_context *ldb, void *mem_
return ldb_handler_copy(ldb, mem_ctx, in, out);
}
-/*
+/*
canonicalise an objectCategory. We use the long form as the canonical form:
'person' becomes cn=Person,cn=Schema,cn=Configuration,<basedn>
@@ -588,7 +588,7 @@ static int ldif_read_prefixMap(struct ldb_context *ldb, void *mem_ctx,
/* If this does not parse, then it is probably the text version, and we should try it that way */
blob->version = PREFIX_MAP_VERSION_DSDB;
-
+
string = talloc_strndup(mem_ctx, (const char *)in->data, in->length);
if (string == NULL) {
talloc_free(blob);
@@ -612,9 +612,9 @@ static int ldif_read_prefixMap(struct ldb_context *ldb, void *mem_ctx,
if (line == p) {
break;
}
-
- blob->ctr.dsdb.mappings = talloc_realloc(blob,
- blob->ctr.dsdb.mappings,
+
+ blob->ctr.dsdb.mappings = talloc_realloc(blob,
+ blob->ctr.dsdb.mappings,
struct drsuapi_DsReplicaOIDMapping,
blob->ctr.dsdb.num_mappings+1);
if (!blob->ctr.dsdb.mappings) {
@@ -650,7 +650,7 @@ static int ldif_read_prefixMap(struct ldb_context *ldb, void *mem_ctx,
}
}
- ndr_err = ndr_push_struct_blob(out, mem_ctx,
+ ndr_err = ndr_push_struct_blob(out, mem_ctx,
blob,
(ndr_push_flags_fn_t)ndr_push_prefixMapBlob);
talloc_free(tmp_ctx);
@@ -694,7 +694,7 @@ static int ldif_write_prefixMap(struct ldb_context *ldb, void *mem_ctx,
if (blob == NULL) {
return -1;
}
- ndr_err = ndr_pull_struct_blob_all(in, blob,
+ ndr_err = ndr_pull_struct_blob_all(in, blob,
blob,
(ndr_pull_flags_fn_t)ndr_pull_prefixMapBlob);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -713,7 +713,7 @@ static int ldif_write_prefixMap(struct ldb_context *ldb, void *mem_ctx,
char *partial_oid = NULL;
if (i > 0) {
- string = talloc_asprintf_append(string, ";");
+ talloc_asprintf_addbuf(&string, ";");
}
oid_blob = data_blob_const(blob->ctr.dsdb.mappings[i].oid.binary_oid,
@@ -723,13 +723,10 @@ static int ldif_write_prefixMap(struct ldb_context *ldb, void *mem_ctx,
blob->ctr.dsdb.mappings[i].id_prefix));
goto failed;
}
- string = talloc_asprintf_append(string, "%u:%s",
- blob->ctr.dsdb.mappings[i].id_prefix,
- partial_oid);
+ talloc_asprintf_addbuf(&string, "%u:%s",
+ blob->ctr.dsdb.mappings[i].id_prefix,
+ partial_oid);
talloc_free(discard_const(partial_oid));
- if (string == NULL) {
- goto failed;
- }
}
talloc_free(blob);
@@ -750,7 +747,7 @@ static bool ldif_comparision_prefixMap_isString(const struct ldb_val *v)
if (IVAL(v->data, 0) == PREFIX_MAP_VERSION_DSDB) {
return false;
}
-
+
return true;
}
@@ -947,7 +944,7 @@ static int ldif_comparison_int64(struct ldb_context *ldb, void *mem_ctx,
static int ldif_write_repsFromTo(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
- return ldif_write_NDR(ldb, mem_ctx, in, out,
+ return ldif_write_NDR(ldb, mem_ctx, in, out,
sizeof(struct repsFromToBlob),
(ndr_pull_flags_fn_t)ndr_pull_repsFromToBlob,
(ndr_print_fn_t)ndr_print_repsFromToBlob,
@@ -960,7 +957,7 @@ static int ldif_write_repsFromTo(struct ldb_context *ldb, void *mem_ctx,
static int ldif_write_replPropertyMetaData(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
- return ldif_write_NDR(ldb, mem_ctx, in, out,
+ return ldif_write_NDR(ldb, mem_ctx, in, out,
sizeof(struct replPropertyMetaDataBlob),
(ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob,
(ndr_print_fn_t)ndr_print_replPropertyMetaDataBlob,
@@ -973,7 +970,7 @@ static int ldif_write_replPropertyMetaData(struct ldb_context *ldb, void *mem_ct
static int ldif_write_replUpToDateVector(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
- return ldif_write_NDR(ldb, mem_ctx, in, out,
+ return ldif_write_NDR(ldb, mem_ctx, in, out,
sizeof(struct replUpToDateVectorBlob),
(ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob,
(ndr_print_fn_t)ndr_print_replUpToDateVectorBlob,
@@ -1314,7 +1311,7 @@ static int samba_syntax_operator_fn(struct ldb_context *ldb, enum ldb_parse_op o
/*
compare two binary objects. This is correct for sorting as the sort order is:
-
+
a
aa
b
@@ -1326,7 +1323,7 @@ static int samba_syntax_operator_fn(struct ldb_context *ldb, enum ldb_parse_op o
b
aa
bb
-
+
*/
static int samba_ldb_comparison_binary(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2)
@@ -1749,7 +1746,7 @@ const struct ldb_schema_syntax *ldb_samba_syntax_by_name(struct ldb_context *ldb
{
unsigned int j;
const struct ldb_schema_syntax *s = NULL;
-
+
for (j=0; j < ARRAY_SIZE(samba_syntaxes); j++) {
if (strcmp(name, samba_syntaxes[j].name) == 0) {
s = &samba_syntaxes[j];
@@ -1770,7 +1767,7 @@ const struct ldb_schema_syntax *ldb_samba_syntax_by_lDAPDisplayName(struct ldb_c
break;
}
}
-
+
return s;
}
diff --git a/lib/ldb/common/ldb_dn.c b/lib/ldb/common/ldb_dn.c
index bba41d0b2c6..601da57a1b1 100644
--- a/lib/ldb/common/ldb_dn.c
+++ b/lib/ldb/common/ldb_dn.c
@@ -877,21 +877,17 @@ char *ldb_dn_get_extended_linearized(TALLOC_CTX *mem_ctx, struct ldb_dn *dn, int
(int)val.length,
val.data);
} else {
- p = talloc_asprintf_append_buffer(p, ";<%s=%.*s>",
- name,
- (int)val.length,
- val.data);
+ talloc_asprintf_addbuf(&p, ";<%s=%.*s>",
+ name,
+ (int)val.length,
+ val.data);
}
talloc_free(val.data);
-
- if (!p) {
- return NULL;
- }
}
if (dn->ext_comp_num && *linearized) {
- p = talloc_asprintf_append_buffer(p, ";%s", linearized);
+ talloc_asprintf_addbuf(&p, ";%s", linearized);
}
if (!p) {
diff --git a/lib/ldb/common/ldb_modules.c b/lib/ldb/common/ldb_modules.c
index 2d0494a2123..53875ee216a 100644
--- a/lib/ldb/common/ldb_modules.c
+++ b/lib/ldb/common/ldb_modules.c
@@ -1193,13 +1193,8 @@ char *ldb_module_call_chain(struct ldb_request *req, TALLOC_CTX *mem_ctx)
}
while (req && req->handle) {
- char *s = talloc_asprintf_append_buffer(ret, "req[%u] %p : %s\n",
- i++, req, ldb_req_location(req));
- if (s == NULL) {
- talloc_free(ret);
- return NULL;
- }
- ret = s;
+ talloc_asprintf_addbuf(&ret, "req[%u] %p : %s\n",
+ i++, req, ldb_req_location(req));
req = req->handle->parent;
}
return ret;
diff --git a/lib/ldb/modules/rdn_name.c b/lib/ldb/modules/rdn_name.c
index 3cb62bf567b..a49ce621c1b 100644
--- a/lib/ldb/modules/rdn_name.c
+++ b/lib/ldb/modules/rdn_name.c
@@ -1,4 +1,4 @@
-/*
+/*
ldb database library
Copyright (C) Andrew Bartlett 2005-2009
@@ -7,7 +7,7 @@
** NOTE! The following LGPL license applies to the ldb
** library. This does NOT imply that all of Samba is released
** under the LGPL
-
+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
@@ -116,7 +116,7 @@ static int rdn_name_add(struct ldb_module *module, struct ldb_request *req)
if (rdn_name == NULL) {
return LDB_ERR_OPERATIONS_ERROR;
}
-
+
rdn_val_p = ldb_dn_get_rdn_val(msg->dn);
if (rdn_val_p == NULL) {
return LDB_ERR_OPERATIONS_ERROR;
@@ -176,13 +176,13 @@ static int rdn_name_add(struct ldb_module *module, struct ldb_request *req)
}
if (i == attribute->num_values) {
char *rdn_errstring = talloc_asprintf(ac,
- "RDN mismatch on %s: %s (%.*s) should match one of:",
- ldb_dn_get_linearized(msg->dn), rdn_name,
+ "RDN mismatch on %s: %s (%.*s) should match one of:",
+ ldb_dn_get_linearized(msg->dn), rdn_name,
(int)rdn_val.length, (const char *)rdn_val.data);
for (i = 0; i < attribute->num_values; i++) {
- rdn_errstring = talloc_asprintf_append(
- rdn_errstring, " (%.*s)",
- (int)attribute->values[i].length,
+ talloc_asprintf_addbuf(
+ &rdn_errstring, " (%.*s)",
+ (int)attribute->values[i].length,
(const char *)attribute->values[i].data);
}
ldb_set_errstring(ldb, rdn_errstring);
diff --git a/lib/talloc/ABI/pytalloc-util-2.3.0.sigs b/lib/talloc/ABI/pytalloc-util-2.3.5.sigs
similarity index 100%
copy from lib/talloc/ABI/pytalloc-util-2.3.0.sigs
copy to lib/talloc/ABI/pytalloc-util-2.3.5.sigs
diff --git a/lib/talloc/ABI/talloc-2.1.11.sigs b/lib/talloc/ABI/talloc-2.3.5.sigs
similarity index 98%
copy from lib/talloc/ABI/talloc-2.1.11.sigs
copy to lib/talloc/ABI/talloc-2.3.5.sigs
index 9969ce33389..ec3cee44d8f 100644
--- a/lib/talloc/ABI/talloc-2.1.11.sigs
+++ b/lib/talloc/ABI/talloc-2.3.5.sigs
@@ -13,6 +13,7 @@ _talloc_steal_loc: void *(const void *, const void *, const char *)
_talloc_zero: void *(const void *, size_t, const char *)
_talloc_zero_array: void *(const void *, size_t, unsigned int, const char *)
talloc_asprintf: char *(const void *, const char *, ...)
+talloc_asprintf_addbuf: void (char **, const char *, ...)
talloc_asprintf_append: char *(char *, const char *, ...)
talloc_asprintf_append_buffer: char *(char *, const char *, ...)
talloc_autofree_context: void *(void)
diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c
index 29da190880a..0189fa03be0 100644
--- a/lib/talloc/talloc.c
+++ b/lib/talloc/talloc.c
@@ -2752,6 +2752,29 @@ _PUBLIC_ char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...)
return s;
}
+_PUBLIC_ void talloc_asprintf_addbuf(char **ps, const char *fmt, ...)
+{
+ va_list ap;
+ char *s = *ps;
+ char *t = NULL;
+
+ if (s == NULL) {
+ return;
+ }
+
+ va_start(ap, fmt);
+ t = talloc_vasprintf_append_buffer(s, fmt, ap);
+ va_end(ap);
+
+ if (t == NULL) {
+ /* signal failure to the next caller */
+ TALLOC_FREE(s);
+ *ps = NULL;
+ } else {
+ *ps = t;
+ }
+}
+
/*
alloc an array, checking for integer overflow in the array size
*/
diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h
index 06e81d7c999..dba9a3e9db9 100644
--- a/lib/talloc/talloc.h
+++ b/lib/talloc/talloc.h
@@ -1578,6 +1578,20 @@ _PUBLIC_ char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) PRI
*/
_PUBLIC_ char *talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
+/**
+ * @brief Build up a string buffer, handle allocation failure
+ *
+ * @param[in] ps Pointer to the talloc'ed string to be extended
+ * @param[in] fmt The format string
+ * @param[in] ... The parameters used to fill fmt.
+ *
+ * This does nothing if *ps is NULL and sets *ps to NULL if the
+ * intermediate reallocation fails. Useful when building up a string
+ * step by step, no intermediate NULL checks are required.
+ */
+_PUBLIC_ void talloc_asprintf_addbuf(char **ps, const char *fmt, ...) \
+ PRINTF_ATTRIBUTE(2,3);
+
/**
* @brief Format a string.
*
diff --git a/lib/talloc/wscript b/lib/talloc/wscript
index 30896636404..5a9779cf2d8 100644
--- a/lib/talloc/wscript
+++ b/lib/talloc/wscript
@@ -1,7 +1,7 @@
#!/usr/bin/env python
APPNAME = 'talloc'
-VERSION = '2.3.4'
+VERSION = '2.3.5'
import os
import sys
diff --git a/lib/util/debug.c b/lib/util/debug.c
index 24d8281d27f..517157ef6a8 100644
--- a/lib/util/debug.c
+++ b/lib/util/debug.c
@@ -795,18 +795,15 @@ utility lists registered debug class names's
char *debug_list_class_names_and_levels(void)
{
- char *buf = NULL;
+ char *buf = talloc_strdup(NULL, "");
size_t i;
/* prepare strings */
for (i = 0; i < debug_num_classes; i++) {
- buf = talloc_asprintf_append(buf,
- "%s:%d%s",
- classname_table[i],
- dbgc_config[i].loglevel,
- i == (debug_num_classes - 1) ? "\n" : " ");
- if (buf == NULL) {
- return NULL;
- }
+ talloc_asprintf_addbuf(&buf,
+ "%s:%d%s",
+ classname_table[i],
+ dbgc_config[i].loglevel,
+ i == (debug_num_classes - 1) ? "\n" : " ");
}
return buf;
}
diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
index 4762a7c523f..d8c8522616d 100644
--- a/lib/util/samba_util.h
+++ b/lib/util/samba_util.h
@@ -327,20 +327,6 @@ _PUBLIC_ bool conv_str_u64(const char * str, uint64_t * val);
*/
_PUBLIC_ bool mem_equal_const_time(const void *s1, const void *s2, size_t n);
-/**
- * @brief Build up a string buffer, handle allocation failure
- *
- * @param[in] ps Pointer to the talloc'ed string to be extended
- * @param[in] fmt The format string
- * @param[in] ... The parameters used to fill fmt.
- *
- * This does nothing if *ps is NULL and sets *ps to NULL if the
- * intermediate reallocation fails. Useful when building up a string
- * step by step, no intermediate NULL checks are required.
- */
-
-_PUBLIC_ void talloc_asprintf_addbuf(char **ps, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
-
/**
Do a case-insensitive, whitespace-ignoring string compare.
**/
diff --git a/lib/util/util_net.c b/lib/util/util_net.c
--
Samba Shared Repository
More information about the samba-cvs
mailing list