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 <[EMAIL PROTECTED]>             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 <[EMAIL PROTECTED]>  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 [EMAIL PROTECTED]
        echo i860-stratus-sysv4
        exit 0 ;;
+    i*86:VOS:*:*)
+       # From [EMAIL PROTECTED]
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit 0 ;;
     *:VOS:*:*)
        # From [EMAIL PROTECTED]
        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 @@
 [EMAIL PROTECTED]@
 
 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 <[EMAIL PROTECTED]>
@@ -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 <[EMAIL PROTECTED]>
@@ -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 <[EMAIL PROTECTED]>
@@ -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

Reply via email to