win: fix memory leak in fill_win
Fixes the following memory leak reported by valgrind: 1,056 bytes in 24 blocks are definitely lost in loss record 83 of 111 at 0x483577F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x49DB0DD: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) by 0x49D8FB4: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) by 0x49DA63E: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) by 0x49DA751: xcb_wait_for_reply (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) by 0x11FD5B: fill_win (win.c:1165) by 0x117CE6: handle_new_windows (compton.c:1266) by 0x118065: _draw_callback (compton.c:1333) by 0x1184D0: draw_callback (compton.c:1426) by 0x49BF292: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) by 0x49C3344: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) by 0x11AD65: session_run (compton.c:2226) This one out of multiple code paths forgot to free the structure. Yeah, manual memory management is hard. :-)
This commit is contained in:
parent
fcec9fcd39
commit
23421b2ff8
|
@ -1176,6 +1176,7 @@ struct win *fill_win(session_t *ps, struct win *w) {
|
||||||
if (a->_class == XCB_WINDOW_CLASS_INPUT_ONLY) {
|
if (a->_class == XCB_WINDOW_CLASS_INPUT_ONLY) {
|
||||||
// No need to manage this window, but we still keep it on the window stack
|
// No need to manage this window, but we still keep it on the window stack
|
||||||
w->managed = false;
|
w->managed = false;
|
||||||
|
free(a);
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue