Fossil Forum
Post: Stack buffer overflow in graph_finish() when rendering timeline with >64 parallel rails
I was experimenting with combinatorial branching in Fossil (ie, having x branches forking into x other branches and merging into eachother), using a script to mass generate these repository events.
However, when navigating to /timeline on a repository containing (>64) visible/active branches fossil ui crashes with *** buffer overflow detected ***: terminated.
I believe it is related to:
graph_finish and GR_MAX_RAIL in src/graph.c
Environment: Arch Linux, Fossil 2.28 compiled with gcc 15.2.1, -D_FORTIFY_SOURCE
Fixed by check-in a8bf88f8ffab98dd. Verified using fil-c.
Confirmed. Works with the same complex test repo without crashing or rendering issues.
48 active linear branches with over 64 rails from the merges. Maintains readable width for the commit messages too.
Thanks!
The 65th and subsequent rails stack up on top of the 64th, rendering them unreadable. That is a long-standing problem for which I have no solution. I always figured that if you have that many concurrent branches, you have bigger problems that the correct display of the Fossil timeline. :-)