Unfortunately I am not too good in C debugging. Maybe something in the option parsing is already broken.
ยป LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.8:./libdi.so.5 ./di -I ext4 FilesystemMountSizeUsedAvail%UsedType ================================================================= ==129349==ERROR: LeakSanitizer: detected memory leaks Direct leak of 5 byte(s) in 1 object(s) allocated from: #0 0x7fa7574f4c77 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x7fa757c8a7d6 in parseList /home-nvme/foo/di-5.0.13/dioptions.c:549 #2 0x7fa757c8ad84 in processOptionsVal /home-nvme/foo/di-5.0.13/dioptions.c:478 #3 0x7fa757c8965f in process_opt /home-nvme/foo/di-5.0.13/getoptn.c:261 #4 0x7fa757c8965f in getoptn /home-nvme/foo/di-5.0.13/getoptn.c:354 #5 0x7fa757c8b8b4 in processArgs /home-nvme/foo/di-5.0.13/dioptions.c:407 #6 0x7fa757c8e4a8 in di_get_options /home-nvme/foo/di-5.0.13/dioptions.c:281 #7 0x7fa757c81c98 in di_process_options /home-nvme/foo/di-5.0.13/dilib.c:204 #8 0x55ed95ea23a1 in main /home-nvme/foo/di-5.0.13/di.c:163 #9 0x7fa757233ca7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 SUMMARY: AddressSanitizer: 5 byte(s) leaked in 1 allocation(s). otherwise this is the best bt i can offer: #8 __GI___libc_free (mem=0x55555555d624) at ./malloc/malloc.c:3476 ar_ptr = 0x7ffff7f7dac0 <main_arena> p = 0x55555555d614 err = 2 #9 0x00007ffff7fb4834 in dinum_clear (r=0x7fffffffa490) at /home-nvme/foo/di-5.0.13/dimath.h:118 No locals. #10 checkDiskQuotas (di_data=di_data@entry=0x55555555c430) at /home-nvme/foo/di-5.0.13/dilib.c:1161 i = <optimized out> j = 0 uid = 1000 gid = 1000 diqinfo = { filesystem = 0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, mountpt = 0x3000055e3f0 <error: Cannot access memory at address 0x3000055e3f0>, fstype = 0x0, uid = 1432437704, gid = 21845, values = {{{ _mp_alloc = 46, _mp_size = 0, _mp_d = 0x55555555d624 }}, {{ _mp_alloc = 1432438072, _mp_size = 21845, _mp_d = 0x1 }}, {{ _mp_alloc = -134500720, _mp_size = 32767, _mp_d = 0x7ffff7fb4163 <di_sort_disk_info+787> }}, {{ _mp_alloc = 0, _mp_size = 0, _mp_d = 0x55555555d624 }}, {{ _mp_alloc = 0, _mp_size = 19, _mp_d = 0x5555556158a0 }}} } diopts = 0x55555555c5e0 #11 0x00007ffff7fb61b8 in di_get_all_disk_info (tdi_data=tdi_data@entry=0x55555555c430) at /home-nvme/foo/di-5.0.13/dilib.c:337 di_data = 0x55555555c430 diopts = 0x55555555c5e0 hasLoop = <optimized out> #12 0x0000555555556310 in main (argc=3, argv=0x7fffffffa848) at /home-nvme/foo/di-5.0.13/di.c:189 di_data = 0x55555555c430 exitflag = <optimized out>