diff --git a/lib/memcache.js b/lib/memcache.js index 8b826ad..5840ed8 100644 --- a/lib/memcache.js +++ b/lib/memcache.js @@ -271,12 +271,13 @@ Client.prototype.handle_get = function(buffer) { var end_indicator_len = 3; var result_len = 0; - if (buffer.indexOf('END') == 0) { + if (buffer.indexOf('END' + crlf) == 0) { return [result_value, end_indicator_len + crlf_len]; - } else if (buffer.indexOf('VALUE') == 0 && buffer.indexOf('END') != -1) { + } else if (buffer.indexOf('VALUE') == 0 + && buffer.indexOf(crlf + 'END' + crlf) != -1) { first_line_len = buffer.indexOf(crlf) + crlf_len; - var end_indicator_start = buffer.indexOf('END'); - result_len = end_indicator_start - first_line_len - crlf_len; + var end_indicator_start = buffer.lastIndexOf(crlf + 'END' + crlf); + result_len = end_indicator_start - first_line_len; result_value = buffer.substr(first_line_len, result_len); return [result_value, first_line_len + parseInt(result_len, 10) + crlf_len + end_indicator_len + crlf_len] } else {