On Tue, May 27, 2008 at 10:30 AM, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
> Just tested it, works fine regardless is it first time or not

I spent an hour going through it and tracked down the problem.

   rc = mc_conn_read(conn, BUFSIZE, 1, &line);

On the first read, the line arg is set to point to an offset within
conn->ds.dstring.   The problem is that mc_conn_read() there are calls
to Ns_DStringSetLength() which can (and does) relocate
conn->ds.dstring, therefor leaving &line pointing to a deallocated
memory block.   The only time ds.dstring is in a static location is
when it's 200 bytes or less.

I just happened come across a perhaps a platform specific set of data
that could duplicate the problem over and over.

Will patch and update cvs.

Daniel

-- 
| ---------------------------------------------------------------
| Daniel P. Stasinski | http://www.saidsimple.com
| [EMAIL PROTECTED] | http://www.disabilities-r-us.com
| XMMP: [EMAIL PROTECTED] | http://www.avenues.org
| Google Talk: mooooooo | http://www.scriptkitties.com

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to