On Thu, 15 Jul 2021, Thomas Klausner wrote:
(gdb) bt #0 0x0000786f41f96a74 in strncmp () from /usr/lib/libc.so.12 #1 0x0000786f41f1fd61 in __getenvslot (name=name@entry=0x786f41fb2409 "NLSPATH", l_name=l_name@entry=7, allocate=allocate@entry=false) at /usr/src/lib/libc/stdlib/_env.c:261 #2 0x0000786f41f1fef1 in __findenvvar (name=name@entry=0x786f41fb2409 "NLSPATH", l_name=l_name@entry=7) at /usr/src/lib/libc/stdlib/_env.c:333 #3 0x0000786f41f1f946 in getenv (name=name@entry=0x786f41fb2409 "NLSPATH") at /usr/src/lib/libc/stdlib/getenv.c:73 #4 0x0000786f41f6cb57 in _catopen_l (name=name@entry=0x786f41fa2bb1 "libc", oflag=oflag@entry=1, loc=loc@entry=0x786f421f2ec0 <_lc_global_locale>) at /usr/src/lib/libc/nls/catopen.c:94 #5 0x0000786f41f6cbd1 in _catopen_l (name=name@entry=0x786f41fa2bb1 "libc", oflag=oflag@entry=1, loc=loc@entry=0x786f421f2ec0 <_lc_global_locale>) at /usr/src/lib/libc/nls/catopen.c:154 #6 0x0000786f41f6b6c9 in _strerror_lr (num=num@entry=32, buf=buf@entry=0x786f4633c000 <error: Cannot access memory at address 0x786f4633c000>, buflen=buflen@entry=2048, loc=loc@entry=0x786f421f2ec0 <_lc_global_locale>) at /usr/src/lib/libc/string/strerror_r.c:63 #7 0x0000786f41f64052 in _strerror_l (num=num@entry=32, loc=0x786f421f2ec0 <_lc_global_locale>) at /usr/src/lib/libc/string/strerror.c:94 #8 0x0000786f41f640bc in strerror (num=num@entry=32) at /usr/src/lib/libc/compat/../locale/setlocale_local.h:93 #9 0x00000001b7c2d1ec in error (status=1, errnum=32, message=<optimized out>) at /usr/src/external/gpl2/xcvs/bin/xcvs/../../dist/src/error.c:164 #10 0x0000786f41f6bc4f in __cxa_finalize (dso=dso@entry=0x0) at /usr/src/lib/libc/stdlib/atexit.c:222 #11 0x0000786f41f6b86d in exit (status=status@entry=0) at /usr/src/lib/libc/stdlib/exit.c:60 #12 0x00000001b7c9512b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/external/gpl2/xcvs/bin/xcvs/../../dist/src/main.c:1233
This looks like an atexit() handler `error()' trying to print a (localeized) error msg. for EPIPE and crashing in the C library. The CVS code is doing some iffy things in general: like calling exit() from within atexit() and signal handlers. -RVP
