From patchwork Tue Jun 20 20:34:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 106022 Delivered-To: patch@linaro.org Received: by 10.140.91.2 with SMTP id y2csp1588933qgd; Tue, 20 Jun 2017 13:34:58 -0700 (PDT) X-Received: by 10.98.113.65 with SMTP id m62mr19197083pfc.150.1497990898358; Tue, 20 Jun 2017 13:34:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497990898; cv=none; d=google.com; s=arc-20160816; b=wbG68gLTZmpSUc7FsrfC7qRxKwhSiTjcsuILGalC4NofObobuugZ/7rPDWltbxE5Zd OB1APdOTKayDG1W9tPueeEiS+af0pVrzXACo38cyjJAe/EAtiY7/Ik9JvjamozH7P3wY w/tfgbFoGJAnsBa6yRad6Bnmq9q8V/xKtagS7WAXAhRpIzyB2Rp2PhhMoKYbbOVwAXOt 2QYhECM40oHf/NkPBcOPAg4ofZ+BBep5DOwJ7Q8xrzmzhJ5vYJle46tlGz/6L3f5TQOl pou5WpuShy7APIrUwIQLqqEyvfrjr93W3vNQIZTO4ToHEjZxwRA2B4V76F9l/YsoCr92 vwYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=jADcMrtL50nnOZwdRUxcONtLlUKklsOJuNUrTVXMvjY=; b=ZZLqAOI6rGPoma3a9K5hOrAUGiVrg3/4t0q/+MwNuPD67SfeD6v3uXABqqfJ2wmvtn m4Rpvne1sz6lvekjCi9d3dbhOgmZuRcyz7Xoxyncn9eZFfJlWlCQ89RIItzZaXaG02V0 s01lZyBK6Ed5MdK1d711fMOr5dFfgmr4qWRYiBn4zdNIv2aMMOlXTQaPF2yeanNgZR+H jgjb798mDCobiZT2s+dEfyg6anlXdY0KQQjH56d9xoADIXhL5nbSYRDWil0A8u2cfGCy NLE7Hedg+5HCOuLdMW6h1oBPiN7vYRTOQuvqjT+TgUiZKMvWEIKqNCbCJinV8CnS3GHy qqnQ== 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 d3si11699810pgt.283.2017.06.20.13.34.58; Tue, 20 Jun 2017 13:34:58 -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 S1752165AbdFTUeu (ORCPT + 25 others); Tue, 20 Jun 2017 16:34:50 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:57311 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751036AbdFTUet (ORCPT ); Tue, 20 Jun 2017 16:34:49 -0400 Received: from wuerfel.lan ([5.56.224.194]) by mrelayeu.kundenserver.de (mreue104 [212.227.15.145]) with ESMTPA (Nemesis) id 0MRUgC-1dCWoh0Eg4-00Si0J; Tue, 20 Jun 2017 22:34:39 +0200 From: Arnd Bergmann To: Greg Kroah-Hartman , Jiri Slaby Cc: Arnd Bergmann , Aleksa Sarai , Kees Cook , Colin Ian King , linux-kernel@vger.kernel.org Subject: [PATCH] tty: hide unused pty_get_peer function Date: Tue, 20 Jun 2017 22:34:13 +0200 Message-Id: <20170620203436.630727-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:oLiHzI4aEgkQPIXEVJyIBthT4HELD+E/4FdBAH7DL69g9i9JlPy WGOVNfArWhNIj7DScYvxMPXhjLRfn8CCdafzZqhmK+irsAUtHYmi4Vtya9mr6nFMo+rSVRc 3Ij56pIaLeJbDcOMmkz+4+vIaFBYptyRVtoXZklywUJQgJ3JcqfzMYrU4aze9BmHCae1JE2 tYyg5PVMY8McjMlHflWUg== X-UI-Out-Filterresults: notjunk:1; V01:K0:8Hm170/n2VI=:/qr9xi4JfTDVACwyXKDqD4 q1qeaFDVjqmDj0volGYHHWSqzjUgH8S4p/Oec87IxYlaoki2bz1r5Ha6+jkXlRS/Ur4LkBe2W Oxr2W1DkZ3hE9OgbzKgQEszHjFT6XyhZgh+miHS9LW0CcU1+dqdodPjSh4Rau3HdW17fh3zbl 8iVWK+zpa3WgbOJQC8flKxmRdOZGZnjPzu3Hb7i7sf+iPH7mRNlLBnpwfwODjuwI8msvhHXAm K76q1C3WZmkZojKl2THYm0is8S6CztxZ5fEJHWJgtSa2WRwyv6pu2UpQpDZo85n3av2HzX6/G a5CJTxrEpwgOYxn0NV9Rl9FaK94GGIzL/LmaSEY1tH9uFGtFJkBLd4sFDuAZmxDAZWGUqy0bS 0ksUsWW0ezfbU7VHRnzYPdzaJ2XNesJDwZoykY6pjaPwc1qnVOp6QMsJirfE0MeMDqnKpCutK GeKGVMjFhAxEWAw3SD7XYgAMOna3pck9uVQxTi5OwaydanJ7cEcQFK5HswZmF1nAO7CyReVo3 VaIJIQcr7irV0dDURKyNxV+xJD5N4l8dg7Zoy0UXNv6qFU1D0RNlMzgwcoG6OKQfT3KGtWe1Z DZiOIeM0tovq23GCyqgek+dbdSSP+gyTVwB1rKzMAgzrcJ5ogHTo2vZ1DrLIjkBQv48AJtXRM jpkUN55esa3Qcnx3kG7/V/sb2xgs+wqGhSskCvAo2obVFwn0da/RXl51+qIfXrOiEKFY= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TIOCGPTPEER is only used for unix98 PTYs, and we get a warning when those are disabled: drivers/tty/pty.c:466:12: error: 'pty_get_peer' defined but not used [-Werror=unused-function] This moves the respective functions inside of the existing #ifdef. Fixes: 54ebbfb16034 ("tty: add TIOCGPTPEER ioctl") Signed-off-by: Arnd Bergmann --- drivers/tty/pty.c | 85 +++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 43 deletions(-) -- 2.9.0 Reviewed-by: Kees Cook diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index d1399aac05a1..284749fb0f6b 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c @@ -448,48 +448,6 @@ static int pty_common_install(struct tty_driver *driver, struct tty_struct *tty, return retval; } -/** - * pty_open_peer - open the peer of a pty - * @tty: the peer of the pty being opened - * - * Open the cached dentry in tty->link, providing a safe way for userspace - * to get the slave end of a pty (where they have the master fd and cannot - * access or trust the mount namespace /dev/pts was mounted inside). - */ -static struct file *pty_open_peer(struct tty_struct *tty, int flags) -{ - if (tty->driver->subtype != PTY_TYPE_MASTER) - return ERR_PTR(-EIO); - return dentry_open(tty->link->driver_data, flags, current_cred()); -} - -static int pty_get_peer(struct tty_struct *tty, int flags) -{ - int fd = -1; - struct file *filp = NULL; - int retval = -EINVAL; - - fd = get_unused_fd_flags(0); - if (fd < 0) { - retval = fd; - goto err; - } - - filp = pty_open_peer(tty, flags); - if (IS_ERR(filp)) { - retval = PTR_ERR(filp); - goto err_put; - } - - fd_install(fd, filp); - return fd; - -err_put: - put_unused_fd(fd); -err: - return retval; -} - static void pty_cleanup(struct tty_struct *tty) { tty_port_put(tty->port); @@ -646,9 +604,50 @@ static inline void legacy_pty_init(void) { } /* Unix98 devices */ #ifdef CONFIG_UNIX98_PTYS - static struct cdev ptmx_cdev; +/** + * pty_open_peer - open the peer of a pty + * @tty: the peer of the pty being opened + * + * Open the cached dentry in tty->link, providing a safe way for userspace + * to get the slave end of a pty (where they have the master fd and cannot + * access or trust the mount namespace /dev/pts was mounted inside). + */ +static struct file *pty_open_peer(struct tty_struct *tty, int flags) +{ + if (tty->driver->subtype != PTY_TYPE_MASTER) + return ERR_PTR(-EIO); + return dentry_open(tty->link->driver_data, flags, current_cred()); +} + +static int pty_get_peer(struct tty_struct *tty, int flags) +{ + int fd = -1; + struct file *filp = NULL; + int retval = -EINVAL; + + fd = get_unused_fd_flags(0); + if (fd < 0) { + retval = fd; + goto err; + } + + filp = pty_open_peer(tty, flags); + if (IS_ERR(filp)) { + retval = PTR_ERR(filp); + goto err_put; + } + + fd_install(fd, filp); + return fd; + +err_put: + put_unused_fd(fd); +err: + return retval; +} + static int pty_unix98_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) {