dankamongmen / growlight

notcurses block device manager / system installation tool
https://nick-black.com/dankwiki/index.php/Growlight
GNU General Public License v3.0
85 stars 12 forks source link

starting woeusb while growlight is up leads to segfault #45

Closed dankamongmen closed 4 years ago

dankamongmen commented 4 years ago

on grimes, i started up woeusb to put windows10 on my samsung flash usb. boom! down comes growlight. starting it during this operation also frequently crashed.

Thread 41 (Thread 0x7fffedffb700 (LWP 94034)):
#0  0x0000555555576251 in print_dev (bo=0x7fffd0000e60, line=10, rows=<optimized out>, cols=80, topp=0, endp=0, rb=<optimized out>, rb=<optimized out>) at src/ncurses.c:1445
#1  0x000055555557860b in print_adapter_devs (endp=0, topp=0, cols=80, rows=15, as=0x7ffff0000e60) at src/ncurses.c:1487
#2  redraw_adapter (rb=<optimized out>) at src/ncurses.c:1620
#3  0x000055555557df4f in block_callback (d=<optimized out>, v=<optimized out>) at src/ncurses.c:6876
#4  0x00005555555602fd in rescan (d=0x7fffd0000b60, name=<optimized out>) at src/growlight.c:1133
#5  rescan (name=<optimized out>, d=<optimized out>) at src/growlight.c:915
#6  0x0000555555563a29 in rescan_device (name=0x7fffc0005320 "loop0") at src/growlight.c:2246

#7  0x000055555556ba90 in udev_event (gui=0x7fffffffe490) at src/udev.c:29
#8  0x00005555555634bc in event_posix_thread (unsafe=0x555555653850) at src/growlight.c:1658
#9  0x00007ffff780757f in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007ffff77350e3 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff749e780 (LWP 93992)):
#0  0x00007ffff7810a6c in read () from /usr/lib/libpthread.so.0
#1  0x00007ffff7f134f0 in _nc_wgetch () from /usr/lib/libncursesw.so.6
#2  0x00007ffff7f13f29 in wgetch () from /usr/lib/libncursesw.so.6
#3  0x000055555555c1c4 in handle_ncurses_input (w=0x5555555e73e0) at src/ncurses.c:6280
#4  main (argc=<optimized out>, argv=<optimized out>) at src/ncurses.c:7118
(gdb) 
dankamongmen commented 4 years ago
53433.628437]  sdc: sdc1
[53575.989169] growlight-curse[97776]: segfault at 340000002a ip 000055f33f64f251 sp 0000003400000032 error 6 in growlight-curses[55f33f634000+2a000]
[53575.989186] Code: 9d 60 ff ff ff e9 9f fb ff ff 0f 1f 80 00 00 00 00 48 8b 9d 58 ff ff ff 8b 85 48 ff ff ff 8b b5 6c ff ff ff 48 8b 3b 8d 50 fe <e8> 2a 59 fe ff 83 f8 ff 0f 84 72 f3 ff ff 8b 35 bb 4b 02 00 48 8b
[53597.870550]  sdc: sdc1
dankamongmen commented 4 years ago
[grimes](0) $ mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=8111064k,nr_inodes=2027766,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sda2 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=28,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=2611)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/mapper/home on /home type ext4 (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1632824k,mode=700,uid=1000,gid=985)
schwarzgerat:/media/chungus on /media/schwarzgerat type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=985)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=985)
/home/dank/Win10_1809Oct_v2_English_x64.iso on /media/woeusb_source_1568924430_97923 type udf (ro,relatime,utf8)
/dev/sdc1 on /media/woeusb_target_1568924430_97923 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
[grimes](0) $ 
[grimes](139) $ sudo ./growlight-readline
No ZFS support in this build.   n/a 391.64G  512B none  home                ?├┘│
Short read 0/512 from sdb       n/a    0.00  512B none  n/a               n/a  │
Unknown transport type 7 on sdc n/a    0.00  512B none  n/a               n/a  │
Couldn't inotify on /dev/md/ (No such file or directory)n/a               n/a  │
Couldn't read link at /sys/class/block/securityfs (No such file or directory)──╯
Couldn't read link at /sys/class/block/cgroup2 (No such file or directory)
Couldn't read link at /sys/class/block/cgroup (No such file or directory)──[-]─╮
Couldn't read link at /sys/class/block/pstore (No such file or directory)PATA  │
Couldn't read link at /sys/class/block/efivarfs (No such file or directory)────╯
Couldn't read link at /sys/class/block/bpf (No such file or directory)
Couldn't read link at /sys/class/block/cgroup (No such file or directory)──[-]─╮
Couldn't read link at /sys/class/block/cgroup (No such file or directory)─────┐│
Couldn't read link at /sys/class/block/cgroup (No such file or directory)3333m││
Couldn't read link at /sys/class/block/cgroup (No such file or directory)SAT3├┘│
Couldn't read link at /sys/class/block/cgroup (No such file or directory)──────╯
Couldn't read link at /sys/class/block/cgroup (No such file or directory)
Couldn't read link at /sys/class/block/cgroup (No such file or directory)──[-]─╮
Couldn't read link at /sys/class/block/cgroup (No such file or directory)─────┐│
Couldn't read link at /sys/class/block/cgroup (No such file or directory)11112││
Couldn't read link at /sys/class/block/systemd-1 (No such file or directory)?├┘│
Couldn't read link at /sys/class/block/hugetlbfs (No such file or directory)───╯
Couldn't read link at /sys/class/block/mqueue (No such file or directory)
Couldn't read link at /sys/class/block/schwarzgerat:/media/chungus (No such file or directory)
Couldn't read link at /sys/class/block/gvfsd-fuse (No such file or directory)
Already had mounttype for sdc1: ntfs (got fuseblk)
[growlight](0)> 
dankamongmen commented 4 years ago

