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