memcache buffer overflow?

batrick nginx-forum at nginx.us
Mon May 18 23:11:54 MSD 2009


Dear all,

I am trying to get memcache with nginx to work to improve the performance of my php web application. However, while my configuration is working fine for small outputs, if output size exceeds 20k I only get garbage characters posted back to the client. The test was carried out on debian lenny, with nginx version nginx/0.6.32

Test Code:

--- snip
<?php
$length = 20;

$memcache = new Memcache;
$memcache->connect('localhost', '11211');
$x='';
for($i=0;$i<$length*1024;$i++) {
    $x .= 'x';
}
$memcache->set('/k',$x, 0,  6100);
echo strlen($memcache->get('/k'));
--- snap

If I run this code with length set to 20, the string is correctly stored in memcache (as verified by reading from the memcache). However, nginx returns garbage characters only - especially NULL strings.

If length is reduced to 19, both the memcache module and the script correctly output the x's.

I would be very grateful if this bug could be fixed. Please do not hesistate to contact me if you need more information.

Kind regards,

batrick

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,2160,2160#msg-2160






More information about the nginx mailing list