result:

╭──────[xhci_pci-0 (8Gbps to Southbridge, 133Mbps (1%) demanded)]──────────[-]─╮
│        sdc┌──⇗⇨⇨⇨sdc1───────────────────────────────────────────────────────┐│
│  removable│me1111111111111111 ntfs “Windows USB” (128.31G) 11111111111111112││
│     no i/o└┤Flash Drive      1100 128.32G  512B dos   2091930909406095 PATA├┘│
╰─────[PCI Express device 0000:3f.00.0 (x4, gen 1.0)]──────────────────────────╯

╭─press 'v' to dismiss details───────────────────────────────────────────────╮
│Intel Corporation JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpi│
│Firmware: N27ET36W (1.22 ) BIOS: LENOVO Load: 133Mbps                       │
│sdc: Flash Drive1100 (119.50GiB) S/N:  WC- WRVx RO-                         │
│Sectors: 250626566 (512B logical / 512B physical) PATA (133Mbps)            │
│Partitioning: dos I/O scheduler: [mq-deadline] none                         │
│ 119.50GiB P₀₁ 8192→250625541 sdc1 (unnamed) 0000 4MiB align                │
│           ntfs “Windows USB”                                               │
╰────────────────────────────────────────────────────────────────────────────╯
dankamongmen commented 4 years ago
==22352== Memcheck, a memory error detector
==22352== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==22352== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==22352== Command: ./growlight-curses
==22352== 
==22352== Warning: noted but unhandled ioctl 0x127a with no size/direction hints.
==22352==    This could cause spurious value errors to appear.
==22352==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==22352== Thread 3:
==22352== Conditional jump or move depends on uninitialised value(s)
==22352==    at 0x4D86883: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D87465: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352==    by 0x1144C1: scan_device (growlight.c:1398)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==    by 0x53292EE: clone (clone.S:95)
==22352== 
==22352== Warning: noted but unhandled ioctl 0x1278 with no size/direction hints.
==22352==    This could cause spurious value errors to appear.
==22352==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==22352== Conditional jump or move depends on uninitialised value(s)
==22352==    at 0x4D86883: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D874AA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352==    by 0x1144C1: scan_device (growlight.c:1398)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==    by 0x53292EE: clone (clone.S:95)
==22352== 
==22352== Use of uninitialised value of size 8
==22352==    at 0x527DF4B: _itoa_word (_itoa.c:179)
==22352==    by 0x529789F: __vfprintf_internal (vfprintf-internal.c:1644)
==22352==    by 0x52A9C80: __vasprintf_internal (vasprintf.c:57)
==22352==    by 0x4D736FA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D737CE: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D874AA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352== 
==22352== Conditional jump or move depends on uninitialised value(s)
==22352==    at 0x527DF5D: _itoa_word (_itoa.c:179)
==22352==    by 0x529789F: __vfprintf_internal (vfprintf-internal.c:1644)
==22352==    by 0x52A9C80: __vasprintf_internal (vasprintf.c:57)
==22352==    by 0x4D736FA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D737CE: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D874AA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352== 
==22352== Conditional jump or move depends on uninitialised value(s)
==22352==    at 0x5298440: __vfprintf_internal (vfprintf-internal.c:1644)
==22352==    by 0x52A9C80: __vasprintf_internal (vasprintf.c:57)
==22352==    by 0x4D736FA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D737CE: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D874AA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352== 
==22352== Conditional jump or move depends on uninitialised value(s)
==22352==    at 0x5297A0F: __vfprintf_internal (vfprintf-internal.c:1644)
==22352==    by 0x52A9C80: __vasprintf_internal (vasprintf.c:57)
==22352==    by 0x4D736FA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D737CE: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D874AA: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D86A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x4D7517A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==22352==    by 0x117CA0: probe_blkid_superblock (libblkid.c:127)
==22352==    by 0x1132B4: rescan (growlight.c:1031)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352== 
==22352== Warning: noted but unhandled ioctl 0x1279 with no size/direction hints.
==22352==    This could cause spurious value errors to appear.
==22352==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==22352== Thread 2:
==22352== Invalid read of size 8
==22352==    at 0x48F0035: _nc_screen_of (in /lib/x86_64-linux-gnu/libtinfo.so.6.1)
==22352==    by 0x489E581: del_panel (in /usr/lib/x86_64-linux-gnu/libpanelw.so.6.1)
==22352==    by 0x13286F: free_reelbox (ncurses.c:3313)
==22352==    by 0x13295D: push_adapters_below (ncurses.c:3344)
==22352==    by 0x134D47: resize_adapter (ncurses.c:3876)
==22352==    by 0x13C7FE: block_callback (ncurses.c:6835)
==22352==    by 0x113A3E: rescan (growlight.c:1136)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352==    by 0x113FE3: scan_mdalias (growlight.c:1294)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==  Address 0x204afa98 is 8 bytes inside a block of size 296 free'd
==22352==    at 0x48369AB: free (vg_replace_malloc.c:540)
==22352==    by 0x48BAE15: ??? (in /lib/x86_64-linux-gnu/libncursesw.so.6.1)
==22352==    by 0x13283C: free_reelbox (ncurses.c:3312)
==22352==    by 0x13295D: push_adapters_below (ncurses.c:3344)
==22352==    by 0x134D47: resize_adapter (ncurses.c:3876)
==22352==    by 0x13C7FE: block_callback (ncurses.c:6835)
==22352==    by 0x113A3E: rescan (growlight.c:1136)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352==    by 0x113FE3: scan_mdalias (growlight.c:1294)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==  Block was alloc'd at
==22352==    at 0x4837B65: calloc (vg_replace_malloc.c:762)
==22352==    by 0x48BAEF9: ??? (in /lib/x86_64-linux-gnu/libncursesw.so.6.1)
==22352==    by 0x48BB11E: newwin_sp (in /lib/x86_64-linux-gnu/libncursesw.so.6.1)
==22352==    by 0x132001: create_reelbox (ncurses.c:3182)
==22352==    by 0x13BE67: adapter_callback (ncurses.c:6610)
==22352==    by 0x13C6C1: block_callback (ncurses.c:6810)
==22352==    by 0x113A3E: rescan (growlight.c:1136)
==22352==    by 0x113AF6: create_new_device_inner (growlight.c:1154)
==22352==    by 0x113C4B: create_new_device (growlight.c:1196)
==22352==    by 0x113EBC: lookup_device (growlight.c:1266)
==22352==    by 0x1144C1: scan_device (growlight.c:1398)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352== 
==22352== Invalid read of size 8
==22352==    at 0x12A781: print_blockbar (ncurses.c:1016)
==22352==    by 0x12C702: print_dev (ncurses.c:1424)
==22352==    by 0x12C957: print_adapter_devs (ncurses.c:1475)
==22352==    by 0x12D546: redraw_adapter (ncurses.c:1608)
==22352==    by 0x13C87C: block_callback (ncurses.c:6842)
==22352==    by 0x113A3E: rescan (growlight.c:1136)
==22352==    by 0x116BC4: rescan_device (growlight.c:2249)
==22352==    by 0x120F56: udev_event (udev.c:29)
==22352==    by 0x11528D: event_posix_thread (growlight.c:1661)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==    by 0x53292EE: clone (clone.S:95)
==22352==  Address 0x18 is not stack'd, malloc'd or (recently) free'd
==22352== 
==22352== 
==22352== Process terminating with default action of signal 11 (SIGSEGV)
==22352==  Access not within mapped region at address 0x18
==22352==    at 0x12A781: print_blockbar (ncurses.c:1016)
==22352==    by 0x12C702: print_dev (ncurses.c:1424)
==22352==    by 0x12C957: print_adapter_devs (ncurses.c:1475)
==22352==    by 0x12D546: redraw_adapter (ncurses.c:1608)
==22352==    by 0x13C87C: block_callback (ncurses.c:6842)
==22352==    by 0x113A3E: rescan (growlight.c:1136)
==22352==    by 0x116BC4: rescan_device (growlight.c:2249)
==22352==    by 0x120F56: udev_event (udev.c:29)
==22352==    by 0x11528D: event_posix_thread (growlight.c:1661)
==22352==    by 0x5216FB6: start_thread (pthread_create.c:486)
==22352==    by 0x53292EE: clone (clone.S:95)
==22352==  If you believe this happened as a result of a stack
==22352==  overflow in your program's main thread (unlikely but
==22352==  possible), you can try to increase the size of the
==22352==  main thread stack using the --main-stacksize= flag.
==22352==  The main thread stack size used in this run was 8388608.
==22352== 
==22352== HEAP SUMMARY:
==22352==     in use at exit: 1,456,562 bytes in 12,900 blocks
==22352==   total heap usage: 1,637,930 allocs, 1,625,030 frees, 1,401,645,367 bytes allocated
==22352== 
==22352== LEAK SUMMARY:
==22352==    definitely lost: 3,416 bytes in 3 blocks
==22352==    indirectly lost: 18 bytes in 2 blocks
==22352==      possibly lost: 448 bytes in 5 blocks
==22352==    still reachable: 1,452,680 bytes in 12,890 blocks
==22352==         suppressed: 0 bytes in 0 blocks
==22352== Rerun with --leak-check=full to see details of leaked memory
==22352== 
==22352== Use --track-origins=yes to see where uninitialised values come from
==22352== For lists of detected and suppressed errors, rerun with: -s
==22352== ERROR SUMMARY: 557 errors from 8 contexts (suppressed: 0 from 0)
dankamongmen commented 4 years ago

