mirror of
https://github.com/weechat/weechat.git
synced 2026-07-03 00:03:12 +02:00
gui: fix use after free bug in /filter del (issue #1309)
Deleting (freeing) a filter also frees its buffers, so refilter must happen before freeing. Disabling the filter temporarily fixes the bug. This fix disables the filter before filter_removing signal, though.
This commit is contained in:
@@ -2399,8 +2399,9 @@ COMMAND_CALLBACK(filter)
|
||||
ptr_filter = gui_filter_search_by_name (argv[2]);
|
||||
if (ptr_filter)
|
||||
{
|
||||
ptr_filter->enabled = 0; // disable before refilter
|
||||
gui_filter_all_buffers (ptr_filter); // refilter before free
|
||||
gui_filter_free (ptr_filter);
|
||||
gui_filter_all_buffers (ptr_filter);
|
||||
gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER,
|
||||
_("Filter \"%s\" deleted"),
|
||||
argv[2]);
|
||||
|
||||
Reference in New Issue
Block a user