pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/33696: segfault in net/tinc



The following reply was made to PR pkg/33696; it has been noted by GNATS.

From: Miles Nordin <carton%Ivy.NET@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/33696: segfault in net/tinc
Date: Sun, 11 Jun 2006 16:47:36 -0400

 I think both these patches are needed---Guus (tinc maintainer
 upstream) found another instance of the same problem.  Guus has
 checked something into tinc's subversion repository which might be
 better to use, but I don't know how to use subversion.  IMHO is better
 to use these two patches than wait for the next tinc release, but you
 could also just wait.
 
 Index: distinfo
 ===================================================================
 RCS file: /scratch/cvsroot/netbsd/pkgsrc/net/tinc/distinfo,v
 retrieving revision 1.1.1.3
 diff -u -r1.1.1.3 distinfo
 --- distinfo   18 Jul 2005 13:09:31 -0000      1.1.1.3
 +++ distinfo   11 Jun 2006 20:12:19 -0000
 @@ -4,3 +4,5 @@
  RMD160 (tinc-1.0.4.tar.gz) = f4ec33a10f5039c625ec124376216cc03aa5f318
  Size (tinc-1.0.4.tar.gz) = 480305 bytes
  SHA1 (patch-aa) = c43fabf6e3b7a42f2817d36fff72f2c87747f890
 +SHA1 (patch-ac) = 6d30e360f0612c1240a5ce15293d43d3684ebccd
 +SHA1 (patch-ad) = 67fe4ca2aa3f9070c10d105b2c4b9977f40a5697
 Index: patches/patch-ac
 ===================================================================
 RCS file: patches/patch-ac
 diff -N patches/patch-ac
 --- /dev/null  1 Jan 1970 00:00:00 -0000
 +++ patches/patch-ac   29 May 2006 04:05:49 -0000
 @@ -0,0 +1,13 @@
 +$NetBSD$
 +
 +--- src/netutl.c.orig
 ++++ src/netutl.c
 +@@ -78,7 +78,7 @@
 +              return result;
 +      }
 + 
 +-     result = *(sockaddr_t *) ai->ai_addr;
 ++     memcpy(&result, (sockaddr_t *) ai->ai_addr, ai->ai_addr->sa_len);
 +      freeaddrinfo(ai);
 + 
 +      return result;
 Index: patches/patch-ad
 ===================================================================
 RCS file: patches/patch-ad
 diff -N patches/patch-ad
 --- /dev/null  1 Jan 1970 00:00:00 -0000
 +++ patches/patch-ad   11 Jun 2006 20:12:15 -0000
 @@ -0,0 +1,43 @@
 +$NetBSD$
 +
 +--- src/net_setup.c.orig
 ++++ src/net_setup.c
 +@@ -219,6 +219,7 @@
 +      char *address = NULL;
 +      char *envp[5];
 +      struct addrinfo *ai, *aip, hint = {0};
 ++     sockaddr_t sa;
 +      bool choice;
 +      int i, err;
 + 
 +@@ -486,25 +487,26 @@
 +      listen_sockets = 0;
 + 
 +      for(aip = ai; aip; aip = aip->ai_next) {
 ++             memcpy(&sa, (sockaddr_t *) aip->ai_addr, aip->ai_addr->sa_len);
 +              listen_socket[listen_sockets].tcp =
 +-                     setup_listen_socket((sockaddr_t *) aip->ai_addr);
 ++                     setup_listen_socket((sockaddr_t *) &sa);
 + 
 +              if(listen_socket[listen_sockets].tcp < 0)
 +                      continue;
 + 
 +              listen_socket[listen_sockets].udp =
 +-                     setup_vpn_in_socket((sockaddr_t *) aip->ai_addr);
 ++                     setup_vpn_in_socket((sockaddr_t *) &sa);
 + 
 +              if(listen_socket[listen_sockets].udp < 0)
 +                      continue;
 + 
 +              ifdebug(CONNECTIONS) {
 +-                     hostname = sockaddr2hostname((sockaddr_t *) 
aip->ai_addr);
 ++                     hostname = sockaddr2hostname((sockaddr_t *) &sa);
 +                      logger(LOG_NOTICE, _("Listening on %s"), hostname);
 +                      free(hostname);
 +              }
 + 
 +-             listen_socket[listen_sockets].sa.sa = *aip->ai_addr;
 ++             listen_socket[listen_sockets].sa = sa;
 +              listen_sockets++;
 +      }
 + 
 



Home | Main Index | Thread Index | Old Index