head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.4 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.2 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q2:1.1.0.60 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.58 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.56 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.54 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.52 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.50 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.48 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.46 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.44 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.42 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.40 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.38 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.36 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.34 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.32 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.30 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.28 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.26 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.24 pkgsrc-2008Q1:1.1.0.22 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.20 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.18 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.16 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.14 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.0.12 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.0.10 pkgsrc-2006Q3-base:1.1 pkgsrc-2006Q2:1.1.0.8 pkgsrc-2006Q2-base:1.1 pkgsrc-2006Q1:1.1.0.6 pkgsrc-2006Q1-base:1.1 pkgsrc-2005Q4:1.1.0.4 pkgsrc-2005Q4-base:1.1 pkgsrc-2005Q3:1.1.0.2 pkgsrc-2005Q3-base:1.1; locks; strict; comment @# @; 1.2 date 2012.07.14.22.12.42; author dholland; state dead; branches; next 1.1; 1.1 date 2005.09.19.19.42.11; author adrianp; state Exp; branches; next ; desc @@ 1.2 log @Remove chat/centericq as promised. This has not been buildable for years due to C++ standards drift and has been superseded by centerim. @ text @$NetBSD: patch-aj,v 1.1 2005/09/19 19:42:11 adrianp Exp $ --- libgadu-0.1/libgadu.c.orig 2004-03-30 23:44:07.000000000 +0100 +++ libgadu-0.1/libgadu.c @@@@ -378,7 +378,7 @@@@ int gg_read(struct gg_session *sess, cha */ int gg_write(struct gg_session *sess, const char *buf, int length) { - int res; + int res = 0; #ifdef __GG_LIBGADU_HAVE_OPENSSL if (sess->ssl) { @@@@ -415,7 +415,8 @@@@ void *gg_recv_packet(struct gg_session * { struct gg_header h; char *buf = NULL; - int ret = 0, offset, size = 0; + int ret = 0; + unsigned int offset, size = 0; gg_debug(GG_DEBUG_FUNCTION, "** gg_recv_packet(%p);\n", sess); @@@@ -477,7 +478,7 @@@@ void *gg_recv_packet(struct gg_session * memcpy(&h, sess->recv_buf, sizeof(h)); /* jakieś sensowne limity na rozmiar pakietu */ - if (h.length < 0 || h.length > 65535) { + if (h.length > 65535) { gg_debug(GG_DEBUG_MISC, "// gg_recv_packet() invalid packet length (%d)\n", h.length); errno = ERANGE; return NULL; @@@@ -503,11 +504,18 @@@@ void *gg_recv_packet(struct gg_session * while (size > 0) { ret = gg_read(sess, buf + sizeof(h) + offset, size); gg_debug(GG_DEBUG_MISC, "// gg_recv_packet() body recv(%d,%p,%d) = %d\n", sess->fd, buf + sizeof(h) + offset, size, ret); + if (!ret) { + gg_debug(GG_DEBUG_MISC, "// gg_recv_packet() failed: connection broken\n"); + errno = ECONNRESET; + return NULL; + } if (ret > -1 && ret <= size) { offset += ret; size -= ret; } else if (ret == -1) { + int errno2 = errno; gg_debug(GG_DEBUG_MISC, "// gg_recv_packet() body recv() failed (errno=%d, %s)\n", errno, strerror(errno)); + errno = errno2; if (errno == EAGAIN) { gg_debug(GG_DEBUG_MISC, "// gg_recv_packet() %d bytes received, %d left\n", offset, size); sess->recv_buf = buf; @@@@ -558,9 +566,9 @@@@ int gg_send_packet(struct gg_session *se { struct gg_header *h; char *tmp; - int tmp_length; + unsigned int tmp_length; void *payload; - int payload_length; + unsigned int payload_length; va_list ap; int res; @@@@ -584,7 +592,9 @@@@ int gg_send_packet(struct gg_session *se while (payload) { char *tmp2; - payload_length = va_arg(ap, int); + if (payload_length < 0) + gg_debug(GG_DEBUG_MISC, "// gg_send_packet() invalid payload length (%d)\n", payload_length); + payload_length = va_arg(ap, unsigned int); if (payload_length < 0) gg_debug(GG_DEBUG_MISC, "// gg_send_packet() invalid payload length (%d)\n", payload_length); @@@@ -1150,7 +1160,7 @@@@ int gg_image_reply(struct gg_session *se struct gg_send_msg s; const char *tmp; char buf[1910]; - int res; + int res = -1; gg_debug(GG_DEBUG_FUNCTION, "** gg_image_reply(%p, %d, \"%s\", %p, %d);\n", sess, recipient, filename, image, size); @ 1.1 log @Security fix for centericq via Debian http://secunia.com/advisories/16240/ @ text @d1 1 a1 1 $NetBSD$ @