.handle foo
.reload
.store
==301878==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 32 byte(s) in 1 object(s) allocated from:
#0 0x7f1916d2c0c1 in malloc (/usr/lib/libasan.so.8+0x12c0c1) (BuildId: b8a4241051a1621937fdc46e867ba7ecb56d96ea)
#1 0x55fa1f217ffb in n_malloc /home/michael/projects/eggdrop/src/mem.c:341
#2 0x55fa1f2b9ee5 in _user_malloc /home/michael/projects/eggdrop/src/userrec.c:58
#3 0x7f19149dbd60 in console_store .././console.mod/console.c:317
#4 0x55fa1f27bfb5 in builtin_dcc /home/michael/projects/eggdrop/src/tclhash.c:693
#5 0x55fa1f251dda in tcl_call_stringproc_cd /home/michael/projects/eggdrop/src/tcl.c:340
#6 0x7f1916a7b7e8 in TclNRRunCallbacks /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:4541
#7 0x7f1916a7d973 in TclEvalEx /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:5409
#8 0x7f1916a7e31a in Tcl_EvalEx /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:5075
#9 0x7f1916a7e33a in Tcl_Eval /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:6001
#10 0x7f1916a7e98f in Tcl_VarEvalVA /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:7001
#11 0x7f1916a7ea71 in Tcl_VarEval /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:7033
#12 0x55fa1f27c710 in trigger_bind /home/michael/projects/eggdrop/src/tclhash.c:745
#13 0x55fa1f27dcf9 in check_tcl_bind /home/michael/projects/eggdrop/src/tclhash.c:941
#14 0x55fa1f27e559 in check_tcl_dcc /home/michael/projects/eggdrop/src/tclhash.c:973
#15 0x55fa1f1bf248 in dcc_chat /home/michael/projects/eggdrop/src/dcc.c:1102
#16 0x55fa1f213a6d in mainloop main.c:803
#17 0x55fa1f217f16 in main main.c:1234
#18 0x7f1915627780 (/usr/lib/libc.so.6+0x27780) (BuildId: 503200d7fda94a5dc6058d7e0694e5d1dcb2e372)
#19 0x7f19156278b8 in __libc_start_main (/usr/lib/libc.so.6+0x278b8) (BuildId: 503200d7fda94a5dc6058d7e0694e5d1dcb2e372)
#20 0x55fa1f128554 in _start (/home/michael/eggdrop/eggdrop-1.10.2+0x27b554) (BuildId: 53a21df18bc1eab4c18d6e9ed8d33d822b0c246b)
Indirect leak of 9 byte(s) in 1 object(s) allocated from:
#0 0x7f1916d2c0c1 in malloc (/usr/lib/libasan.so.8+0x12c0c1) (BuildId: b8a4241051a1621937fdc46e867ba7ecb56d96ea)
#1 0x55fa1f217ffb in n_malloc /home/michael/projects/eggdrop/src/mem.c:341
#2 0x55fa1f2b9ee5 in _user_malloc /home/michael/projects/eggdrop/src/userrec.c:58
#3 0x7f19149dc126 in console_store .././console.mod/console.c:322
#4 0x55fa1f27bfb5 in builtin_dcc /home/michael/projects/eggdrop/src/tclhash.c:693
#5 0x55fa1f251dda in tcl_call_stringproc_cd /home/michael/projects/eggdrop/src/tcl.c:340
#6 0x7f1916a7b7e8 in TclNRRunCallbacks /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:4541
#7 0x7f1916a7d973 in TclEvalEx /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:5409
#8 0x7f1916a7e31a in Tcl_EvalEx /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:5075
#9 0x7f1916a7e33a in Tcl_Eval /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:6001
#10 0x7f1916a7e98f in Tcl_VarEvalVA /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:7001
#11 0x7f1916a7ea71 in Tcl_VarEval /usr/src/debug/tcl/tcl8.6.16/generic/tclBasic.c:7033
#12 0x55fa1f27c710 in trigger_bind /home/michael/projects/eggdrop/src/tclhash.c:745
#13 0x55fa1f27dcf9 in check_tcl_bind /home/michael/projects/eggdrop/src/tclhash.c:941
#14 0x55fa1f27e559 in check_tcl_dcc /home/michael/projects/eggdrop/src/tclhash.c:973
#15 0x55fa1f1bf248 in dcc_chat /home/michael/projects/eggdrop/src/dcc.c:1102
#16 0x55fa1f213a6d in mainloop main.c:803
#17 0x55fa1f217f16 in main main.c:1234
#18 0x7f1915627780 (/usr/lib/libc.so.6+0x27780) (BuildId: 503200d7fda94a5dc6058d7e0694e5d1dcb2e372)
#19 0x7f19156278b8 in __libc_start_main (/usr/lib/libc.so.6+0x278b8) (BuildId: 503200d7fda94a5dc6058d7e0694e5d1dcb2e372)
#20 0x55fa1f128554 in _start (/home/michael/eggdrop/eggdrop-1.10.2+0x27b554) (BuildId: 53a21df18bc1eab4c18d6e9ed8d33d822b0c246b)
SUMMARY: AddressSanitizer: 41 byte(s) leaked in 2 allocation(s).
after .handle and .reload dcc[idx].user becomes NULL, so get_user(&USERENTRY_CONSOLE, u) becomes NULL, a new struct is allocated and the old one rots away, see also:
|
static int console_store(struct userrec *u, int idx, char *par) |
|
{ |
|
struct console_info *i = get_user(&USERENTRY_CONSOLE, u); |
|
|
|
if (!i) { |
|
i = user_malloc(sizeof(struct console_info)); |
Yet, i dont know, if this is an error in
reload() after a handle change via
.handle or in console.mod.
after
.handleand.reloaddcc[idx].userbecomesNULL, soget_user(&USERENTRY_CONSOLE, u)becomesNULL, a new struct is allocated and the old one rots away, see also:eggdrop/src/mod/console.mod/console.c
Lines 305 to 310 in 3e2e287
Yet, i dont know, if this is an error in
reload()after a handle change via.handleor in console.mod.