Changelog: ] * Applied patches selected from upstream CVS, to fix the following ] important issues in libgadu: ] - incorrect type punning could cause undefined behavior ] - assigning syscall return values to unsigned variable makes error ] conditions undetectable in some situations This also fixes three "uninitialized variable" warnings. Those issues are not reported as debian bugs, but I do consider them at least of important severity. The fixes are IMO as little intrusive as they could possibly be. The only other changes are - config.{sub,guess}, that changed since the last build - libgadu version timestamp updates to match upstream ones, since the applied fixes are also the only ones upstream in lib/ subdir patch attached Marcin -- Marcin Owsiany <porridge@debian.org> http://marcin.owsiany.pl/ GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216
diff -u ekg-1.5+20050411/debian/changelog ekg-1.5+20050411/debian/changelog --- ekg-1.5+20050411/debian/changelog +++ ekg-1.5+20050411/debian/changelog @@ -1,3 +1,13 @@ +ekg (1:1.5+20050411-2) unstable; urgency=high + + * Applied patches selected from upstream CVS, to fix the following important + issues in libgadu: + - incorrect type punning could cause undefined behavior + - assigning syscall return values to unsigned variable makes error + conditions undetectable in some situations + + -- Marcin Owsiany <porridge@debian.org> Sun, 8 May 2005 22:59:33 +0200 + ekg (1:1.5+20050411-1) unstable; urgency=high * New upstream snapshot (this one includes 1.6rc1 as well as some subsequent diff -u ekg-1.5+20050411/config.sub ekg-1.5+20050411/config.sub --- ekg-1.5+20050411/config.sub +++ ekg-1.5+20050411/config.sub @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2005-02-10' +timestamp='2005-04-22' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -231,6 +231,7 @@ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ @@ -262,7 +263,8 @@ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ @@ -298,7 +300,7 @@ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ - | bs2000-* \ + | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ @@ -336,7 +338,8 @@ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ diff -u ekg-1.5+20050411/config.guess ekg-1.5+20050411/config.guess --- ekg-1.5+20050411/config.guess +++ ekg-1.5+20050411/config.guess @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2005-03-24' +timestamp='2005-04-22' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -1140,6 +1140,10 @@ # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos --- ekg-1.5+20050411.orig/lib/libgadu.pc.in +++ ekg-1.5+20050411/lib/libgadu.pc.in @@ -4,7 +4,7 @@ includedir=@includedir@ Name: libgadu -Version: 20050411 +Version: 20050507 Description: libgadu Requires: @PC_REQUIRES@ Libs: -L${libdir} -lgadu @LIBS_LIBGADU@ --- ekg-1.5+20050411.orig/lib/events.c +++ ekg-1.5+20050411/lib/events.c @@ -1,4 +1,4 @@ -/* $Id: events.c,v 1.85 2005/03/20 00:43:44 szalik Exp $ */ +/* $Id: events.c,v 1.86 2005/04/12 15:39:22 szalik Exp $ */ /* * (C) Copyright 2001-2003 Wojtek Kaniewski <wojtekka@irc.pl> @@ -778,7 +778,7 @@ struct gg_event *e; int res = 0; int port = 0; - int errno2; + int errno2 = 0; gg_debug(GG_DEBUG_FUNCTION, "** gg_watch_fd(%p);\n", sess); @@ -822,8 +822,7 @@ } #endif - if (failed) - { + if (failed) { errno = errno2; goto fail_resolving; } @@ -1380,7 +1379,11 @@ free(sess->password); sess->password = NULL; - gg_debug(GG_DEBUG_MISC, "// gg_watch_fd() gg_dcc_ip = %s\n", inet_ntoa(*((struct in_addr*) &gg_dcc_ip))); + { + struct in_addr dcc_ip; + dcc_ip.s_addr = gg_dcc_ip; + gg_debug(GG_DEBUG_MISC, "// gg_watch_fd() gg_dcc_ip = %s\n", inet_ntoa(dcc_ip)); + } if (gg_dcc_ip == (unsigned long) inet_addr("255.255.255.255")) { struct sockaddr_in sin; --- ekg-1.5+20050411.orig/lib/http.c +++ ekg-1.5+20050411/lib/http.c @@ -1,4 +1,4 @@ -/* $Id: http.c,v 1.46 2005/03/20 00:43:44 szalik Exp $ */ +/* $Id: http.c,v 1.47 2005/04/14 18:55:05 wojtekka Exp $ */ /* * (C) Copyright 2001-2002 Wojtek Kaniewski <wojtekka@irc.pl> @@ -243,7 +243,7 @@ } if (h->state == GG_STATE_SENDING_QUERY) { - unsigned int res; + int res; if ((res = write(h->fd, h->query, strlen(h->query))) < 1) { gg_debug(GG_DEBUG_MISC, "=> http, write() failed (len=%d, res=%d, errno=%d)\n", strlen(h->query), res, errno); @@ -272,7 +272,7 @@ if (h->state == GG_STATE_READING_HEADER) { char buf[1024], *tmp; - unsigned int res; + int res; if ((res = read(h->fd, buf, sizeof(buf))) == -1) { gg_debug(GG_DEBUG_MISC, "=> http, reading header failed (errno=%d)\n", errno); @@ -380,7 +380,7 @@ if (h->state == GG_STATE_READING_DATA) { char buf[1024]; - unsigned int res; + int res; if ((res = read(h->fd, buf, sizeof(buf))) == -1) { gg_debug(GG_DEBUG_MISC, "=> http, reading body failed (errno=%d)\n", errno); --- ekg-1.5+20050411.orig/lib/libgadu.c +++ ekg-1.5+20050411/lib/libgadu.c @@ -1,4 +1,4 @@ -/* $Id: libgadu.c,v 1.143 2005/03/24 09:47:40 wojtekka Exp $ */ +/* $Id: libgadu.c,v 1.144 2005/04/12 15:39:22 szalik Exp $ */ /* * (C) Copyright 2001-2003 Wojtek Kaniewski <wojtekka@irc.pl> @@ -72,7 +72,7 @@ #ifdef __GNUC__ __attribute__ ((unused)) #endif -= "$Id: libgadu.c,v 1.143 2005/03/24 09:47:40 wojtekka Exp $"; += "$Id: libgadu.c,v 1.144 2005/04/12 15:39:22 szalik Exp $"; #endif /* @@ -408,7 +408,7 @@ */ 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) { @@ -1202,7 +1202,7 @@ 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); --- ekg-1.5+20050411.orig/lib/libgadu.h +++ ekg-1.5+20050411/lib/libgadu.h @@ -942,7 +942,7 @@ #define GG_DEFAULT_PROTOCOL_VERSION 0x20 #define GG_DEFAULT_TIMEOUT 30 #define GG_HAS_AUDIO_MASK 0x40000000 -#define GG_LIBGADU_VERSION "20050411" +#define GG_LIBGADU_VERSION "20050507" #define GG_DEFAULT_DCC_PORT 1550
Attachment:
signature.asc
Description: Digital signature