Fix segfault

https://github.com/hexchat/hexchat/issues/2265
This commit is contained in:
SoniEx2 2018-11-01 21:39:29 -03:00
parent af0aa7904a
commit c725dd7814
1 changed files with 16 additions and 9 deletions

View File

@ -541,10 +541,13 @@ static int
plugin_hook_run (session *sess, char *name, char *word[], char *word_eol[], plugin_hook_run (session *sess, char *name, char *word[], char *word_eol[],
hexchat_event_attrs *attrs, int type) hexchat_event_attrs *attrs, int type)
{ {
/* fix segfault https://github.com/hexchat/hexchat/issues/2265 */
static int depth = 0;
GSList *list, *next; GSList *list, *next;
hexchat_hook *hook; hexchat_hook *hook;
int ret, eat = 0; int ret, eat = 0;
depth++;
list = hook_list; list = hook_list;
while (1) while (1)
{ {
@ -590,6 +593,9 @@ plugin_hook_run (session *sess, char *name, char *word[], char *word_eol[],
} }
xit: xit:
depth--;
if (!depth)
{
/* really remove deleted hooks now */ /* really remove deleted hooks now */
list = hook_list; list = hook_list;
while (list) while (list)
@ -603,6 +609,7 @@ xit:
} }
list = next; list = next;
} }
}
return eat; return eat;
} }