]> git.puffer.fish Git - mirror/frr.git/commitdiff
[bgpd] fix crash on startup if compiled IPv4-only
authorPaul Jakma <paul.jakma@sun.com>
Tue, 29 Jan 2008 17:26:34 +0000 (17:26 +0000)
committerPaul Jakma <paul.jakma@sun.com>
Tue, 29 Jan 2008 17:26:34 +0000 (17:26 +0000)
2008-01-29 Jorge Boncompte <jorge@dti2.net>

* bgp_network.c: (bgp_socket) IPv4-only version crashes if -l is not
  used as address will be null.

bgpd/ChangeLog
bgpd/bgp_network.c

index 70bcc0fb98a31e14ecb8cee77d1246582fb16b7b..777801c324f5bdf2998044f0e1954df77f566ec3 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-29 Jorge Boncompte <jorge@dti2.net>
+
+       * bgp_network.c: (bgp_socket) IPv4-only version crashes if -l is not
+         used as address will be null.
+
 2007-12-22 Paul Jakma <paul.jakma@sun.com>
 
        * Fix series of vulnerabilities reported by "Mu Security
index 6b8c8a4490cb5febab0182379583445dca205803..8452545d0adad91a581e1d6c80184ff75642753c 100644 (file)
@@ -296,7 +296,7 @@ bgp_socket (struct bgp *bgp, unsigned short port, char *address)
   req.ai_flags = AI_PASSIVE;
   req.ai_family = AF_UNSPEC;
   req.ai_socktype = SOCK_STREAM;
-  sprintf (port_str, "%d", port);
+  snprintf (port_str, sizeof(port_str), "%d", port);
   port_str[sizeof (port_str) - 1] = '\0';
 
   ret = getaddrinfo (address, port_str, &req, &ainfo);
@@ -380,11 +380,10 @@ bgp_socket (struct bgp *bgp, unsigned short port, char *address)
   sin.sin_port = htons (port);
   socklen = sizeof (struct sockaddr_in);
 
-  ret = inet_aton(address, &sin.sin_addr);
-
-  if (ret < 1)
+  if (address && ((ret = inet_aton(address, &sin.sin_addr)) < 1))
     {
-      zlog_err("bgp_socket: could not parse ip address %s: ", address, safe_strerror (errno));
+      zlog_err("bgp_socket: could not parse ip address %s: %s",
+                address, safe_strerror (errno));
       return ret;
     }
 #ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN