aboutsummaryrefslogtreecommitdiff
path: root/libsylph
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-06-18 02:48:27 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-06-18 02:48:27 +0000
commit63f047eb5c4a21d42c14325ffde815338f40488e (patch)
tree7015e66e230d5ace2bf5bd5efa0c47c9ff9a55a2 /libsylph
parent12e6c3c5a0f3d2cac44569fd19a7b0c467cb7ef9 (diff)
fixes crash on cancel.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2581 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph')
-rw-r--r--libsylph/pop.c4
-rw-r--r--libsylph/session.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/libsylph/pop.c b/libsylph/pop.c
index aab918ee..4be646ba 100644
--- a/libsylph/pop.c
+++ b/libsylph/pop.c
@@ -890,6 +890,10 @@ static gint pop3_session_recv_data_as_file_finished(Session *session, FILE *fp,
if (pop3_retr_recv(pop3_session, fp, len) < 0)
return -1;
+ /* disconnected? */
+ if (!session->sock)
+ return -1;
+
if (pop3_session->msg[pop3_session->cur_msg].recv_time
== RECV_TIME_DELETE ||
(pop3_session->ac_prefs->rmmail &&
diff --git a/libsylph/session.c b/libsylph/session.c
index 7bb29347..0b561eda 100644
--- a/libsylph/session.c
+++ b/libsylph/session.c
@@ -419,6 +419,7 @@ gint session_send_msg(Session *session, SessionMsgType type, const gchar *msg)
{
gboolean ret;
+ g_return_val_if_fail(session->sock != NULL, -1);
g_return_val_if_fail(session->write_buf == NULL, -1);
g_return_val_if_fail(msg != NULL, -1);
g_return_val_if_fail(msg[0] != '\0', -1);
@@ -441,6 +442,7 @@ gint session_send_msg(Session *session, SessionMsgType type, const gchar *msg)
gint session_recv_msg(Session *session)
{
+ g_return_val_if_fail(session->sock != NULL, -1);
g_return_val_if_fail(session->read_msg_buf->len == 0, -1);
session->state = SESSION_RECV;
@@ -479,6 +481,7 @@ gint session_send_data(Session *session, FILE *data_fp, guint size)
{
gboolean ret;
+ g_return_val_if_fail(session->sock != NULL, -1);
g_return_val_if_fail(session->write_data_fp == NULL, -1);
g_return_val_if_fail(data_fp != NULL, -1);
g_return_val_if_fail(size != 0, -1);
@@ -514,6 +517,7 @@ gint session_send_data(Session *session, FILE *data_fp, guint size)
gint session_recv_data(Session *session, guint size, const gchar *terminator)
{
+ g_return_val_if_fail(session->sock != NULL, -1);
g_return_val_if_fail(session->read_data_buf->len == 0, -1);
session->state = SESSION_RECV;
@@ -555,6 +559,7 @@ static gboolean session_recv_data_idle_cb(gpointer data)
gint session_recv_data_as_file(Session *session, guint size,
const gchar *terminator)
{
+ g_return_val_if_fail(session->sock != NULL, -1);
g_return_val_if_fail(session->read_data_pos == 0, -1);
g_return_val_if_fail(session->read_data_fp == NULL, -1);