diff -r 3949b825f4bf -r faf0414a8b51 libpurple/protocols/yahoo/libymsg.c --- a/libpurple/protocols/yahoo/libymsg.c Tue Aug 20 14:04:56 2013 +0200 +++ b/libpurple/protocols/yahoo/libymsg.c Wed Aug 21 14:59:29 2013 +0200 @@ -2339,11 +2339,13 @@ static void yahoo_p2p_write_pkt(gint source, struct yahoo_packet *pkt) { size_t pkt_len; + gssize written; guchar *raw_packet; /*build the raw packet and send it to the host*/ pkt_len = yahoo_packet_build(pkt, 0, 0, 0, &raw_packet); - if(write(source, raw_packet, pkt_len) != pkt_len) + written = write(source, raw_packet, pkt_len); + if (written < 0 || (gsize)written != pkt_len) purple_debug_warning("yahoo","p2p: couldn't write to the source\n"); g_free(raw_packet); }