From patchwork Sun Nov 13 21:14:32 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesper Juhl X-Patchwork-Id: 125452 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 44DEBB71F6 for ; Mon, 14 Nov 2011 08:09:09 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753568Ab1KMVIu (ORCPT ); Sun, 13 Nov 2011 16:08:50 -0500 Received: from swampdragon.chaosbits.net ([90.184.90.115]:13434 "EHLO swampdragon.chaosbits.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751388Ab1KMVIs (ORCPT ); Sun, 13 Nov 2011 16:08:48 -0500 Received: by swampdragon.chaosbits.net (Postfix, from userid 1000) id EDFEE9403D; Sun, 13 Nov 2011 22:14:32 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by swampdragon.chaosbits.net (Postfix) with ESMTP id DECB99403B; Sun, 13 Nov 2011 22:14:32 +0100 (CET) Date: Sun, 13 Nov 2011 22:14:32 +0100 (CET) From: Jesper Juhl To: libertas-dev@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org cc: Andrey Yurovsky , Colin McCabe , Dan Williams , "John W. Linville" , "David S. Miller" Subject: [PATCH] Net, libertas: Resolve memory leak in if_spi_host_to_card() Message-ID: User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If we hit the default case in the switch in if_spi_host_to_card() we'll leak the memory we allocated for 'packet'. This patch resolves the leak by freeing the allocated memory in that case. Signed-off-by: Jesper Juhl Acked-by: Dan Williams --- drivers/net/wireless/libertas/if_spi.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Compile tested only due to lack of hardware. diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c index 11b69b3..728baa4 100644 --- a/drivers/net/wireless/libertas/if_spi.c +++ b/drivers/net/wireless/libertas/if_spi.c @@ -995,6 +995,7 @@ static int if_spi_host_to_card(struct lbs_private *priv, spin_unlock_irqrestore(&card->buffer_lock, flags); break; default: + kfree(packet); netdev_err(priv->dev, "can't transfer buffer of type %d\n", type); err = -EINVAL;