From patchwork Tue Dec 5 20:41:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 844923 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="X48htDqV"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="X48htDqV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yrtyP0xRZz9s7B for ; Wed, 6 Dec 2017 07:44:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751945AbdLEUnv (ORCPT ); Tue, 5 Dec 2017 15:43:51 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:34652 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751112AbdLEUnr (ORCPT ); Tue, 5 Dec 2017 15:43:47 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id CA1DC60819; Tue, 5 Dec 2017 20:43:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1512506626; bh=m50ZjdhvWFUtQ6uWA5K52pzd/D1DonzAvbf6Ur+251o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X48htDqVwLbfY/YVjRL54zMljPTTjglbbkJniwfKQHHkiV/BJmLbUwFr6/JZORbkG WtPoG8IgFvRAKs3t+guYm9N9QDm1/ZIXEuHy2XH8grink3+vbvMawu4DCP1sQWhfdu p+/2jpNP7gSRFBmhcgYs9iJqe/H5bDOImgrLkK5o= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 1921B6034E; Tue, 5 Dec 2017 20:43:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1512506626; bh=m50ZjdhvWFUtQ6uWA5K52pzd/D1DonzAvbf6Ur+251o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X48htDqVwLbfY/YVjRL54zMljPTTjglbbkJniwfKQHHkiV/BJmLbUwFr6/JZORbkG WtPoG8IgFvRAKs3t+guYm9N9QDm1/ZIXEuHy2XH8grink3+vbvMawu4DCP1sQWhfdu p+/2jpNP7gSRFBmhcgYs9iJqe/H5bDOImgrLkK5o= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 1921B6034E Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net 1/2] net: qualcomm: rmnet: Fix leak on transmit failure Date: Tue, 5 Dec 2017 13:41:17 -0700 Message-Id: <1512506478-9113-2-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1512506478-9113-1-git-send-email-subashab@codeaurora.org> References: <1512506478-9113-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If a skb in transmit path does not have sufficient headroom to add the map header, the skb is not sent out and is never freed. Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation") Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index f7d1744..ea0d986 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -133,12 +133,12 @@ static int rmnet_map_egress_handler(struct sk_buff *skb, if (skb_headroom(skb) < required_headroom) { if (pskb_expand_head(skb, required_headroom, 0, GFP_KERNEL)) - return RMNET_MAP_CONSUMED; + goto fail; } map_header = rmnet_map_add_map_header(skb, additional_header_len, 0); if (!map_header) - return RMNET_MAP_CONSUMED; + goto fail; if (port->egress_data_format & RMNET_EGRESS_FORMAT_MUXING) { if (mux_id == 0xff) @@ -150,6 +150,10 @@ static int rmnet_map_egress_handler(struct sk_buff *skb, skb->protocol = htons(ETH_P_MAP); return RMNET_MAP_SUCCESS; + +fail: + kfree_skb(skb); + return RMNET_MAP_CONSUMED; } static void