Back again,
Soooo, I think I was wrong... in fact the problem seems to come from
sitecopy which misuse the libneon API (at least this is my guess).
Here is what happen:
The libneon:ne_session.c:progress_notifier can be called even though
sitecopy:davdriver.c:file_read has freed the userdata field (called
eremote in the scope of sitecopy) at davdriver.c:519.
(not) Surprisingly, libneon crash when the progress_notifier is called
upon NULL userdata.
Anyway, in my humble opinion, I think the problem should be solved in
libneon as this library seems not programmed in an enough defensive way.
E.g., in the function:
static void progress_notifier(void *userdata, ne_session_status status,
const ne_session_status_info *info)
{
ne_session *sess = userdata;
if (status == ne_status_sending || status == ne_status_recving) {
sess->progress_cb(sess->progress_ud,info->sr.progress,info->sr.total);
}
}
One should also check that userdata is not NULL... as the userdata seems
to still be in the user's memory scope.
« Abandon every hope, ye who trust user's data here. »
:)
Regards
--
Emmanuel Fleury
/* Dijkstra probably hates me. */
-- Linus Torvalds, in kernel/sched.c
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]