From 8ab562dcb2996c3b1c1efbc7e7653dd5bc3a4823 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 22 Sep 2004 22:06:21 +0000 Subject: r2536: This is a classic case for the use of our new talloc code, and convert_string_talloc(). Andrew Bartlett (This used to be commit 79776006b37fa9df0586711edaba5335467461ac) --- source4/torture/basic/charset.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source4/torture/basic/charset.c b/source4/torture/basic/charset.c index 879f20617f..cb29645de6 100644 --- a/source4/torture/basic/charset.c +++ b/source4/torture/basic/charset.c @@ -40,8 +40,9 @@ static NTSTATUS unicode_open(struct smbcli_tree *tree, int i; NTSTATUS status; - ucs_name = malloc((1+u_name_len)*2); + ucs_name = talloc(NULL, (1+u_name_len)*2); if (!ucs_name) { + printf("Failed to create UCS2 Name - talloc() failure\n"); return NT_STATUS_NO_MEMORY; } @@ -50,16 +51,16 @@ static NTSTATUS unicode_open(struct smbcli_tree *tree, } SSVAL(ucs_name, i*2, 0); - i = convert_string_allocate(CH_UTF16, CH_UNIX, ucs_name, (1+u_name_len)*2, (void **)&fname); + i = convert_string_talloc(ucs_name, CH_UTF16, CH_UNIX, ucs_name, (1+u_name_len)*2, (void **)&fname); if (i == -1) { - free(ucs_name); + printf("Failed to convert UCS2 Name into unix - convert_string_talloc() failure\n"); + talloc_free(ucs_name); return NT_STATUS_NO_MEMORY; } - asprintf(&fname2, "%s%s", BASEDIR, fname); + fname2 = talloc_asprintf(ucs_name, "%s%s", BASEDIR, fname); if (!fname2) { - free(fname); - free(ucs_name); + talloc_free(ucs_name); return NT_STATUS_NO_MEMORY; } @@ -79,9 +80,7 @@ static NTSTATUS unicode_open(struct smbcli_tree *tree, status = smb_raw_open(tree, mem_ctx, &io); - free(fname); - free(fname2); - free(ucs_name); + talloc_free(ucs_name); return status; } -- cgit