[ https://issues.apache.org/jira/browse/GUACAMOLE-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Couchman reassigned GUACAMOLE-1802: ---------------------------------------- Assignee: Nick Couchman > Regression: Fix for GUACAMOLE-1717 causes guacd segfault > -------------------------------------------------------- > > Key: GUACAMOLE-1802 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-1802 > Project: Guacamole > Issue Type: Bug > Components: guacd > Affects Versions: 1.5.2 > Environment: Red Hat Enterprise Linux 8.8, guacd 1.5.2, freerdp 2.2.0 > Reporter: Robert Scheck > Assignee: Nick Couchman > Priority: Critical > Labels: regression, segfault > > I'm the RPM package maintainer of {{guacd}} in Fedora and EPEL (for CentOS > Stream, RHEL, Rocky Linux etc.). I received a report that since the update of > {{guacd}} from 1.5.1 to 1.5.2 {{guacd}} segfaults when connecting via RDP > (downgrading to 1.5.1 again works around the issue). The traceback looks like > this: > {noformat} > (gdb) bt full > #0 __memset_avx2_unaligned_erms () at > ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:182 > No locals. > #1 0x00007f2e4ada6749 in memset (__len=164, __ch=0, __dest=0x0) at > /usr/include/bits/string_fortified.h:74 > No locals. > #2 freerdp_image_copy_from_pointer_data (pDstData=0x0, DstFormat=537168008, > nDstStep=164, nXDst=0, nYDst=0, nWidth=41, nHeight=39, xorMask=0x7f2e38386b90 > "", xorMaskLength=6396, > andMask=0x7f2e38080a20 > "\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\377\377\377\200\377\377\001\377\377\200\377", > <incomplete sequence \374>, andMaskLength=234, xorBpp=32, > palette=0x7f2e3804bdc8) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/codec/color.c:544 > pDstLine = 0x0 > y = 0 > dstBitsPerPixel = 32 > dstBytesPerPixel = 4 > __FUNCTION__ = "freerdp_image_copy_from_pointer_data" > #3 0x00007f2e4b067d47 in guac_rdp_pointer_new () from > /lib64/libguac-client-rdp.so > No symbol table info available. > #4 0x00007f2e4ad1e1c3 in update_pointer_new (pointer_new=0x7f2e3807a610, > context=0x7f2e38015780) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/cache/pointer.c:222 > pointer = 0x7f2e38386ad0 > cache = 0x7f2e3804c9d0 > pointer = <optimized out> > cache = <optimized out> > #5 update_pointer_new (context=0x7f2e38015780, pointer_new=0x7f2e3807a610) > at /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/cache/pointer.c:198 > pointer = <optimized out> > cache = <optimized out> > #6 0x00007f2e4ad78ae4 in fastpath_recv_update > (fastpath=fastpath@entry=0x7f2e3802f8e0, updateCode=updateCode@entry=11 '\v', > s=0x7f2e38033960) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/fastpath.c:467 > pointer_new = 0x7f2e3807a610 > rc = 0 > status = 0 > update = <optimized out> > context = 0x7f2e38015780 > pointer = 0x7f2e3802d690 > __FUNCTION__ = "fastpath_recv_update" > _log_cached_ptr = <optimized out> > #7 0x00007f2e4ad79097 in fastpath_recv_update_data (s=0x7f2e38384200, > fastpath=0x7f2e3802f8e0) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/fastpath.c:575 > size = 1361 > status = 0 > compression = <optimized out> > compressionFlags = <optimized out> > transport = 0x7f2e380271f0 > rdp = <optimized out> > bulkStatus = <optimized out> > updateCode = 11 '\v' > fragmentation = 0 '\000' > DstSize = 6646 > pDstData = 0x7f2e3f1c7030 " " > status = <optimized out> > size = <optimized out> > rdp = <optimized out> > bulkStatus = <optimized out> > updateCode = <optimized out> > fragmentation = <optimized out> > compression = <optimized out> > compressionFlags = <optimized out> > DstSize = <optimized out> > pDstData = <optimized out> > transport = <optimized out> > __FUNCTION__ = "fastpath_recv_update_data" > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > totalSize = <optimized out> > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > #8 fastpath_recv_updates (fastpath=0x7f2e3802f8e0, s=s@entry=0x7f2e38384200) > at /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/fastpath.c:659 > rc = -2 > update = 0x7f2e3802d2c0 > __FUNCTION__ = "fastpath_recv_updates" > #9 0x00007f2e4ad724e2 in rdp_recv_fastpath_pdu (s=0x7f2e38384200, > rdp=0x7f2e3801a850) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/rdp.c:1462 > length = 1365 > fastpath = 0x7f2e3802f8e0 > length = <optimized out> > fastpath = <optimized out> > __FUNCTION__ = "rdp_recv_fastpath_pdu" > _log_cached_ptr = 0x0 > _log_cached_ptr = 0x0 > flags = <optimized out> > _log_cached_ptr = 0x0 > #10 rdp_recv_pdu (rdp=rdp@entry=0x7f2e3801a850, s=s@entry=0x7f2e38384200) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/rdp.c:1470 > No locals. > #11 0x00007f2e4ad72fb3 in rdp_recv_callback (transport=<optimized out>, > s=0x7f2e38384200, extra=0x7f2e3801a850) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/rdp.c:1647 > status = 0 > rdp = 0x7f2e3801a850 > __FUNCTION__ = "rdp_recv_callback" > #12 0x00007f2e4ad7cfa4 in transport_check_fds > (transport=transport@entry=0x7f2e380271f0) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/transport.c:1062 > status = 1368 > recv_status = <optimized out> > received = 0x7f2e38384200 > now = <optimized out> > dueDate = 454091 > __FUNCTION__ = "transport_check_fds" > #13 0x00007f2e4ad73a57 in rdp_check_fds (rdp=0x7f2e3801a850) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/rdp.c:1707 > status = <optimized out> > transport = 0x7f2e380271f0 > __FUNCTION__ = "rdp_check_fds" > #14 0x00007f2e4ad5b1c1 in freerdp_check_fds (instance=0x7f2e380154f0) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/freerdp.c:333 > status = <optimized out> > rdp = <optimized out> > __FUNCTION__ = "freerdp_check_fds" > #15 0x00007f2e4ad5c226 in freerdp_check_event_handles > (context=0x7f2e38015780) at > /usr/src/debug/freerdp-2.2.0-10.el8.x86_64/libfreerdp/core/freerdp.c:381 > status = <optimized out> > __FUNCTION__ = "freerdp_check_event_handles" > #16 0x00007f2e4b06948d in guac_rdp_client_thread () from > /lib64/libguac-client-rdp.so > No symbol table info available. > #17 0x00007f2e4f4731ca in start_thread (arg=<optimized out>) at > pthread_create.c:479 > ret = <optimized out> > pd = <optimized out> > unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139836629378816, > -991114267329111259, 139836637768638, 139836637768639, 0, 139836629376512, > 892376756324326181, 892350843852217125}, mask_was_saved = 0}}, priv = {pad = > {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, > cleanup = 0x0, canceltype = 0}}} > not_first_call = <optimized out> > #18 0x00007f2e4de0ee73 in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 > No locals. > (gdb) > {noformat} > {{freerdp_image_copy_from_pointer_data()}} leads me back to [commit > 23e42fb6|https://github.com/apache/guacamole-server/commit/23e42fb6c5a5d58f82d9a91dc58036178896ba16] > which leads me to > [GUACAMOLE-1717|https://issues.apache.org/jira/browse/GUACAMOLE-1717]. > Reverting the commit mentioned above in a test build avoids the segfault, > which makes this IMHO a regression. -- This message was sent by Atlassian Jira (v8.20.10#820010)