Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp2808568img; Sun, 24 Mar 2019 19:52:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqxcILXwFow8bgtCPJPptd0bte7r4NKqpovDxPa2zx2m/R1mW4GFjTNVwAVohM3UkwDsX54v X-Received: by 2002:a63:2aca:: with SMTP id q193mr21243976pgq.269.1553482341234; Sun, 24 Mar 2019 19:52:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553482341; cv=none; d=google.com; s=arc-20160816; b=DDaosb5tnt7NonYfl6PZ/Nt0SP3fnPGlYqHS3FtkwPPhedEnDFT70a7d1pcAi4s4vB gn39B++S+6iESeZxpvR/EJvD/8u+tB54gIzJBJWyqMVa36BqZmpX8oMQSqm3fa/rP8P3 a4IDoeMeaWCPFDD0Uom2MxzLLrZN8CpX4U63oPD/wqq3CkddYWasbYzlJwUxVJCVTCzP k2uLwtj63E2Ra8IbQCFlVJNvqOgBIyc+NxhaeSa4GcwKz9K0Cu20scq3/8JQYTpTKviV nsCAKSxAZSgF14yyHvfsJghJGydowyGiZi0PqndCWcjnlAGK19B8jcZafpa17uW8gjlq 8sNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=P98KBkqMYKJOV4f05h53XaGtlr/7FljlMhs7Bhs8YtE=; b=zzG6nnW+i34OY586JtrCZmRzWfDrBJNVk1M39HC5oSPi/+FCi5ARG+OeEd04cNAl+k iNYKvfaF3CJIykByuhQixH7Vh+IoWygu5139ZhEOnK8mQqHeDopKHkbEPfRjrJHoVjAE jSLZthS25fdaItRneqn/6eXpxPTfp+syHO3uNv2tAF3Jb3cmbThlXdHgyzJbcwHopfxU c2dOhS3Ji2bOdraiJEpfT6e24UJbV4KKs42xZjnTPbMFQC7bzuWycM170IsYVvdet8Li KkMEErb4HIYmw54HzxS1ZbWu6REKxh3LN6EhEe8adxXFQ3SqYNQ+gyJ89P8rJyA1jvCM adKA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x4si5373937plo.203.2019.03.24.19.52.06; Sun, 24 Mar 2019 19:52:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729382AbfCYCv3 (ORCPT + 99 others); Sun, 24 Mar 2019 22:51:29 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:43406 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729154AbfCYCv3 (ORCPT ); Sun, 24 Mar 2019 22:51:29 -0400 Received: from DGGEMS413-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id D9E78FA6F3661C05EE9B; Mon, 25 Mar 2019 10:51:26 +0800 (CST) Received: from localhost (10.177.31.96) by DGGEMS413-HUB.china.huawei.com (10.3.19.213) with Microsoft SMTP Server id 14.3.408.0; Mon, 25 Mar 2019 10:51:20 +0800 From: Yue Haibing To: , CC: , , , , YueHaibing Subject: [PATCH v3] dccp: Fix memleak in __feat_register_sp Date: Mon, 25 Mar 2019 10:41:06 +0800 Message-ID: <20190325024106.10808-1-yuehaibing@huawei.com> X-Mailer: git-send-email 2.10.2.windows.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.177.31.96] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: YueHaibing If dccp_feat_push_change fails, we forget free the mem which is alloced by kmemdup in dccp_feat_clone_sp_val. Reported-by: Hulk Robot Fixes: e8ef967a54f4 ("dccp: Registration routines for changing feature values") Signed-off-by: YueHaibing --- v3: fix compile issue, sorry for this again v2: kfree 'val --> 'fval' --- net/dccp/feat.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/dccp/feat.c b/net/dccp/feat.c index f227f00..db87d9f 100644 --- a/net/dccp/feat.c +++ b/net/dccp/feat.c @@ -738,7 +738,12 @@ static int __feat_register_sp(struct list_head *fn, u8 feat, u8 is_local, if (dccp_feat_clone_sp_val(&fval, sp_val, sp_len)) return -ENOMEM; - return dccp_feat_push_change(fn, feat, is_local, mandatory, &fval); + if (dccp_feat_push_change(fn, feat, is_local, mandatory, &fval)) { + kfree(fval.sp.vec); + return -ENOMEM; + } + + return 0; } /** -- 2.7.4