Hello,

The bug is that if you run ``fossil ui'' from within a subdirectory of a
working checkout, then try to  annotate source files fossil crashes with
SIGSEGV and dumps core.

I haven't had the time to fix this  so I'm reporting it now in the event
that I don't get around to fixing it.  As far as I can tell, the bug was
introduced in a branch with  commit [41f35ca4ec617891], though the crash
didn't manifest  until later. In  this commit,  when I try  to annotate,
Fossil doesn't crash, but it returns invalid manifest:

http://www.fossil-scm.org/index.html/info/41f35ca4ec617891

Then with [d2b1565b7c112b82] it begins crashing:

http://www.fossil-scm.org/index.html/info/d2b1565b7c112b82

And then the crash was introduced into trunk here:

http://www.fossil-scm.org/index.html/info/ab8ed318e782cc73

This is the line where it crashes:

http://www.fossil-scm.org/index.html/artifact?ln=2410&name=313f4c51a31b276b

It crashes because  annotate_start() never got run,  and consequently it
has bogus memory addresses in all its pointers.

Why didn't  annotate_start() return useful  data? Because fnid is  0 and
the while loop is never entered:

http://www.fossil-scm.org/index.html/artifact?ln=2259-2261+2279&name=313f4c51a31b276b

The call to file_canonical_name here munges the filename because it gets
the current working directory and appends it to the file:

http://www.fossil-scm.org/index.html/artifact?ln=1284&name=d1d99096ad028323

So for example, in the Fossil repository:

cd /tmp/fossil/src; fossil ui

Then try to annotate src/db.c

And Fossil  will crash because  the path that it  was trying to  look up
was:

/tmp/fossil/src/src/db.c

Andy
-- 
TAI64 timestamp: 400000005a6411aa


_______________________________________________
fossil-dev mailing list
fossil-dev@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev

Reply via email to