X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=irssi-invalid_free.patch;h=fbfa4ff37aa9412c7ab6cb9fe945754301e5b01b;hb=76eb776c43342eaac9aaf4544f9525994f7d4a68;hp=f5d2bcf86ad4486f6c2279cecf35859fd1396a7b;hpb=8e43aecda580fcb137ccfed7492f93d733d8aaa6;p=packages%2Firssi.git diff --git a/irssi-invalid_free.patch b/irssi-invalid_free.patch index f5d2bcf..fbfa4ff 100644 --- a/irssi-invalid_free.patch +++ b/irssi-invalid_free.patch @@ -1,8 +1,5 @@ -after call of g_slist_remove() the `pos` points to released area, -so dereferencing pos->data isn't acceptable. - ---- irssi-0.8.10/src/irc/dcc/dcc.c.orig 2005-10-19 04:13:31.000000000 +0200 -+++ irssi-0.8.10/src/irc/dcc/dcc.c 2006-05-02 22:33:11.000000000 +0200 +--- irssi-0.8.11/src/irc/dcc/dcc.c 2007-06-07 01:49:35.928848024 +0200 ++++ irssi-0.8.11/src/irc/dcc/dcc.c-new 2007-06-07 01:52:47.442154599 +0200 @@ -55,11 +55,13 @@ void dcc_unregister_type(const char *type) { @@ -11,8 +8,8 @@ so dereferencing pos->data isn't acceptable. pos = gslist_find_string(dcc_types, type); if (pos != NULL) { -- dcc_types = g_slist_remove(dcc_types, pos->data); - g_free(pos->data); +- dcc_types = g_slist_remove(dcc_types, pos->data); + data = pos->data; + dcc_types = g_slist_remove(dcc_types, data); + g_free(data);