What | Removed | Added |
---|---|---|
Flags | needinfo?(jh@suse.com) | |
CC | jh@suse.com |
(In reply to Jiri Slaby from comment #0) > rsync crashes in vim-plugins' build: > https://build.opensuse.org/package/live_build_log/editors/vim-plugins/ > openSUSE_Tumbleweed/x86_64 > > I believe it's due to glibc-2.38 update. If I update glibc to 2.38 only, > rsync-3.2.7-3.1 does not crash. > > As soon as I update to rsync-3.2.7-3.2 (I believe the one rebuilt against > this very new glibc), I see: > $ rsync -FFXHav '--filter=merge global-rsync-filter' Align-37-43/ xxx > sending incremental file list > *** buffer overflow detected ***: terminated > rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] > rsync error: error in rsync protocol data stream (code 12) at io.c(231) > [Receiver=3.2.7] > Neúspěšně ukončen (SIGABRT) (core dumped [obraz paměti uložen]) > > gdb says: > > #3 0x00007f2a31226917 in __GI_abort () at abort.c:79 > > #4 0x00007f2a312277e3 in __libc_message (fmt=fmt@entry=0x7f2a313b030c "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150 > > #5 0x00007f2a31327bdb in __GI___fortify_fail (msg=msg@entry=0x7f2a313b02f3 "buffer overflow detected") at fortify_fail.c:24 > > #6 0x00007f2a31327506 in __GI___chk_fail () at chk_fail.c:28 > > #7 0x00007f2a31329279 in __strlcpy_chk (s1=<optimized out>, s2=<optimized out>, n=<optimized out>, s1len=<optimized out>) at strlcpy_chk.c:28 > > 27 if (__glibc_unlikely (s1len < n)) > > 28 __chk_fail (); > > #8 0x0000559d0acf778a in strlcpy (__n=4096, __src=0x7ffece39ae20 "xslaby/pokus/Align-37-43/", __dest=0x559d0ad61886 <dirbuf.lto_priv+6> "") > > at /usr/include/bits/string_fortified.h:156 > > 156 return __strlcpy_chk (__dest, __src, __n, __glibc_objsize (__dest)); > > How does it come __glibc_objsize(dirbuf.lto_priv+6) is less than 4096? Provided it comes from parse_merge_name(): 602 static char buf[MAXPATHLEN]; ... 653 return buf; Is it an LTO fallout? Or gcc 13.2 fallout? > > #9 setup_merge_file (mergelist_num=mergelist_num@entry=0, ex=ex@entry=0x559d0bf84b40, lp=lp@entry=0x559d0bf84b90) at /usr/src/debug/rsync-3.2.7/exclude.c:737 > 737 strlcpy(y, save, MAXPATHLEN); > > #10 0x0000559d0acf7d94 in push_local_filters (dir=dir@entry=0x7ffece39c000 ".", dirlen=dirlen@entry=1) at /usr/src/debug/rsync-3.2.7/exclude.c:806 > > #11 0x0000559d0acf8259 in change_local_filter_dir (dname=0x7ffece39c000 ".", dlen=1, dir_depth=0) at /usr/src/debug/rsync-3.2.7/exclude.c:899 > > #12 0x0000559d0acef91c in send_file_list (f=4, argc=0, argv=0x559d0bf84898) at /usr/src/debug/rsync-3.2.7/flist.c:2453 > > #13 0x0000559d0ad07d4b in client_run (f_in=f_in@entry=5, f_out=f_out@entry=4, pid=pid@entry=6659, argc=argc@entry=1, argv=argv@entry=0x559d0bf84890) > > at /usr/src/debug/rsync-3.2.7/main.c:1315 > > #14 0x0000559d0ace2bdb in start_client (argv=0x559d0bf84890, argc=1) at /usr/src/debug/rsync-3.2.7/main.c:1613 > > #15 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/rsync-3.2.7/main.c:1873