From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37031C433F5 for ; Thu, 19 May 2022 07:10:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230216AbiESHKP (ORCPT ); Thu, 19 May 2022 03:10:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234539AbiESHJ0 (ORCPT ); Thu, 19 May 2022 03:09:26 -0400 Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net [185.136.64.227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4360BBA542 for ; Thu, 19 May 2022 00:09:25 -0700 (PDT) Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 20220519070923cee592c4340802a67e for ; Thu, 19 May 2022 09:09:23 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=daniel.starke@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=siZxk5R56Dq0DvHKMgxC8Lp3i8azA/9hzTUgUHhVAuc=; b=dkUsHyj6GftTTRoLVglXYo0ikvu3J+IlDqhiu32iglRObTfay5hYLm20hZVPHRS6GHZCvz W1ruzbaCL8R1J37OsdSPu5LpUhhCMDqeR2iKoUhUQY4gd6wKaoOMTKnM6ojEiZ4vipU5S3G1 +XBpzthJNC+/Bhi4hpfiaF7NK4pIg=; From: "D. Starke" To: linux-serial@vger.kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org Cc: linux-kernel@vger.kernel.org, Daniel Starke Subject: [PATCH v2 8/9] tty: n_gsm: fix resource allocation order in gsm_activate_mux() Date: Thu, 19 May 2022 09:07:56 +0200 Message-Id: <20220519070757.2096-8-daniel.starke@siemens.com> In-Reply-To: <20220519070757.2096-1-daniel.starke@siemens.com> References: <20220519070757.2096-1-daniel.starke@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-314044:519-21489:flowmailer Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Starke Within gsm_activate_mux() all timers and locks are initiated before the actual resource for the control channel is allocated. This can lead to race conditions. Allocate the control channel DLCI object first to avoid race conditions. Fixes: e1eaea46bb40 ("tty: n_gsm line discipline") Cc: stable@vger.kernel.org Signed-off-by: Daniel Starke --- drivers/tty/n_gsm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) See patch 6 regarding changes since to v1. diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index dfc537eb2b49..cc349f5a37fb 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2483,6 +2483,10 @@ static int gsm_activate_mux(struct gsm_mux *gsm) struct gsm_dlci *dlci; int ret; + dlci = gsm_dlci_alloc(gsm, 0); + if (dlci == NULL) + return -ENOMEM; + timer_setup(&gsm->kick_timer, gsm_kick_timer, 0); timer_setup(&gsm->t2_timer, gsm_control_retransmit, 0); INIT_WORK(&gsm->tx_work, gsmld_write_task); @@ -2499,9 +2503,6 @@ static int gsm_activate_mux(struct gsm_mux *gsm) if (ret) return ret; - dlci = gsm_dlci_alloc(gsm, 0); - if (dlci == NULL) - return -ENOMEM; gsm->has_devices = true; gsm->dead = false; /* Tty opens are now permissible */ return 0; -- 2.34.1