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]

Reply via email to