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

Reply via email to