From 63f047eb5c4a21d42c14325ffde815338f40488e Mon Sep 17 00:00:00 2001 From: hiro Date: Fri, 18 Jun 2010 02:48:27 +0000 Subject: fixes crash on cancel. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2581 ee746299-78ed-0310-b773-934348b2243d --- libsylph/pop.c | 4 ++++ libsylph/session.c | 5 +++++ 2 files changed, 9 insertions(+) (limited to 'libsylph') 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); -- cgit v1.2.3