summaryrefslogtreecommitdiff
path: root/source4/lib/charcnv.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-09-27 01:36:19 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:20 -0500
commit5b44130afad1bb1764d986de3ef0e8e04b0e7357 (patch)
treeafea820fdfd1021b5ee55b2fa37ba1b32d334e46 /source4/lib/charcnv.c
parentf095a8e748a87de9f4cde117df13e8dccd8aeaa9 (diff)
downloadsamba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.tar.gz
samba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.tar.bz2
samba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.zip
r2671: we're getting too many errors caused by the talloc_realloc() API not
taking a context (so when you pass a NULL pointer you end up with memory in a top level context). Fixed it by changing the API to take a context. The context is only used if the pointer you are reallocing is NULL. (This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
Diffstat (limited to 'source4/lib/charcnv.c')
-rw-r--r--source4/lib/charcnv.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/source4/lib/charcnv.c b/source4/lib/charcnv.c
index 2ee2bd9bae..33c49504d8 100644
--- a/source4/lib/charcnv.c
+++ b/source4/lib/charcnv.c
@@ -208,11 +208,7 @@ ssize_t convert_string_talloc(TALLOC_CTX *ctx, charset_t from, charset_t to,
outbuf = NULL;
convert:
destlen = destlen * 2;
- if (outbuf == NULL) {
- ob = talloc_array_p(ctx, char, destlen);
- } else {
- ob = (char *)talloc_realloc(outbuf, destlen);
- }
+ ob = (char *)talloc_realloc(ctx, outbuf, destlen);
if (!ob) {
DEBUG(0, ("convert_string_talloc: realloc failed!\n"));
talloc_free(outbuf);
@@ -245,7 +241,7 @@ convert:
destlen = destlen - o_len;
/* +2 for mandetory null termination, UTF8 or UTF16 */
- *dest = (char *)talloc_realloc(ob,destlen+2);
+ *dest = (char *)talloc_realloc(ctx, ob, destlen+2);
if (!*dest) {
DEBUG(0, ("convert_string_talloc: out of memory!\n"));
talloc_free(ob);