diff options
author | marcus <marcus@FreeBSD.org> | 2004-05-12 11:23:38 +0800 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2004-05-12 11:23:38 +0800 |
commit | 2929dee48896252ca9908f318949cdfd10a0a080 (patch) | |
tree | 1789d67165981ad3c66aed63d77bd6e97c258a0d /net | |
parent | e7a0ed783186ae706ee9ad5966d5ca7de2de1389 (diff) | |
download | freebsd-ports-gnome-2929dee48896252ca9908f318949cdfd10a0a080.tar.gz freebsd-ports-gnome-2929dee48896252ca9908f318949cdfd10a0a080.tar.zst freebsd-ports-gnome-2929dee48896252ca9908f318949cdfd10a0a080.zip |
Fix a potential crash when sending the MSN BYE command.
Submitted by: Jeremy Johnston <jeremy@smart-serv.net>
Obtained from: Gaim CVS
Diffstat (limited to 'net')
-rw-r--r-- | net/gaim/Makefile | 2 | ||||
-rw-r--r-- | net/gaim/files/patch-msn_bye_fix | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/net/gaim/Makefile b/net/gaim/Makefile index a0dcea02f99b..ad6b51f2e9a9 100644 --- a/net/gaim/Makefile +++ b/net/gaim/Makefile @@ -6,7 +6,7 @@ PORTNAME= gaim PORTVERSION= 0.77 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES?= net MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME} diff --git a/net/gaim/files/patch-msn_bye_fix b/net/gaim/files/patch-msn_bye_fix new file mode 100644 index 000000000000..7217a2748e7c --- /dev/null +++ b/net/gaim/files/patch-msn_bye_fix @@ -0,0 +1,45 @@ +diff -urp msn-old/servconn.c msn/servconn.c +--- src/protocols/msn-old/servconn.c 2004-05-07 22:59:52.240091544 -0500 ++++ src/protocols/msn/servconn.c 2004-05-07 23:00:21.214686736 -0500 +@@ -201,6 +201,12 @@ msn_servconn_destroy(MsnServConn *servco + + g_return_if_fail(servconn != NULL); + ++ if (servconn->processing) ++ { ++ servconn->wasted = TRUE; ++ return; ++ } ++ + session = servconn->session; + + session->servconns = g_list_remove(session->servconns, servconn); +@@ -568,6 +574,8 @@ read_cb(gpointer data, gint source, Gaim + + end = old_rx_buf = servconn->rx_buf; + ++ servconn->processing = TRUE; ++ + do + { + cur = end; +@@ -608,6 +616,8 @@ read_cb(gpointer data, gint source, Gaim + } + } while (servconn->connected && servconn->rx_len); + ++ servconn->processing = FALSE; ++ + if (servconn->connected) + { + if (servconn->rx_len) +diff -urp msn-old/servconn.h msn/servconn.h +--- src/protocols/msn-old/servconn.h 2004-04-12 23:08:22.000000000 -0500 ++++ src/protocols/msn/servconn.h 2004-05-06 02:07:03.000000000 -0500 +@@ -45,6 +45,7 @@ struct _MsnServConn + MsnSession *session; + + gboolean connected; ++ gboolean processing; + gboolean wasted; + + MsnHttpMethodData *http_data; |