Mercurial > pidgin.yaz
diff libgaim/protocols/oscar/oscar.c @ 15284:c2f15e2117dc
[gaim-migrate @ 18073]
gaim_xfer_new() can return NULL via g_return_if_fail(). It should therefore not be assumed that it returns a GaimXfer; check against its return value before proceeding when creating a GaimXfer.
committer: Tailor Script <tailor@pidgin.im>
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Thu, 04 Jan 2007 23:20:12 +0000 |
parents | 2e3ffe29f9ae |
children | e5c75076c6d1 |
line wrap: on
line diff
--- a/libgaim/protocols/oscar/oscar.c Thu Jan 04 19:21:10 2007 +0000 +++ b/libgaim/protocols/oscar/oscar.c Thu Jan 04 23:20:12 2007 +0000 @@ -6308,18 +6308,21 @@ account = gaim_connection_get_account(gc); xfer = gaim_xfer_new(account, GAIM_XFER_SEND, who); - gaim_xfer_ref(xfer); - gaim_xfer_set_init_fnc(xfer, peer_oft_sendcb_init); - gaim_xfer_set_cancel_send_fnc(xfer, peer_oft_cb_generic_cancel); - gaim_xfer_set_request_denied_fnc(xfer, peer_oft_cb_generic_cancel); - gaim_xfer_set_ack_fnc(xfer, peer_oft_sendcb_ack); - - conn = peer_connection_new(od, OSCAR_CAPABILITY_SENDFILE, who); - conn->flags |= PEER_CONNECTION_FLAG_INITIATED_BY_ME; - conn->flags |= PEER_CONNECTION_FLAG_APPROVED; - aim_icbm_makecookie(conn->cookie); - conn->xfer = xfer; - xfer->data = conn; + if (xfer) + { + gaim_xfer_ref(xfer); + gaim_xfer_set_init_fnc(xfer, peer_oft_sendcb_init); + gaim_xfer_set_cancel_send_fnc(xfer, peer_oft_cb_generic_cancel); + gaim_xfer_set_request_denied_fnc(xfer, peer_oft_cb_generic_cancel); + gaim_xfer_set_ack_fnc(xfer, peer_oft_sendcb_ack); + + conn = peer_connection_new(od, OSCAR_CAPABILITY_SENDFILE, who); + conn->flags |= PEER_CONNECTION_FLAG_INITIATED_BY_ME; + conn->flags |= PEER_CONNECTION_FLAG_APPROVED; + aim_icbm_makecookie(conn->cookie); + conn->xfer = xfer; + xfer->data = conn; + } return xfer; }