Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp779714img; Thu, 21 Mar 2019 08:46:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqw/FaKN10RV0Ae+4opZgekJw/md9SeRVYomF0pkd3rJMmwbzaGXIdI25wZWzTzgar3RkiMm X-Received: by 2002:a17:902:e60e:: with SMTP id cm14mr4262215plb.192.1553183164066; Thu, 21 Mar 2019 08:46:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553183164; cv=none; d=google.com; s=arc-20160816; b=1FIXWWP1I2uTjEgXuB6+l6rnMRu3xOA1aXnX4rBVYyHv6hlnNsaPHLywhW/T3GrIqM HTQ6VnDV4g4R0MBLREc0GaF+mpx3KOmQxetsqpvrf48EF4de0rH/FAR/0cAbcXoK6em2 IolY34mGAzGBhf7vLCCbig/7O+8S5ePKEasgAFJg02qUQQO/Yq/dVOTRc82gUBMZDDw7 yJGqeF0G3q4nLlS7Gb3+vSOcuooRUWHldmi94inPaho57wv5p1v11LN2yNHwViaYLY7b wVHLJ7DaOEC5U8gNVtviAJPdfAcKUvtArT/xTMVE8zNMyjAEHnxZnP3Vku9A9ikm5OKX zYjg== 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=tEr9hUSiNiDRuPeWCVg5oSh68MbXySFENdCNTPqGgCk=; b=fhdmgYNsg1CUEDOiTl1YK1nWPI6dUHnaADdo3Fx3678zpgfpHEfVBRP8q77bj7J10m IGboKdcuRIfqBuukDvc0a+cAedA3juJDgVwF5JEqsTZujjTpszPeQTMeZ9W4tOLcyxJk UYumeFYC3UT2eLe4nxydrqibvESKgNCj2TLH27fjdCqkq0w5v9y0H7w9z5xM0JYXM3g/ c4q0WfRoawGK9kLJx5Rg+K250GtdGb+QHrei/awTdO3SS0fejKrMM4sSHk6id1oKyOrb A7OsW5KoW8ixPP2IU1paapRMxMg6HZ0yi6pdv7Rj3Ly4jLjmSOxk02stiCgLNZR5ivVH s9SA== 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 k25si4264367pfo.254.2019.03.21.08.45.48; Thu, 21 Mar 2019 08:46:04 -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 S1728160AbfCUPnl (ORCPT + 99 others); Thu, 21 Mar 2019 11:43:41 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:24132 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727823AbfCUPnl (ORCPT ); Thu, 21 Mar 2019 11:43:41 -0400 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2LFeqZM000698; Thu, 21 Mar 2019 16:43:35 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2r8qg4xa4r-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 21 Mar 2019 16:43:35 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 670903A; Thu, 21 Mar 2019 15:43:34 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas21.st.com [10.75.90.44]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 469A7544D; Thu, 21 Mar 2019 15:43:34 +0000 (GMT) Received: from SAFEX1HUBCAS22.st.com (10.75.90.93) by SAFEX1HUBCAS21.st.com (10.75.90.44) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 21 Mar 2019 16:43:34 +0100 Received: from localhost (10.129.4.239) by Webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 21 Mar 2019 16:43:33 +0100 From: Fabien Dessenne To: Greg Kroah-Hartman , Jiri Slaby , CC: Fabien Dessenne , Benjamin Gaignard Subject: [PATCH] tty: fix NULL pointer issue when tty_port ops is not set Date: Thu, 21 Mar 2019 16:43:26 +0100 Message-ID: <1553183006-12820-1-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.129.4.239] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-03-21_07:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Unlike 'client_ops' which is initialized to 'default_client_ops', the port operations 'ops' may be left to NULL. Check the 'ops' value before checking the 'ops->x' value. Signed-off-by: Fabien Dessenne --- drivers/tty/tty_port.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c index 044c3cb..a9e12b3 100644 --- a/drivers/tty/tty_port.c +++ b/drivers/tty/tty_port.c @@ -325,7 +325,7 @@ static void tty_port_shutdown(struct tty_port *port, struct tty_struct *tty) if (tty && C_HUPCL(tty)) tty_port_lower_dtr_rts(port); - if (port->ops->shutdown) + if (port->ops && port->ops->shutdown) port->ops->shutdown(port); } out: @@ -398,7 +398,7 @@ EXPORT_SYMBOL_GPL(tty_port_tty_wakeup); */ int tty_port_carrier_raised(struct tty_port *port) { - if (port->ops->carrier_raised == NULL) + if (!port->ops || !port->ops->carrier_raised) return 1; return port->ops->carrier_raised(port); } @@ -414,7 +414,7 @@ EXPORT_SYMBOL(tty_port_carrier_raised); */ void tty_port_raise_dtr_rts(struct tty_port *port) { - if (port->ops->dtr_rts) + if (port->ops && port->ops->dtr_rts) port->ops->dtr_rts(port, 1); } EXPORT_SYMBOL(tty_port_raise_dtr_rts); @@ -429,7 +429,7 @@ EXPORT_SYMBOL(tty_port_raise_dtr_rts); */ void tty_port_lower_dtr_rts(struct tty_port *port) { - if (port->ops->dtr_rts) + if (port->ops && port->ops->dtr_rts) port->ops->dtr_rts(port, 0); } EXPORT_SYMBOL(tty_port_lower_dtr_rts); @@ -684,7 +684,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty, if (!tty_port_initialized(port)) { clear_bit(TTY_IO_ERROR, &tty->flags); - if (port->ops->activate) { + if (port->ops && port->ops->activate) { int retval = port->ops->activate(port, tty); if (retval) { mutex_unlock(&port->mutex); -- 2.7.4