nx-libs
nx-libs copied to clipboard
heap-buffer-overflow on Display removal
Runnin nxagent :55 -ac
on a dual monitor setup the nxagent window was located on the first screen. I unplugged the HDMI cable of the second display and got this from the nxagent:
==31263==ERROR: AddressSanitizer: heap-use-after-free on address 0x617000002728 at pc 0x55ccbd9a94d9 bp 0x7ffc6eb194d0 sp 0x7ffc6eb194c8
READ of size 4 at 0x617000002728 thread T0
#0 0x55ccbd9a94d8 in nxagentDropOutput /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3787
#1 0x55ccbd9aa5ef in nxagentAdjustRandRXinerama /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3950
#2 0x55ccbd9a93a6 in nxagentChangeScreenConfig /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3759
#3 0x55ccbd952c75 in nxagentHandleConfigureNotify /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:3466
#4 0x55ccbd94a7e3 in nxagentDispatchEvents /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:1976
#5 0x55ccbd9830f8 in nxagentWakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Handlers.c:606
#6 0x55ccbd8b217a in WakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/dixutils.c:433
#7 0x55ccbd8e2147 in WaitForSomething /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/os/WaitFor.c:354
#8 0x55ccbd83b3d8 in Dispatch /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c:365
#9 0x55ccbd8c2fd8 in main /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/main.c:350
#10 0x7f070f4e109a in __libc_start_main ../csu/libc-start.c:308
#11 0x55ccbd7c32e9 in _start (/home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/nxagent+0xd02e9)
0x617000002728 is located 40 bytes inside of 728-byte region [0x617000002700,0x6170000029d8)
freed by thread T0 here:
#0 0x7f0710ee7fb0 in __interceptor_free (/lib/x86_64-linux-gnu/libasan.so.5+0xe8fb0)
#1 0x55ccbe4d1346 in RRCrtcDestroyResource /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/randr/rrcrtc.c:773
#2 0x55ccbd86d57c in FreeResource /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/NXresource.c:306
#3 0x55ccbe4d0fd9 in RRCrtcDestroy /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/randr/rrcrtc.c:742
#4 0x55ccbd9aa07d in nxagentAdjustRandRXinerama /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3914
#5 0x55ccbd9a93a6 in nxagentChangeScreenConfig /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3759
#6 0x55ccbd952c75 in nxagentHandleConfigureNotify /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:3466
#7 0x55ccbd94a7e3 in nxagentDispatchEvents /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:1976
#8 0x55ccbd9830f8 in nxagentWakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Handlers.c:606
#9 0x55ccbd8b217a in WakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/dixutils.c:433
#10 0x55ccbd8e2147 in WaitForSomething /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/os/WaitFor.c:354
#11 0x55ccbd83b3d8 in Dispatch /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c:365
#12 0x55ccbd8c2fd8 in main /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/main.c:350
#13 0x7f070f4e109a in __libc_start_main ../csu/libc-start.c:308
previously allocated by thread T0 here:
#0 0x7f0710ee8518 in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
#1 0x55ccbe4cd8bc in RRCrtcCreate /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/randr/rrcrtc.c:98
#2 0x55ccbd9aa093 in nxagentAdjustRandRXinerama /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3921
#3 0x55ccbd9a93a6 in nxagentChangeScreenConfig /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3759
#4 0x55ccbd95284b in nxagentHandleConfigureNotify /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:3445
#5 0x55ccbd94a7e3 in nxagentDispatchEvents /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Events.c:1976
#6 0x55ccbd9830f8 in nxagentWakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Handlers.c:606
#7 0x55ccbd8b217a in WakeupHandler /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/dixutils.c:433
#8 0x55ccbd8e2147 in WaitForSomething /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/os/WaitFor.c:354
#9 0x55ccbd83b3d8 in Dispatch /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c:365
#10 0x55ccbd8c2fd8 in main /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/dix/main.c:350
#11 0x7f070f4e109a in __libc_start_main ../csu/libc-start.c:308
SUMMARY: AddressSanitizer: heap-use-after-free /home/uli/work/nx/ArcticaProject/nx-libs/pr/windowfixes/nx-X11/programs/Xserver/hw/nxagent/Screen.c:3787 in nxagentDropOutput
Shadow bytes around the buggy address:
0x0c2e7fff8490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c2e7fff84a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c2e7fff84b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c2e7fff84c0: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
0x0c2e7fff84d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c2e7fff84e0: fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd fd
0x0c2e7fff84f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2e7fff8500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2e7fff8510: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2e7fff8520: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2e7fff8530: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==31263==ABORTING