svn commit: samba r26417 - in branches/SAMBA_4_0: . source/lib/util
source/lib/util/tests
jelmer at samba.org
jelmer at samba.org
Wed Dec 12 14:09:16 GMT 2007
Author: jelmer
Date: 2007-12-12 14:09:15 +0000 (Wed, 12 Dec 2007)
New Revision: 26417
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26417
Log:
Make str_list_copy(mem_ctx, NULL) return NULL rather than an empty list.
Modified:
branches/SAMBA_4_0/
branches/SAMBA_4_0/source/lib/util/tests/strlist.c
branches/SAMBA_4_0/source/lib/util/util_strlist.c
Changeset:
Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/SAMBA_4_0/source/lib/util/tests/strlist.c
===================================================================
--- branches/SAMBA_4_0/source/lib/util/tests/strlist.c 2007-12-12 11:08:32 UTC (rev 26416)
+++ branches/SAMBA_4_0/source/lib/util/tests/strlist.c 2007-12-12 14:09:15 UTC (rev 26417)
@@ -64,6 +64,29 @@
return true;
}
+static bool test_list_copy(struct torture_context *tctx)
+{
+ const char **result;
+ const char *list[] = { "foo", "bar", NULL };
+ const char *empty_list[] = { NULL };
+ const char **null_list = NULL;
+
+ result = str_list_copy(tctx, list);
+ torture_assert_int_equal(tctx, str_list_length(result), 2, "list length");
+ torture_assert_str_equal(tctx, result[0], "foo", "element 0");
+ torture_assert_str_equal(tctx, result[1], "bar", "element 1");
+ torture_assert_str_equal(tctx, result[2], NULL, "element 2");
+
+ result = str_list_copy(tctx, empty_list);
+ torture_assert_int_equal(tctx, str_list_length(result), 0, "list length");
+ torture_assert_str_equal(tctx, result[0], NULL, "element 0");
+
+ result = str_list_copy(tctx, null_list);
+ torture_assert(tctx, result == NULL, "result NULL");
+
+ return true;
+}
+
struct torture_suite *torture_local_util_strlist(TALLOC_CTX *mem_ctx)
{
struct torture_suite *suite = torture_suite_create(mem_ctx, "STRLIST");
@@ -75,5 +98,7 @@
&test_lists_shell_strings[i]);
}
+ torture_suite_add_simple_test(suite, "list_copy", test_list_copy);
+
return suite;
}
Modified: branches/SAMBA_4_0/source/lib/util/util_strlist.c
===================================================================
--- branches/SAMBA_4_0/source/lib/util/util_strlist.c 2007-12-12 11:08:32 UTC (rev 26416)
+++ branches/SAMBA_4_0/source/lib/util/util_strlist.c 2007-12-12 14:09:15 UTC (rev 26417)
@@ -199,9 +199,15 @@
_PUBLIC_ const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list)
{
int i;
- const char **ret = talloc_array(mem_ctx, const char *, str_list_length(list)+1);
- if (ret == NULL) return NULL;
+ const char **ret;
+ if (list == NULL)
+ return NULL;
+
+ ret = talloc_array(mem_ctx, const char *, str_list_length(list)+1);
+ if (ret == NULL)
+ return NULL;
+
for (i=0;list && list[i];i++) {
ret[i] = talloc_strdup(ret, list[i]);
if (ret[i] == NULL) {
More information about the samba-cvs
mailing list