Fixed error in lack of pointer found (Tim Bunce discovered)
authorBrian Aker <brian@tangent.org>
Tue, 18 Dec 2007 17:19:09 +0000 (09:19 -0800)
committerBrian Aker <brian@tangent.org>
Tue, 18 Dec 2007 17:19:09 +0000 (09:19 -0800)
ChangeLog
lib/memcached_hosts.c
tests/function.c

index ee8246d260880c2f85c79f3ca4e696ccd7ecbdbc..094b807db4975ce4d5029ca0fd4239bd88ce8293 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@
   * Patches from Kevin Dalley for FreeBSD 4.0
   * Added multi delete functions.
   * All get key returns have C style null termination
+  * If memcached_server_list_append is passed NULLs instead of pointers it
+    returns NULL.
 
 0.12 Tue Dec 11 15:20:55 PST 2007
   * Updates for consistent hashing
index 5661e541180fdcb64a0e1b0d8cd433f59b322bfc..6f49b270a98b305426d168ea528b11c3d16e3a8c 100644 (file)
@@ -148,8 +148,8 @@ memcached_server_st *memcached_server_list_append(memcached_server_st *ptr,
   unsigned int count;
   memcached_server_st *new_host_list;
 
-  if (!hostname)
-    return ptr;
+  if (hostname == NULL || error == NULL)
+    return NULL;
 
   if (!port)
     port= MEMCACHED_DEFAULT_PORT; 
index ae2ec0324852523bf60ab3163fbc5315e48bc062..5b598003e54a44cd7fa911498fbd7881a89f6516 100644 (file)
@@ -40,6 +40,23 @@ uint8_t init_test(memcached_st *not_used)
   return 0;
 }
 
+uint8_t server_list_null_test(memcached_st *ptr)
+{
+  memcached_server_st *server_list;
+  memcached_return rc;
+
+  server_list= memcached_server_list_append(NULL, NULL, 0, NULL);
+  assert(server_list == NULL);
+
+  server_list= memcached_server_list_append(NULL, "localhost", 0, NULL);
+  assert(server_list == NULL);
+
+  server_list= memcached_server_list_append(NULL, NULL, 0, &rc);
+  assert(server_list == NULL);
+
+  return 0;
+}
+
 uint8_t allocation_test(memcached_st *not_used)
 {
   memcached_st *memc;
@@ -1944,6 +1961,7 @@ test_st tests[] ={
   {"flush", 0, flush_test },
   {"init", 0, init_test },
   {"allocation", 0, allocation_test },
+  {"server_list_null_test", 0, server_list_null_test},
   {"clone_test", 0, clone_test },
   {"error", 0, error_test },
   {"set", 0, set_test },