From: Andrew Kroeger Date: Tue, 23 Jun 2009 12:26:17 +0000 (-0500) Subject: ldb: Properly handle NULL when copying attr lists. X-Git-Tag: talloc-2.0.0~890 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=994506ae2eb7e8e7eb0463fb87b261eaecb04010;p=thirdparty%2Fsamba.git ldb: Properly handle NULL when copying attr lists. When copying an attribute list, ensure the list itself is not NULL before attempting to access elements of the list. --- diff --git a/source4/lib/ldb/common/ldb_msg.c b/source4/lib/ldb/common/ldb_msg.c index ad53a3d29d2..8d0fa313a00 100644 --- a/source4/lib/ldb/common/ldb_msg.c +++ b/source4/lib/ldb/common/ldb_msg.c @@ -643,12 +643,12 @@ const char **ldb_attr_list_copy(TALLOC_CTX *mem_ctx, const char * const *attrs) { const char **ret; int i; - for (i=0;attrs[i];i++) /* noop */ ; + for (i=0;attrs && attrs[i];i++) /* noop */ ; ret = talloc_array(mem_ctx, const char *, i+1); if (ret == NULL) { return NULL; } - for (i=0;attrs[i];i++) { + for (i=0;attrs && attrs[i];i++) { ret[i] = attrs[i]; } ret[i] = attrs[i]; @@ -665,7 +665,7 @@ const char **ldb_attr_list_copy_add(TALLOC_CTX *mem_ctx, const char * const *att const char **ret; int i; bool found = false; - for (i=0;attrs[i];i++) { + for (i=0;attrs && attrs[i];i++) { if (ldb_attr_cmp(attrs[i], new_attr) == 0) { found = true; } @@ -677,7 +677,7 @@ const char **ldb_attr_list_copy_add(TALLOC_CTX *mem_ctx, const char * const *att if (ret == NULL) { return NULL; } - for (i=0;attrs[i];i++) { + for (i=0;attrs && attrs[i];i++) { ret[i] = attrs[i]; } ret[i] = new_attr;