just change that to page.assign(m_buffer, m_bytesInBuffer) and it should
work.

elrod

On Sat, 23 Sep 2000, Chris Kuklewicz wrote:

> After opening the streams tree, it is only a matter of 1-5 minutes
> before the program segfaults, I am still tracking this down.
> 
> It seems that after the first download/parsing, the later executions
> of StreamTimer makes DoParse think the length of the downloaded data
> is too long.  DoParse crashes.  The problem is in Downloading to
> a string failed slightly.
> 
> In the function
> 
> Error Http::DownloadToString(const string &url, string &page)
> 
> the value return by download, m_bytesInBuffer=8524, is correct.
> Then it is converted from char* to string by:
> 
> page = string((char *)m_buffer);
> 
> Then the reutrn string seems to be slightly longer
> @ ui/musicbrowser/unix/src/browsertree.cpp : 1354 : void 
>GTKMusicBrowser::StreamTimer()
> args: page.size()=8540
> 
> The 8540 > 8524 is wrong. The extra charaters are:
> e>
> 
> </Directory>
> 
> The e> chokes DoParse.  PCData without a begin element means m_info
> is null, so it segfaults in PCData.  So malformed xml kills the
> parser and freeamp.  Joy.
> 
> The page.size() > m_bytesInBuffer must mean a null is not appended to
> the buffer.  Hmmm....more debugging ahead.
> _______________________________________________
> [EMAIL PROTECTED]
> http://www.freeamp.org/mailman/listinfo/freeamp-dev
> 

_______________________________________________
[EMAIL PROTECTED]
http://www.freeamp.org/mailman/listinfo/freeamp-dev

Reply via email to