From owner-freebsd-bugs Thu Jul 17 22:13:26 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id WAA29515 for bugs-outgoing; Thu, 17 Jul 1997 22:13:26 -0700 (PDT) Received: from inetfw.sonycsl.co.jp (inetfw.sonycsl.co.jp [203.137.129.4]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id WAA29377 for ; Thu, 17 Jul 1997 22:11:50 -0700 (PDT) Received: from hotaka.csl.sony.co.jp (hotaka.csl.sony.co.jp [43.27.98.57]) by inetfw.sonycsl.co.jp (8.8.5/3.5W) with ESMTP id OAA21659 for ; Fri, 18 Jul 1997 14:11:47 +0900 (JST) Received: from itojun.csl.sony.co.jp (root@itojun.csl.sony.co.jp [43.27.98.134]) by hotaka.csl.sony.co.jp (8.8.4/3.3W3) with ESMTP id OAA14404 for ; Fri, 18 Jul 1997 14:10:16 +0900 (JST) Received: (from itojun@localhost) by itojun.csl.sony.co.jp (8.8.5/3.3W3) id NAA17764; Fri, 18 Jul 1997 13:57:41 +0900 (JST) Date: Fri, 18 Jul 1997 13:57:41 +0900 (JST) Message-Id: <199707180457.NAA17764@itojun.csl.sony.co.jp> To: bugs@freebsd.org Subject: net/if_spppsubr.c: can't talk with cisco via HDLC From: itojun@itojun.org Reply-To: itojun@itojun.org cc: ishii@csl.sony.co.jp, rt-bone@wide.ad.jp X-send-pr-version: 3.2 Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Submitter-Id: itojun >Originator: Jun-ichiro ITOH >Organization: itojun.org >Confidential: no >Synopsis: net/if_spppsubr.c broken (can't talk with cisco via HDLC) >Severity: serious >Priority: high >Category: net >Class: sw-bug >Release: FreeBSD-current >Environment: latest source on cvs repository has this bug too. >Description: FreeBSD box + riscomN2pci can't talk to cisco by using CISCO HDLC IP encapsulation. credit goes to ishii@csl.sony.co.jp (Kimio Ishii). >How-To-Repeat: try to talk with cisco, by CISCO HDLC. >Fix: apply this patch. (it is based on slightly modified source, but it should be trivial) if there's no objection, I can commit it myself. --- if_spppsubr.c-dist Fri Jul 18 13:29:11 1997 +++ if_spppsubr.c Fri Jul 18 13:32:37 1997 @@ -920,7 +920,7 @@ struct ifaddr *ifa; struct ifnet *ifp = &sp->pp_if; - if (m->m_pkthdr.len != CISCO_PACKET_LEN) { + if (m->m_pkthdr.len < CISCO_PACKET_LEN) { if (ifp->if_flags & IFF_DEBUG) printf ("%s%d: invalid cisco packet length: %d bytes\n", ifp->if_name, ifp->if_unit, m->m_pkthdr.len);