clients do not use any internal functionality, so link them with the shared public...
[m6w6/libmemcached] / src / libmemcached / sasl.cc
index 89462e50d7edfa204cbd8c1a0d7565ed45914e07..d8247bd146e7b12344e5224e740a7963ec32c1a4 100644 (file)
@@ -122,7 +122,7 @@ static void sasl_shutdown_function()
 }
 
 static std::atomic<int> sasl_startup_state(SASL_OK);
-pthread_mutex_t sasl_startup_state_LOCK= PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t sasl_startup_state_LOCK= PTHREAD_MUTEX_INITIALIZER;
 static pthread_once_t sasl_startup_once= PTHREAD_ONCE_INIT;
 static void sasl_startup_function(void)
 {
@@ -173,8 +173,8 @@ memcached_return_t memcached_sasl_authenticate_connection(memcached_instance_st*
 
   memcached_server_response_increment(server);
 
-  char mech[MEMCACHED_MAX_BUFFER];
-  memcached_return_t rc= memcached_response(server, mech, sizeof(mech), NULL);
+  char mech[MEMCACHED_MAX_BUFFER] = {0};
+  memcached_return_t rc= memcached_response(server, mech, sizeof(mech) - 1, NULL);
   if (memcached_failed(rc))
   {
     if (rc == MEMCACHED_PROTOCOL_ERROR)