summaryrefslogtreecommitdiff
path: root/libmemcached/response.cc
diff options
context:
space:
mode:
authorBrian Aker <brian@tangent.org>2012-04-27 20:16:05 -0700
committerBrian Aker <brian@tangent.org>2012-04-27 20:16:05 -0700
commit6852ee197af0a3887c458a6d1bac58764b1d691b (patch)
tree48088cb351bdc5f5fb287c1f8744525287a86ca8 /libmemcached/response.cc
parent09b4ff9a9b7c62b4511ab10c9305eba757fea34b (diff)
downloadlibmemcached-6852ee197af0a3887c458a6d1bac58764b1d691b.tar.gz
Fix SASL.
Diffstat (limited to 'libmemcached/response.cc')
-rw-r--r--libmemcached/response.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libmemcached/response.cc b/libmemcached/response.cc
index 4ba85648..809d5b6f 100644
--- a/libmemcached/response.cc
+++ b/libmemcached/response.cc
@@ -584,6 +584,21 @@ static memcached_return_t binary_read_one_response(memcached_server_write_instan
break;
case PROTOCOL_BINARY_CMD_SASL_LIST_MECHS:
+ {
+ if (header.response.keylen != 0 || bodylen + 1 > buffer_length)
+ {
+ return MEMCACHED_UNKNOWN_READ_FAILURE;
+ }
+ else
+ {
+ if ((rc= memcached_safe_read(instance, buffer, bodylen)) != MEMCACHED_SUCCESS)
+ {
+ return MEMCACHED_UNKNOWN_READ_FAILURE;
+ }
+ }
+ }
+ break;
+
case PROTOCOL_BINARY_CMD_VERSION:
{
char version_buffer[32]; // @todo document this number