Hi,
Just received another crashreport for TortoiseSVN. This time, the user
sending the crashreport also provided the steps which lead to the crash.
I've reported crashs with 'svn st -u' already four times during the last
6 months, but since I could only provide the location where it crashes
but no "recipe" how and why this happens, it never got fixed.
So this time, I can at least provide a description and a reason why it
happens:
- relocate a working copy --> (apparent) success
- 'svn up' --> "unexpected end of delta source"
- 'svn st -u' --> crash
The location of the crash is in
libsvn_wc/status.c: 1335
(1.1.x branch).
You can see there:
/* See if the directory was deleted or replaced. */
dir_status = apr_hash_get (pb->statii, db->path,
APR_HASH_KEY_STRING);
if ((dir_status->repos_text_status == svn_wc_status_deleted)
|| (dir_status->repos_text_status == svn_wc_status_replaced))
was_deleted = TRUE;
after the apr_hash_get() call, it's assumed that dir_status is != NULL.
But as the crash shows, it _is_ NULL. And two lines further:
/* Now do the status reporting. */
SVN_ERR (handle_statii (eb, dir_status ? dir_status->entry : NULL,
db->path, db->statii, was_deleted, TRUE,
pool));
here, a check is done if dir_status _might_ be NULL. So there must be a
reason this can be NULL, only the check should be done right after the
apr_hash_get() function call.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Aug 25 19:24:07 2004