Bug ID | 1214249 |
---|---|
Summary | rsync crashes when built with glibc-2.38 |
Classification | openSUSE |
Product | openSUSE Tumbleweed |
Version | Current |
Hardware | Other |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Basesystem |
Assignee | david.anes@suse.com |
Reporter | jslaby@suse.com |
QA Contact | qa-bugs@suse.de |
CC | pmonrealgonzalez@suse.com, schwab@suse.com |
Target Milestone | --- |
Found By | --- |
Blocker | --- |
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? > #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