Fix a bug in IP driver that the fragment overlap check may be skipped incorrectly.

Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye, Ting <ting.ye@intel.com>
Reviewed-by: Jin, Eric <eric.jin@intel.com>
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
This commit is contained in:
Fu Siyuan 2014-04-10 02:25:49 +00:00 committed by sfu5
parent 734b6c33ba
commit cc0b145e0f
2 changed files with 4 additions and 4 deletions

View File

@ -1,7 +1,7 @@
/** @file
IP4 input process.
Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.<BR>
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);

View File

@ -1,7 +1,7 @@
/** @file
IP6 internal functions to process the incoming packets.
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
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);