All that push_adapters_below stuff had to do with #23, which has been fixed. Not sure about the print_blockbar at the very end, though. I can't seem to reproduce this right now :/.

dankamongmen commented 4 years ago

Still happening. Most easily reproduced by opening woeusbgui and clicking "Install". It doesn't happen until then.

dankamongmen commented 4 years ago

If the woeusb is interrupted, we segfault out while starting:

Thread 1 (Thread 0x7ffff70117c0 (LWP 138217)):
#0  0x0000555555574f71 in print_dev (bo=0x7fffd4001eb0, line=10, rows=<optimized out>, cols=80, topp=0, endp=0, rb=<optimized out>, rb=<optimized out>) at src/ncurses.c:1435
#1  0x00005555555775fb in print_adapter_devs (endp=0, topp=0, cols=80, rows=15, as=0x7ffff0000ea0) at src/ncurses.c:1477
#2  redraw_adapter (rb=<optimized out>) at src/ncurses.c:1612
#3  0x000055555557c9f7 in block_callback (d=<optimized out>, v=<optimized out>) at src/ncurses.c:6873
#4  0x0000555555564cf9 in parse_mounts (gui=0x7fffffffe4b0, fn=fn@entry=0x5555555865c7 "/proc/mounts") at src/mounts.c:245
#5  0x00005555555604cd in growlight_init (argc=<optimized out>, argv=<optimized out>, ui=<optimized out>, disphelp=<optimized out>) at src/growlight.c:2051
#6  0x000055555555c1c8 in main (argc=1, argv=0x7fffffffe5e8) at src/ncurses.c:7103
(gdb) 

