Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp969696yba; Sun, 31 Mar 2019 18:40:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqznPrVEj1+RD/5GkyQnMaA1mkyEMFJwjyJnEwEq+dNx7fZn+pvdFM5mnW4DEVwc/i++d0oK X-Received: by 2002:a63:41c4:: with SMTP id o187mr3789617pga.73.1554082817265; Sun, 31 Mar 2019 18:40:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554082817; cv=none; d=google.com; s=arc-20160816; b=mJXEIzJIkXM5LQzBcWsPRmDX6RTs3FjWTCq4cgD09qQeehfdsFfIr58sKSwBwqjtDj NMoJl6dvgvBwg2CjdEGZXdhgW01p5b7AgXOyxF/ChDEqSOtUpZr9IUCb6TBQ/1T3C8n8 BPklZiCZjptR0ETheCKkUe+qAw2TujExch2A4vWsXEcMNTPKArfO5/RlpWmJfSSIDnQO l+0LrMd89pAKsElH5DVAWqihbJd2dp4OeFI+QgN7M/XCNAyejFMVYQ2v3pYvy7MCdWGa RuV7HWLMHgHSx686EmIVI6VWCxNVEe1JdoTh0moAS+7fb+/r93yA+aFatapZHx4xHWTy WXWw== 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=MCeFCNR/n24CBftYAqCYVRTZy1NLBgdAWDGRwmBD+JE=; b=q/q/MdYnmSNYRc0jTcAYxtkp2uwm57IYvYtLKkOgwZ7brkxkvCOXdNn8OzUzRJ0SOg rxGmXykpE+hbxJXcx0/LqUhNmfGJ/kr5SE7ce8unDk8KWlju0vERiWqUwa7iIuwbE/TY w9GXRR2P1jnkp7fC1A13mFS77gjKVv3gPmBVey9Pl/OiBK3qF6qFwjP7Xeh5KPRq9tES hhBAaZVUPETlbe8BALoc1BM6FdkkayKNkLMtC3BcnEw/dHs8EUVGBYeRK3KQBAd50lRX oDynaoQcao5GbHDfPeuydivtQjmH0iSea7/OiOupCZZPRC1EMQhcGqi5nxrSUbdbwCCk ot0A== 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 g1si55718pgd.269.2019.03.31.18.40.02; Sun, 31 Mar 2019 18:40:17 -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 S1731629AbfDABhY (ORCPT + 99 others); Sun, 31 Mar 2019 21:37:24 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:6202 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726893AbfDABhX (ORCPT ); Sun, 31 Mar 2019 21:37:23 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id B7F4E87CBA5FC738A424; Mon, 1 Apr 2019 09:37:20 +0800 (CST) Received: from localhost (10.177.31.96) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.408.0; Mon, 1 Apr 2019 09:37:11 +0800 From: Yue Haibing To: , CC: , , , , YueHaibing Subject: [PATCH] dccp: Fix memleak in __feat_register_sp Date: Mon, 1 Apr 2019 09:35:54 +0800 Message-ID: <20190401013554.17488-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") Reviewed-by: Mukesh Ojha Signed-off-by: YueHaibing --- 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