Merge in solution for lp:581030.
authorBrian Aker <brian@tangent.org>
Tue, 8 Mar 2011 23:17:05 +0000 (15:17 -0800)
committerBrian Aker <brian@tangent.org>
Tue, 8 Mar 2011 23:17:05 +0000 (15:17 -0800)
libmemcached/stats.c
tests/mem_functions.c

index 93012a8daa92725fcc8291af7b2df8f59575949e..ebbc63ab9b8ba05be502160ccfb82886e3f5052b 100644 (file)
@@ -405,9 +405,20 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
   memcached_return_t rc;
   memcached_stat_st *stats;
 
+  if (! ptr)
+  {
+    WATCHPOINT_ASSERT(memc_ptr);
+    return NULL;
+  }
+
+  WATCHPOINT_ASSERT(error);
+
+
   unlikely (ptr->flags.use_udp)
   {
-    *error= MEMCACHED_NOT_SUPPORTED;
+    if (error)
+      *error= MEMCACHED_NOT_SUPPORTED;
+
     return NULL;
   }
 
@@ -415,7 +426,9 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
 
   if (! stats)
   {
-    *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE;
+    if (error)
+      *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE;
+
     return NULL;
   }
 
@@ -445,7 +458,9 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
       rc= MEMCACHED_SOME_ERRORS;
   }
 
-  *error= rc;
+  if (error)
+    *error= rc;
+
   return stats;
 }
 
index 36c5717ec3166d2c6e14776de3a478c01396f6ae..74ab33a0fc692a183eb586b1475918f7c35ce533 100644 (file)
@@ -6133,6 +6133,20 @@ static test_return_t regression_bug_728286(memcached_st *unused)
   return TEST_SUCCESS;
 }
 
+static test_return_t regression_bug_581030(memcached_st *unused)
+{
+  (void)unused;
+
+#ifndef DEBUG
+  memcached_stat_st *local_stat= memcached_stat(NULL, NULL, NULL);
+  test_false(local_stat);
+
+  memcached_stat_free(NULL, NULL);
+#endif
+
+  return TEST_SUCCESS;
+}
+
 static void memcached_die(memcached_st* mc, memcached_return error, const char* what, uint32_t it)
 {
   fprintf(stderr, "Iteration #%u: ", it);
@@ -6451,6 +6465,7 @@ test_st regression_tests[]= {
   {"lp:583031", 1, (test_callback_fn)regression_bug_583031 },
   {"lp:?", 1, (test_callback_fn)regression_bug_ },
   {"lp:728286", 1, (test_callback_fn)regression_bug_728286 },
+  {"lp:581030", 1, (test_callback_fn)regression_bug_581030 },
   {0, 0, (test_callback_fn)0}
 };