perhaps due to the loop device:

[growlight](0)> blockdev
Device     Model             Rev   Bytes PSect Flags Table WWN              PHY 
sda        Samsung SSD 850  2B6Q 500.10G  512B ✔.W⚠. gpt   5002538d410be12f SAT3
dm-0       Linux devmapper   n/a 391.64G  512B VD... n/a   home             ?   
loop4      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop6      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop3      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop5      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop7      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop0      /home/dank/Win10  n/a   5.38G  512B VO... none  n/a              n/a 
loop2      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop1      n/a               n/a    0.00  512B VO... none  n/a              n/a 
sdc        My Passport 0844 1025   2.00T  512B .OW.B dos   50014ee2b4193aaa SAT3
sdd        Extreme Pro         0 128.04G  512B R.W.B dos   5001b4405f0a4ef3 SAT3
sdb        SD/MMC           1.00    0.00  512B UO... none  n/a              PATA

    Flags:  (R)emovable, (U)nloaded, (V)irtual, (M)dadm, (Z)pool,
        (D)M, r(O)tational, (r)ead-only, (W)ritecache enabled,
        (B)IOS bootable, v/⚠: Read-Write-Verify, ✓/✗/☠: SMART status
[growlight](0)> 
dankamongmen commented 4 years ago

I don't even need to detach the loop device; unmounting it is sufficient for growlight to successfully start. So our problem seems rooted there.

