[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: "svn diff -rN" dereferences a NIL pointer and crashes with "Segmentation fault".

From: Malcolm Rowe <malcolm_at_farside.org.uk>
Date: 2006-02-16 20:57:02 CET

Carsten Koch wrote:

> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1076981024 (LWP 22990)]
> 0x40047595 in delete_entry (path=0x80cb660 "docu", base_revision=-1,
> parent_baton=0x80ad0a0, pool=0x80cb610) at diff.c:811
> 811 diff.c: No such file or directory.
> in diff.c
> (gdb) bt full
> #0 0x40047595 in delete_entry (path=0x80cb660 "docu", base_revision=-1,
> parent_baton=0x80ad0a0, pool=0x80cb610) at diff.c:811
> pb = <value optimized out>
> eb = (struct edit_baton *) 0x80909c0
> entry = (const svn_wc_entry_t *) 0x0
> b = (struct dir_baton *) 0x0
> full_path = 0x80ae528 "docu"
> adm_access = (svn_wc_adm_access_t *) 0x8084f28
> working_mimetype = 0x1 <Address 0x1 out of bounds>
> pristine_mimetype = 0x0
> baseprops = (apr_hash_t *) 0x4

> Line 811 in libsvn_wc/diff.c is
> switch (entry->kind)
> and as you see from the trace above, entry is NIL,
> which explains the crash.

Quite. It's hard to say exactly what's happening. The relvevant snippet
of code is preceding this is:

   const char *full_path = svn_path_join (pb->edit_baton->anchor_path, path,
                                          pb->pool);
   svn_wc_adm_access_t *adm_access;
   const char *working_mimetype, *pristine_mimetype;
   apr_hash_t *baseprops;

   SVN_ERR (svn_wc_adm_probe_retrieve (&adm_access, pb->edit_baton->anchor,
                                       full_path, pool));
   SVN_ERR (svn_wc_entry (&entry, full_path, adm_access, FALSE, pool));
>>switch (entry->kind)

And, as you point out, entry is NULL. What kind of situation can cause
'svn up -rN' to report a deletion of an entry that doesn't exist, I
wonder? (anyone?)

Carsten: could you confirm:

a. The output of 'svn st'.
b. Whether 'docu' exists and is under version control.

Thanks,
Malcolm

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Feb 16 21:00:03 2006

This is an archived mail posted to the Subversion Dev mailing list.