OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   13-Nov-2003 20:11:54
  Branch: HEAD                             Handle: 2003111319115201

  Modified files:
    openpkg-src/zebra       zebra.patch zebra.spec
    openpkg-web             news.txt

  Log:
    include a bunch of RedHat patches, including two security bugfixes

  Summary:
    Revision    Changes     Path
    1.5         +250 -119   openpkg-src/zebra/zebra.patch
    1.45        +1  -1      openpkg-src/zebra/zebra.spec
    1.7390      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/zebra/zebra.patch
  ============================================================================
  $ cvs diff -u -r1.4 -r1.5 zebra.patch
  --- openpkg-src/zebra/zebra.patch     24 Jul 2003 21:03:08 -0000      1.4
  +++ openpkg-src/zebra/zebra.patch     13 Nov 2003 19:11:53 -0000      1.5
  @@ -1,65 +1,42 @@
  ---- ripd/ripd.c
  -+++ ripd/ripd.c
  -@@ -51,6 +51,10 @@
  - 
  - /* RIP queries. */
  - long rip_global_queries = 0;
  -+
  -+/* Should we trust netmasks or rather apply_classful_mask_ipv4()
  -+   in rip_output_process() ? */
  -+char rip_should_trust_netmasks = 0;
  - 
  - /* Prototypes. */
  - void rip_event (enum rip_event, int);
  -@@ -1963,7 +1967,9 @@
  -           zlog_info("%s/%d before RIPv1 mask check ",
  -                     inet_ntoa (classfull.prefix), classfull.prefixlen);
  - 
  --        apply_classful_mask_ipv4 (&classfull);
  -+            if (!rip_should_trust_netmasks)
  -+              apply_classful_mask_ipv4 (&classfull);
  -+
  -         p = &classfull;
  +Index: lib/vty.h
  +--- lib/vty.h.orig   2002-08-18 16:34:00.000000000 +0200
  ++++ lib/vty.h        2003-11-13 20:03:55.000000000 +0100
  +@@ -128,7 +128,7 @@
  + };
    
  -         if (IS_RIP_DEBUG_PACKET)
  -@@ -2705,6 +2711,26 @@
  + /* Integrated configuration file. */
  +-#define INTEGRATE_DEFAULT_CONFIG "Zebra.conf"
  ++#define INTEGRATE_DEFAULT_CONFIG "zebra.conf.integrate"
    
  -   return CMD_SUCCESS;
  - }
  -+
  -+DEFUN (rip_trust_netmasks,
  -+       rip_trust_netmasks_cmd,
  -+       "trust netmasks",
  -+       "Tell Zebra to trust netmasks and not to recalculate them.\n"
  -+       "Netmasks will be trusted.\n")
  -+{
  -+  rip_should_trust_netmasks = 1;
  -+  return CMD_SUCCESS;
  -+}
  + /* Small macro to determine newline is newline only or linefeed needed. */
  + #define VTY_NEWLINE  ((vty->type == VTY_TERM) ? "\r\n" : "\n")
  +Index: lib/vty.c
  +--- lib/vty.c.orig   2003-11-13 20:03:55.000000000 +0100
  ++++ lib/vty.c        2003-11-13 20:04:59.000000000 +0100
  +@@ -1138,13 +1138,16 @@
  +       break;
  +     case SE: 
  +       {
  +-    char *buffer = (char *)vty->sb_buffer->head->data;
  +-    int length = vty->sb_buffer->length;
  ++    char *buffer;
  ++    int length;
  + 
  +-    if (buffer == NULL)
  ++    if (!vty->iac_sb_in_progress)
  +       return 0;
  + 
  +-    if (!vty->iac_sb_in_progress)
  ++    buffer = (char *)vty->sb_buffer->head->data;
  ++    length = vty->sb_buffer->length;
   +
  -+DEFUN (no_rip_trust_netmasks,
  -+       no_rip_trust_netmasks_cmd,
  -+       "no trust netmasks",
  -+       "Tell Zebra not to trust netmasks and recalculate them.\n"
  -+       "Netmasks will be recalculated.\n")
  -+{
  -+  rip_should_trust_netmasks = 0;
  -+  return CMD_SUCCESS;
  -+}
  - 
  - struct route_table *rip_distance_table;
  - 
  -@@ -3503,6 +3529,8 @@
  -   install_element (RIP_NODE, &no_rip_distance_source_cmd);
  -   install_element (RIP_NODE, &rip_distance_source_access_list_cmd);
  -   install_element (RIP_NODE, &no_rip_distance_source_access_list_cmd);
  -+  install_element (RIP_NODE, &rip_trust_netmasks_cmd);
  -+  install_element (RIP_NODE, &no_rip_trust_netmasks_cmd);
  ++    if (buffer == NULL)
  +       return 0;
    
  -   /* Debug related init. */
  -   rip_debug_init ();
  ---- zebra/ioctl.c.orig       Tue Oct 23 11:31:29 2001
  -+++ zebra/ioctl.c    Fri Oct  4 19:45:04 2002
  +     if (buffer[0] == '\0')
  +Index: zebra/ioctl.c
  +--- zebra/ioctl.c.orig       2001-10-23 10:31:29.000000000 +0200
  ++++ zebra/ioctl.c    2003-11-13 20:03:55.000000000 +0100
   @@ -349,6 +349,7 @@
      int ret;
      struct ifreq ifreq;
  @@ -86,20 +63,81 @@
      
      addreq.ifra_lifetime.ia6t_pltime = ND6_INFINITE_LIFETIME; 
      addreq.ifra_lifetime.ia6t_vltime = ND6_INFINITE_LIFETIME; 
  ---- lib/vty.h.orig   Sun Aug 18 16:34:00 2002
  -+++ lib/vty.h        Wed Mar 12 11:10:05 2003
  -@@ -128,7 +128,7 @@
  - };
  +Index: zebra/rt_netlink.c
  +--- zebra/rt_netlink.c.orig  2002-09-10 11:01:35.000000000 +0200
  ++++ zebra/rt_netlink.c       2003-11-13 20:04:35.000000000 +0100
  +@@ -46,9 +46,8 @@
  +   int seq;
  +   struct sockaddr_nl snl;
  +   char *name;
  +-} netlink = { -1, 0, {0}, "netlink-listen" },       /* kernel messages */
  +-  netlink_cmd = { -1, 0, {0}, "netlink-cmd" },          /* command channel */
  +-  netlink_addr = {-1, 0, {0}, "netlink-addr" };             /* address channel */
  ++} netlink_sock ={ -1, 0, {0}, "netlink-listen" },   /* kernel messages */
  ++  netlink_cmd = { -1, 0, {0}, "netlink-cmd" };          /* command channel */
    
  - /* Integrated configuration file. */
  --#define INTEGRATE_DEFAULT_CONFIG "Zebra.conf"
  -+#define INTEGRATE_DEFAULT_CONFIG "zebra.conf.integrate"
  + struct message nlmsg_str[] =
  + {
  +@@ -206,6 +205,13 @@
  +       return -1;
  +     }
  + 
  ++      /* JF: Ignore messages that aren't from the kernel */
  ++      if ( snl.nl_pid != 0 )
  ++        {
  ++          zlog ( NULL, LOG_ERR, "Ignoring message from pid %u", snl.nl_pid );
  ++        continue;
  ++      }
  ++
  +       for (h = (struct nlmsghdr *) buf; NLMSG_OK (h, status); 
  +        h = NLMSG_NEXT (h, status))
  +     {
  +@@ -1108,7 +1114,7 @@
  +   snl.nl_family = AF_NETLINK;
  + 
  +   /* Talk to netlink socket. */
  +-  ret = netlink_talk (&req.n, &netlink);
  ++  ret = netlink_talk (&req.n, &netlink_sock);
  +   if (ret < 0)
  +     return -1;
  + 
  +@@ -1342,7 +1348,7 @@
  +   if (family == AF_INET)
  +     nl = &netlink_cmd;
  +   else
  +-    nl = &netlink;
  ++    nl = &netlink_sock;
  + 
  +   /* Talk to netlink socket. */
  +   return netlink_talk (&req.n, nl);
  +@@ -1456,8 +1462,8 @@
  +   int sock;
  + 
  +   sock = THREAD_FD (thread);
  +-  ret = netlink_parse_info (netlink_information_fetch, &netlink);
  +-  thread_add_read (master, kernel_read, NULL, netlink.sock);
  ++  ret = netlink_parse_info (netlink_information_fetch, &netlink_sock);
  ++  thread_add_read (master, kernel_read, NULL, netlink_sock.sock);
    
  - /* Small macro to determine newline is newline only or linefeed needed. */
  - #define VTY_NEWLINE  ((vty->type == VTY_TERM) ? "\r\n" : "\n")
  +   return 0;
  + }
  +@@ -1473,10 +1479,10 @@
  + #ifdef HAVE_IPV6
  +   groups |= RTMGRP_IPV6_ROUTE|RTMGRP_IPV6_IFADDR;
  + #endif /* HAVE_IPV6 */
  +-  netlink_socket (&netlink, groups);
  ++  netlink_socket (&netlink_sock, groups);
  +   netlink_socket (&netlink_cmd, 0);
  + 
  +   /* Register kernel socket. */
  +-  if (netlink.sock > 0)
  +-    thread_add_read (master, kernel_read, NULL, netlink.sock);
  ++  if (netlink_sock.sock > 0)
  ++    thread_add_read (master, kernel_read, NULL, netlink_sock.sock);
  + }
   Index: bgpd/bgp_aspath.c
  ---- bgpd/bgp_aspath.c        19 Jun 2002 09:04:48 -0000      1.63
  -+++ bgpd/bgp_aspath.c        23 Oct 2002 09:24:47 -0000      1.64
  +--- bgpd/bgp_aspath.c.orig   2002-06-19 10:58:03.000000000 +0200
  ++++ bgpd/bgp_aspath.c        2003-11-13 20:09:33.000000000 +0100
   @@ -1117,13 +1117,16 @@
    {
      unsigned int key = 0;
  @@ -121,9 +159,27 @@
    
      return key;
    }
  +@@ -1143,7 +1146,7 @@
  + void
  + aspath_init ()
  + {
  +-  ashash = hash_create (aspath_key_make, aspath_cmp);
  ++  ashash = hash_create_size (131072, aspath_key_make, aspath_cmp);
  + }
  + 
  + /* return and as path value */
  +@@ -1167,7 +1170,7 @@
  + 
  +   as = (struct aspath *) backet->data;
  + 
  +-  vty_out (vty, "[%p:%d] (%ld) ", backet, backet->key, as->refcnt);
  ++  vty_out (vty, "[%p:%u] (%ld) ", backet, backet->key, as->refcnt);
  +   vty_out (vty, "%s%s", as->str, VTY_NEWLINE);
  + }
  + 
   Index: bgpd/bgp_packet.c
  ---- bgpd/bgp_packet.c        21 Aug 2002 03:44:34 -0000      1.163
  -+++ bgpd/bgp_packet.c        19 Mar 2003 11:11:11 -0000      1.165
  +--- bgpd/bgp_packet.c.orig   2002-08-20 17:31:54.000000000 +0200
  ++++ bgpd/bgp_packet.c        2003-11-13 20:03:55.000000000 +0100
   @@ -238,7 +238,6 @@
          bgp_packet_set_size (s);
          packet = bgp_packet_dup (s);
  @@ -133,8 +189,8 @@
          return packet;
        }
   Index: bgpd/bgp_route.c
  ---- bgpd/bgp_route.c 21 Aug 2002 03:44:34 -0000      1.402
  -+++ bgpd/bgp_route.c 28 Feb 2003 22:24:45 -0000      1.404
  +--- bgpd/bgp_route.c.orig    2002-08-20 17:06:41.000000000 +0200
  ++++ bgpd/bgp_route.c 2003-11-13 20:03:55.000000000 +0100
   @@ -620,7 +620,10 @@
      if (transparent || reflect
          || (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_NEXTHOP_UNCHANGED)
  @@ -166,8 +222,8 @@
      bgp_unlock_node (child);
    }
   Index: bgpd/bgpd.c
  ---- bgpd/bgpd.c      18 Aug 2002 14:10:29 -0000      1.342
  -+++ bgpd/bgpd.c      6 Feb 2003 15:47:50 -0000       1.345
  +--- bgpd/bgpd.c.orig 2002-08-21 05:53:35.000000000 +0200
  ++++ bgpd/bgpd.c      2003-11-13 20:03:55.000000000 +0100
   @@ -797,6 +797,13 @@
      type = peer_sort (peer);
      peer->as = as;
  @@ -182,50 +238,125 @@
      /* Advertisement-interval reset */
      if (peer_sort (peer) == BGP_PEER_IBGP)
        peer->v_routeadv = BGP_DEFAULT_IBGP_ROUTEADV;
  -Index: ospfd/ospf_packet.c
  ---- ospfd/ospf_packet.c.orig Thu Jul  4 05:06:41 2002
  -+++ ospfd/ospf_packet.c      Fri Mar 28 00:05:26 2003
  -@@ -276,7 +276,7 @@
  - 
  -   /* check crypto seqnum. */
  -   nbr = ospf_nbr_lookup_by_routerid (oi->nbrs, &ospfh->router_id);
  --  if (nbr && ntohl(nbr->crypt_seqnum) >= ntohl(ospfh->u.crypt.crypt_seqnum))
  -+  if (nbr && ntohl(nbr->crypt_seqnum) > ntohl(ospfh->u.crypt.crypt_seqnum))
  -     return 0;
  -       
  -   /* Generate a digest for the ospf packet - their digest + our digest. */
  -
  -On systems which do not HAVE_IPV6 or where configure was run with
  ---disable-ipv6 zebra 0.93b ignores the hostname specified with the -A
  -option and only recognizes the port specified with the -P option. This
  -happens with FreeBSD as mentioned by Mike Tancsa in his posting
  -http://marc.theaimsgroup.com/?l=zebra&m=105118701805977 on the zebra
  -mailing list but the issue is not limited to this OS. This patch enables
  -the specification of hostname on systems which HAVE_GETADDRINFO
  -regardless of the IP version. This fixes the problem on FreeBSD and
  -possibly other OSs. Tested on FreeBSD 4.8, RedHat 9 and Solaris 9.
  -2003-07-24 [EMAIL PROTECTED]
  -
  ---- lib/vty.c.orig   2002-08-18 16:49:50.000000000 +0200
  -+++ lib/vty.c        2003-07-24 21:41:24.000000000 +0200
  -@@ -1700,7 +1700,7 @@
  -   return 0;
  +Index: ripd/ripd.c
  +--- ripd/ripd.c.orig 2002-07-01 02:57:22.000000000 +0200
  ++++ ripd/ripd.c      2003-11-13 20:03:55.000000000 +0100
  +@@ -51,6 +51,10 @@
  + 
  + /* RIP queries. */
  + long rip_global_queries = 0;
  ++
  ++/* Should we trust netmasks or rather apply_classful_mask_ipv4()
  ++   in rip_output_process() ? */
  ++char rip_should_trust_netmasks = 0;
  + 
  + /* Prototypes. */
  + void rip_event (enum rip_event, int);
  +@@ -1963,7 +1967,9 @@
  +           zlog_info("%s/%d before RIPv1 mask check ",
  +                     inet_ntoa (classfull.prefix), classfull.prefixlen);
  + 
  +-        apply_classful_mask_ipv4 (&classfull);
  ++            if (!rip_should_trust_netmasks)
  ++              apply_classful_mask_ipv4 (&classfull);
  ++
  +         p = &classfull;
  + 
  +         if (IS_RIP_DEBUG_PACKET)
  +@@ -2705,6 +2711,26 @@
  + 
  +   return CMD_SUCCESS;
    }
  ++
  ++DEFUN (rip_trust_netmasks,
  ++       rip_trust_netmasks_cmd,
  ++       "trust netmasks",
  ++       "Tell Zebra to trust netmasks and not to recalculate them.\n"
  ++       "Netmasks will be trusted.\n")
  ++{
  ++  rip_should_trust_netmasks = 1;
  ++  return CMD_SUCCESS;
  ++}
  ++
  ++DEFUN (no_rip_trust_netmasks,
  ++       no_rip_trust_netmasks_cmd,
  ++       "no trust netmasks",
  ++       "Tell Zebra not to trust netmasks and recalculate them.\n"
  ++       "Netmasks will be recalculated.\n")
  ++{
  ++  rip_should_trust_netmasks = 0;
  ++  return CMD_SUCCESS;
  ++}
  + 
  + struct route_table *rip_distance_table;
    
  --#if defined(HAVE_IPV6) && !defined(NRL)
  -+#if (defined(HAVE_IPV6) && !defined(NRL)) || defined (HAVE_GETADDRINFO)
  - void
  - vty_serv_sock_addrinfo (const char *hostname, unsigned short port)
  - {
  -@@ -1972,7 +1972,11 @@
  -       vty_serv_sock_addrinfo (hostname, port);
  - #endif /* NRL*/
  - #else /* ! HAVE_IPV6 */
  -+#ifdef HAVE_GETADDRINFO
  -+      vty_serv_sock_addrinfo (hostname, port);
  -+#else /* ! HAVE_GETADDRINFO */
  -       vty_serv_sock_family (port, AF_INET);
  -+#endif /* HAVE_GETADDRINFO */
  - #endif /* HAVE_IPV6 */
  -     }
  +@@ -3503,6 +3529,8 @@
  +   install_element (RIP_NODE, &no_rip_distance_source_cmd);
  +   install_element (RIP_NODE, &rip_distance_source_access_list_cmd);
  +   install_element (RIP_NODE, &no_rip_distance_source_access_list_cmd);
  ++  install_element (RIP_NODE, &rip_trust_netmasks_cmd);
  ++  install_element (RIP_NODE, &no_rip_trust_netmasks_cmd);
    
  +   /* Debug related init. */
  +   rip_debug_init ();
  +Index: ospfd/ospf_packet.c
  +--- ospfd/ospf_packet.c.orig 2003-11-13 20:05:23.000000000 +0100
  ++++ ospfd/ospf_packet.c      2003-11-13 20:05:41.000000000 +0100
  +@@ -312,6 +312,7 @@
  +   struct md5_ctx ctx;
  +   void *ibuf;
  +   unsigned long oldputp;
  ++  u_int32_t t;
  +   struct crypt_key *ck;
  +   char *auth_key;
  + 
  +@@ -323,7 +324,9 @@
  + 
  +   /* We do this here so when we dup a packet, we don't have to
  +      waste CPU rewriting other headers. */
  +-  ospfh->u.crypt.crypt_seqnum = htonl (oi->crypt_seqnum++);
  ++  t = (time(NULL) & 0xFFFFFFFF);
  ++  oi->crypt_seqnum = ( t > oi->crypt_seqnum ? t : oi->crypt_seqnum++);
  ++  ospfh->u.crypt.crypt_seqnum = htonl (oi->crypt_seqnum); 
  + 
  +   /* Get MD5 Authentication key from auth_key list. */
  +   if (list_isempty (OSPF_IF_PARAM (oi, auth_crypt)))
  +Index: ospfd/ospf_interface.c
  +--- ospfd/ospf_interface.c.orig      2002-07-04 07:06:40.000000000 +0200
  ++++ ospfd/ospf_interface.c   2003-11-13 20:05:52.000000000 +0100
  +@@ -429,6 +429,8 @@
  +      if (oi->on_write_q)
  +        {
  +      listnode_delete (ospf_top->oi_write_q, oi);
  ++         if (list_isempty(ospf_top->oi_write_q))
  ++           OSPF_TIMER_OFF (ospf_top->t_write);
  +      oi->on_write_q = 0;
  +        }
  +     }
  +Index: ospfd/ospf_vty.c
  +--- ospfd/ospf_vty.c.orig    2002-07-12 13:42:02.000000000 +0200
  ++++ ospfd/ospf_vty.c 2003-11-13 20:06:05.000000000 +0100
  +@@ -3764,9 +3764,9 @@
  + #ifdef HAVE_OPAQUE_LSA
  +   else if (strncmp (argv[0], "opaque-l", 8) == 0)
  +     type = OSPF_OPAQUE_LINK_LSA;
  +-  else if (strncmp (argv[0], "opaque-a", 8) == 0)
  ++  else if (strncmp (argv[0], "opaque-ar", 9) == 0)
  +     type = OSPF_OPAQUE_AREA_LSA;
  +-  else if (strncmp (argv[0], "opaque-e", 8) == 0)
  ++  else if (strncmp (argv[0], "opaque-as", 9) == 0)
  +     type = OSPF_OPAQUE_AS_LSA;
  + #endif /* HAVE_OPAQUE_LSA */
  +   else
  +@@ -3888,9 +3888,9 @@
  + #ifdef HAVE_OPAQUE_LSA
  +   else if (strncmp (argv[0], "opaque-l", 8) == 0)
  +     type = OSPF_OPAQUE_LINK_LSA;
  +-  else if (strncmp (argv[0], "opaque-a", 8) == 0)
  ++  else if (strncmp (argv[0], "opaque-ar", 9) == 0)
  +     type = OSPF_OPAQUE_AREA_LSA;
  +-  else if (strncmp (argv[0], "opaque-e", 8) == 0)
  ++  else if (strncmp (argv[0], "opaque-as", 9) == 0)
  +     type = OSPF_OPAQUE_AS_LSA;
  + #endif /* HAVE_OPAQUE_LSA */
  +   else
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/zebra/zebra.spec
  ============================================================================
  $ cvs diff -u -r1.44 -r1.45 zebra.spec
  --- openpkg-src/zebra/zebra.spec      1 Oct 2003 08:29:14 -0000       1.44
  +++ openpkg-src/zebra/zebra.spec      13 Nov 2003 19:11:53 -0000      1.45
  @@ -33,7 +33,7 @@
   Group:        Network
   License:      GPL
   Version:      0.93b
  -Release:      20031001
  +Release:      20031113
   
   #   list of sources
   Source0:      ftp://ftp.zebra.org/pub/zebra/zebra-%{version}.tar.gz
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.7389 -r1.7390 news.txt
  --- openpkg-web/news.txt      13 Nov 2003 17:36:01 -0000      1.7389
  +++ openpkg-web/news.txt      13 Nov 2003 19:11:52 -0000      1.7390
  @@ -1,3 +1,4 @@
  +13-Nov-2003: Upgraded package: P<zebra-0.93b-20031113>
   13-Nov-2003: Upgraded package: P<pound-1.5-20031113>
   13-Nov-2003: Upgraded package: P<nessus-tool-2.0.9-20031113>
   13-Nov-2003: Upgraded package: P<openvpn-1.4.3-20031113>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to