dankamongmen commented 4 years ago
[growlight](0)> blockdev -v
Device     Model             Rev   Bytes PSect Flags Table WWN              PHY 
sda        Samsung SSD 850  2B6Q 500.10G  512B ✔.W⚠. gpt   5002538d410be12f SAT3
Unused sectors 0:2047 (1023.50Ki)
sda1       8737d129-a5ff-4158-891e-a0c3de681b80 536.87M ESP n/a
GRIMESESP         vfat  4A46-49F5                            sda1   535.80M
 /boot/efi rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
sda2       51cb91e6-c93e-2a41-bffb-dc7ca38ad32a 107.91G Oth n/a
grimes            ext4  17a0a7c5-6497-4457-b27d-80d84a724516 sda2   105.68G
 / rw,relatime
sda3       288e9cbb-34b4-0a41-ae11-2f1ef16b1165 391.65G Oth n/a
Unused sectors 976773135:976773168 (16.50Ki)
loop2      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop3      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop5      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop4      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop0      /home/dank/Win10  n/a   5.38G  512B VO... none  n/a              n/a 
CCCOMA_X64FRE_EN- udf   b39280004d532055                     loop0    5.38G
 /media/woeusb_source_1573765308_169927 ro,relatime,utf8
loop7      n/a               n/a    0.00  512B VO... none  n/a              n/a 
dm-0       Linux devmapper   n/a 391.64G  512B VD... n/a   home             ?   
grimeshome        ext4  0572db93-21bc-4d81-a22b-3f176929f77b dm-0   384.42G
 /home rw,relatime
loop6      n/a               n/a    0.00  512B VO... none  n/a              n/a 
loop1      n/a               n/a    0.00  512B VO... none  n/a              n/a 
sdc        My Passport 0844 1025   2.00T  512B .OW.B dos   50014ee2b4193aaa SAT3
Unused sectors 0:2047 (1023.50Ki)
sdc1       0bfa6ca4-01                            2.00T Oth n/a
sdd        Extreme Pro         0 128.04G  512B R.W.B dos   5001b4405f0a4ef3 SAT3
Unused sectors 0:8191 (3.99Mi)
sdd1       7dc3f133-01                          128.03G Oth n/a
Windows USB       fuseb 7F7A645975D5AFF0                     sdd1   128.03G
 /media/woeusb_target_1573765308_169927 rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sdd2       7dc3f133-02                          524.28K Oth n/a
sdb        SD/MMC           1.00    0.00  512B UO... none  n/a              PATA

    Flags:  (R)emovable, (U)nloaded, (V)irtual, (M)dadm, (Z)pool,
        (D)M, r(O)tational, (r)ead-only, (W)ritecache enabled,
        (B)IOS bootable, v/⚠: Read-Write-Verify, ✓/✗/☠: SMART status
[growlight](0)> 
dankamongmen commented 4 years ago

If I comment out the internals of print_blockbar(), things work.

dankamongmen commented 4 years ago

We were incorrectly providing a size to swprintf. The segfault no longer occurs, though we now blow the bounding box:

│      loop0┌─────────────────────────────────────────────────────────────────┐│
│    virt udf “CCCOMA_X64FRE_EN-US_DV9” (5.38G) at /media/woeusb_source_157 啜 │
羑      ]i/o└┤/home/dank/Win10  n/a   5.38G  512B none  n/a               n/a├┘│
│      loop6  n/a               n/a    0.00  512B none  n/a               n/a  │