Author: pluto                        Date: Tue May  2 20:44:06 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix invalid free().

---- Files affected:
SOURCES:
   irssi-invalid_free.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/irssi-invalid_free.patch
diff -u /dev/null SOURCES/irssi-invalid_free.patch:1.1
--- /dev/null   Tue May  2 22:44:06 2006
+++ SOURCES/irssi-invalid_free.patch    Tue May  2 22:44:01 2006
@@ -0,0 +1,21 @@
+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
+@@ -55,11 +55,13 @@
+ void dcc_unregister_type(const char *type)
+ {
+       GSList *pos;
++      gpointer data;
+ 
+       pos = gslist_find_string(dcc_types, type);
+       if (pos != NULL) {
+-                dcc_types = g_slist_remove(dcc_types, pos->data);
+-              g_free(pos->data);
++              data = pos->data;
++              dcc_types = g_slist_remove(dcc_types, data);
++              g_free(data);
+       }
+ }
+ 
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to