rlog segfault on CentOS 7

Michael Watters <[email protected]> Tue, 25 Oct 2016 16:08:17 -0400
Newsgroups gmane.comp.version-control.rcs.bugs
Message-ID <[email protected]>
I am attempting to use rcs/rlog on CentOS 7 and the process is 
segfaulting when run on one of our rcs files.

Here is the command output when run from the command line.

[root@mdct-00fs-cent7 pc104]# rlog source-after-upgrade.tar,v

RCS file: source-after-upgrade.tar,v
Working file: source-after-upgrade.tar
head: 1.2
branch:
locks: strict
         d35110: 1.2
access list:
symbolic names:
         INITIAL_IMPORT_RELEASE_TAG: 1.1.1.1
         INITIAL_IMPORT_VENDOR_TAG: 1.1.1
keyword substitution: b
total revisions: 3;     selected revisions: 3
description:
----------------------------
revision 1.2    locked by: d35110;
Segmentation fault (core dumped)

gdb shows that the process received a signal 11 in the string_from_atat 
function.

Reading symbols from /usr/bin/rcs...Reading symbols from 
/usr/lib/debug/usr/bin/rcs.debug...done.
done.
Core was generated by `/usr/bin/rcs rlog source-after-upgrade.tar,v'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000000040e5ca in string_from_atat (space=0x16e7200, 
atat=0x1bae340) at b-fro.c:389
389           r[i].beg = 1 + (i ? atat->holes[i - 1] : atat->beg);

Here is the full backtrace.

#0  0x000000000040e5ca in string_from_atat (space=0x16e7200, 
atat=0x1bae340) at b-fro.c:389
         f = 0x16e72c0
         count = 594082
         r = <error reading variable r (Cannot access memory at address 
0x7ffcf5276810)>
         cb = {string = 0x7f89115a4740 "@GZ\021\211\177", size = 24015744}
         i = <optimized out>
#1  0x000000000040ac92 in count_a_d (edits=<optimized out>, 
d=0x7ffcf5b87308, a=0x7ffcf5b87310) at rlog.c:134
         s = <optimized out>
         totals = <optimized out>
#2  putadelta (node=node@entry=0x16e7a28, editscript=0x16e7b18, 
trunk=trunk@entry=true, insDelFormat=insDelFormat@entry=0x421e0d "  
lines: +%ld -%ld") at rlog.c:189
         a = 24015552
         d = 140724430992208
         out = 0x7f891138c400 <_IO_2_1_stdout_>
         datebuf = "2006/08/25 
22:21:00\000\374\177\000\000\001\000\000\000\000\000\000\000\340|n\001\000\000\000", 
<incomplete sequence \335>
         log = <optimized out>
#3  0x000000000040c1c4 in putrunk (insDelFormat=0x421e0d "  lines: +%ld 
-%ld") at rlog.c:224
         ptr = 0x16e7a28
#4  rlog_main (cmd=cmd@entry=0x7ffcf5b882c9 "rlog", argc=1, 
argc@entry=2, argv=<optimized out>, argv@entry=0x7ffcf5b876d0) at rlog.c:986
         tip = 0x16e7a28
         defbr = 0x0
         strictly_locking = true
         kws = 5
         repo_filename = 0x16e7308 "source-after-upgrade.tar,v"
         locks = 0x2036940
         exitstatus = 0
         branchflag = false
         lockflag = false
         datesel = {in = 0x0, by = 0x0}
         criteria = {revs = 0x0, actual = 0x0, authors = 0x0, lockers = 
0x0, states = 0x0}
         insDelFormat = 0x421e0d "  lines: +%ld -%ld"
         out = 0x7f891138c400 <_IO_2_1_stdout_>
         a = <optimized out>
         newargv = 0x7ffcf5b876d0
         accessListString = 0x421dff "\naccess list:"
         accessFormat = 0x421dfa "\n\t%s"
         headFormat = 0x421fa8 "\nRCS file: %s\nWorking file: 
%s\nhead:%s%s\nbranch:%s%s\nlocks:%s"
         symbolFormat = 0x421df1 "\n\t%s: %s"
         descflag = true
         selectflag = true
         onlylockflag = false
         onlyRCSflag = false
         pre5 = false
         shownames = true
         revno = <optimized out>
#5  0x0000000000402659 in dispatch (argv=0x7ffcf5b876d0, argc=2, 
cmd=0x7ffcf5b882c9 "rlog", sub=0x40afb0 <rlog_main>, exitval=<synthetic 
pointer>) at super.c:74

Any idea on what would cause this?  I've looked at line 389 in the 
b-fro.c file but I don't see anything that would cause a segfault there.