From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: [PATCH v2 1/2] lib/lpm:fix an issue of condition check in delete_depth_small() Date: Fri, 30 Oct 2015 14:13:31 +0000 Message-ID: <20151030141331.GA10520@bricha3-MOBL3> References: <1446210879-14242-1-git-send-email-jijiang.liu@intel.com> <1446210879-14242-2-git-send-email-jijiang.liu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org To: Jijiang Liu Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 25F4C91AB for ; Fri, 30 Oct 2015 15:13:34 +0100 (CET) Content-Disposition: inline In-Reply-To: <1446210879-14242-2-git-send-email-jijiang.liu@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, Oct 30, 2015 at 09:14:38PM +0800, Jijiang Liu wrote: > Fixes an issue of check logic in delete_depth_small function. > > For a tbl24 entry, the 'ext_entry' field indicates whether we need to use tbl8_gindex to read the next_hop from a tbl8 entry, or whether it can be read directly from this entry. > > If a route is deleted, the prefix of previous route is used to override the deleted route. > > When checking the depth of the previous route the conditional checks both the ext_entry and the depth, but the "else" leg fails to take account that the condition could fail for one of two possible reasons, leading to an incorrect flow when 'ext_entry == 0' is true , but 'lpm->tbl24[i].depth > depth' is false. The fix here is to add a condition check to the else leg so that it only executes when ext_entry is set. > > Signed-off-by: NaNa Acked-by: Bruce Richardson