Date: Tue, 15 Mar 2005 18:22:30 GMT From: LiangYi <liangyi571@hotmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/78893: Fast forward will carsh the system in 5.x. Message-ID: <200503151822.j2FIMUPs078632@www.freebsd.org> Resent-Message-ID: <200503151830.j2FIU2k8072536@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 78893
>Category: misc
>Synopsis: Fast forward will carsh the system in 5.x.
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Mar 15 18:30:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: LiangYi
>Release: 5.3
>Organization:
lingzhou network Inc
>Environment:
FreeBSD 5.3-RELEASE
>Description:
It seems there is a bug in ip_fastfwd.c which will crash the system when it runs in fast forward mode occasionally. The crash enviroment will like this:
net.inet.ip.fastforwarding = 1
Do a over MTU ping on a busy interface
>How-To-Repeat:
same as above.
>Fix:
Look at ip_fastfwd.c, function ip_fastforward, line 499. if_output will free the mbuf when it is failed. So if an error is occured 'm' will be freed, and the loop will break. Current code will free m twice which will crash the system later.
Fix:
update line 586 from:
"for (; m; m = m0) {"
to
"for (; m = m0; ) {"
>Release-Note:
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503151822.j2FIMUPs078632>
