Fix for lp:1062704
authorBrian Aker <brian@tangent.org>
Sun, 7 Oct 2012 02:07:09 +0000 (22:07 -0400)
committerBrian Aker <brian@tangent.org>
Sun, 7 Oct 2012 02:07:09 +0000 (22:07 -0400)
libmemcached/hosts.cc
libmemcached/server.hpp

index 61c1b05974383c67064e8ba96028c94cacbae5f2..62b362ad7fee39eb9eed189f1fc14d8d732c9b0b 100644 (file)
@@ -507,9 +507,9 @@ memcached_return_t memcached_server_add_unix_socket_with_weight(memcached_st *pt
   }
 
   memcached_string_t _filename= { memcached_string_make_from_cstr(filename) };
-  if (memcached_is_valid_servername(_filename) == false)
+  if (memcached_is_valid_filename(_filename) == false)
   {
-    memcached_set_error(*ptr, MEMCACHED_INVALID_ARGUMENTS, MEMCACHED_AT, memcached_literal_param("Invalid filename for socket provided"));
+    return memcached_set_error(*ptr, MEMCACHED_INVALID_ARGUMENTS, MEMCACHED_AT, memcached_literal_param("Invalid filename for socket provided"));
   }
 
   return server_add(ptr, _filename, 0, weight, MEMCACHED_CONNECTION_UNIX_SOCKET);
index 2719294f9cf3d4fd626b1fcda9ec14d6292ae8c0..351b34be02260bcae879bd47dc5b919e5fdb4585 100644 (file)
@@ -60,7 +60,12 @@ void __server_free(memcached_server_st *);
 
 static inline bool memcached_is_valid_servername(const memcached_string_t& arg)
 {
-  return arg.size < NI_MAXHOST;
+  return (arg.c_str != NULL or arg.size == 0) and arg.size < NI_MAXHOST;
+}
+
+static inline bool memcached_is_valid_filename(const memcached_string_t& arg)
+{
+  return arg.c_str != NULL and arg.size > 0 and arg.size < NI_MAXHOST;
 }
 
 void memcached_instance_free(org::libmemcached::Instance *);