From patchwork Thu Nov 10 15:57:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Colin Ian King X-Patchwork-Id: 693293 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tF74m3CMPz9vDh for ; Fri, 11 Nov 2016 02:58:32 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934412AbcKJP6R (ORCPT ); Thu, 10 Nov 2016 10:58:17 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:51127 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933919AbcKJP6Q (ORCPT ); Thu, 10 Nov 2016 10:58:16 -0500 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1c4rjm-0004wL-BQ; Thu, 10 Nov 2016 15:58:02 +0000 From: Colin King To: "David S . Miller" , Johannes Berg , pravin shelar , Wei Yongjun , Florian Westphal , Tycho Andersen , WANG Cong , Tom Herbert , netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] genetlink: fix unsigned int comparison with less than zero Date: Thu, 10 Nov 2016 15:57:58 +0000 Message-Id: <20161110155758.26996-1-colin.king@canonical.com> X-Mailer: git-send-email 2.10.2 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Colin Ian King family->id is unsigned, so the less than zero check for failure return from idr_alloc is never true and so the error exit is never handled. Instead, assign err and check if this is less than zero since this is a signed integer. Issue found with static analysis with CoverityScan, CID 1375916 Signed-off-by: Colin Ian King --- net/netlink/genetlink.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index f0b65fe..2ea61ba 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -360,12 +360,10 @@ int genl_register_family(struct genl_family *family) } else family->attrbuf = NULL; - family->id = idr_alloc(&genl_fam_idr, family, + family->id = err = idr_alloc(&genl_fam_idr, family, start, end + 1, GFP_KERNEL); - if (family->id < 0) { - err = family->id; + if (err < 0) goto errout_free; - } err = genl_validate_assign_mc_groups(family); if (err)