From owner-freebsd-bugs Sat Jun 19 22:20: 3 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 2581614C9B for ; Sat, 19 Jun 1999 22:20:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id WAA57773; Sat, 19 Jun 1999 22:20:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from cr1003333-a.crdva1.bc.home.com (cr1003333-a.crdva1.bc.wave.home.com [24.113.51.240]) by hub.freebsd.org (Postfix) with ESMTP id 2A32314FA1 for ; Sat, 19 Jun 1999 22:16:22 -0700 (PDT) (envelope-from jh@cr1003333-a.crdva1.bc.home.com) Received: (from jh@localhost) by cr1003333-a.crdva1.bc.home.com (8.9.3/8.9.3) id WAA05806; Sat, 19 Jun 1999 22:16:22 -0700 (PDT) (envelope-from jh) Message-Id: <199906200516.WAA05806@cr1003333-a.crdva1.bc.home.com> Date: Sat, 19 Jun 1999 22:16:22 -0700 (PDT) From: Jonathan Hanna Reply-To: pangolin@home.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/12304: infinite recursion in libalias with PKT_ALIAS_REVERSE Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 12304 >Category: bin >Synopsis: infinite recursion in libalias with PKT_ALIAS_REVERSE >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jun 19 22:20:00 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Jonathan Hanna >Release: FreeBSD 4.0-CURRENT i386 >Organization: >Environment: 4.0-CURRENT 3.2-STABLE >Description: Setting PKT_ALIAS_REVERSE in libalias results in infinite recursion of alternating alias-in and alias-out functions. alias.c in libalias has this code: int PacketAliasIn(char *ptr, int maxpacketsize) { struct in_addr alias_addr; struct ip *pip; int iresult; if (packetAliasMode & PKT_ALIAS_REVERSE) return PacketAliasOut(ptr, maxpacketsize); ... int PacketAliasOut(char *ptr, /* valid IP packet */ int maxpacketsize /* How much the packet data may grow (FTP and IRC inline changes) */ ) { int iresult; struct in_addr addr_save; struct ip *pip; if (packetAliasMode & PKT_ALIAS_REVERSE) return PacketAliasIn(ptr, maxpacketsize); ... I noticed also that PKT_ALIAS_REVERSE is not documented int libalias.3. >How-To-Repeat: Adding "-reverse" to a natd setup results in a core dump. >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message