From: Fu Siyuan Date: Thu, 10 Apr 2014 02:25:49 +0000 (+0000) Subject: Fix a bug in IP driver that the fragment overlap check may be skipped incorrectly. X-Git-Tag: edk2-stable201903~11544 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=cc0b145e0f828a26715d4b483abee9b0a56ad6f7 Fix a bug in IP driver that the fragment overlap check may be skipped incorrectly. Signed-off-by: Fu Siyuan Reviewed-by: Ye, Ting Reviewed-by: Jin, Eric Contributed-under: TianoCore Contribution Agreement 1.0 git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15443 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c index 62163f4c57..38ad1c39da 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c @@ -1,7 +1,7 @@ /** @file IP4 input process. -Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
+Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -292,7 +292,7 @@ Ip4Reassemble ( // check whether THIS.Start < PREV.End for overlap. If two fragments // overlaps, trim the overlapped part off THIS fragment. // - if ((Cur != Head) && ((Prev = Cur->BackLink) != Head)) { + if ((Prev = Cur->BackLink) != Head) { Fragment = NET_LIST_USER_STRUCT (Prev, NET_BUF, List); Node = IP4_GET_CLIP_INFO (Fragment); diff --git a/NetworkPkg/Ip6Dxe/Ip6Input.c b/NetworkPkg/Ip6Dxe/Ip6Input.c index 3f0dce7343..cf88884e38 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Input.c +++ b/NetworkPkg/Ip6Dxe/Ip6Input.c @@ -1,7 +1,7 @@ /** @file IP6 internal functions to process the incoming packets. - Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -243,7 +243,7 @@ Ip6Reassemble ( // check whether THIS.Start < PREV.End for overlap. If two fragments // overlaps, trim the overlapped part off THIS fragment. // - if ((Cur != ListHead) && ((Prev = Cur->BackLink) != ListHead)) { + if ((Prev = Cur->BackLink) != ListHead) { Fragment = NET_LIST_USER_STRUCT (Prev, NET_BUF, List); Node = IP6_GET_CLIP_INFO (Fragment);