Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3668710pxv; Mon, 26 Jul 2021 09:04:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwcLx///bIkfY532zLpwCN2aA8qH/kdi+N7y/Eh6t6tp+E9IDlR7ALJkSugTrA+IL+Rqubm X-Received: by 2002:a02:a80f:: with SMTP id f15mr17378905jaj.142.1627315453772; Mon, 26 Jul 2021 09:04:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627315453; cv=none; d=google.com; s=arc-20160816; b=WJv+rWu5YsD7XviRNEOZVNkbEvTT068QY2WqQsct8l1A01AOXuT7H7NcA5GCUavIo7 Y8JkYcklkeAR82/y96CfjCfMdAyAAwYNBFTO8BFhnElzWB9m3UHmL6kya6Yd6brZeeKk sM3HbR4q8q10uJyQnkIzbFePnE7bR9Wbdr7MJV3QtrrekXH4piAKht3T69M2S6eCulDR x5JTPb1yd9klU8pdWZXwezSoKi5SAZmI+ab7Qy50vRzNYdWPROwRmKoDDp8hZS/LDc6b Rur9SeDdTU/qJc001xAkioFLRln4gxOBmVfTCq+ZXPgL2okEf3QnsfdwnA+g3XlYIMO4 fvAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=quXh/WxgFkbEzkmPQCqAzMihpkvdgnt7TmsqU9WgVeM=; b=udzE26ceLrB2eJ3XbwcLKwHmICUhl9gINfdKAEUXJxIwWlE5Bti+AnZuZHfPIZNdXJ 2QxN1EPfrgJeY/pIPMO5XqLvW1lLuHjg4cWZ94vvxoiFGg2vjHZceZwsOQR2T0bYWHr7 Woi6L9wO0YQsFQmfpSDhzNx3m89p71BziJwglWprcRD+TWuc3jZMxkaXw0tFKZ5OSzao VDmqcKMJ6JME6cSj81NRMdqFzBd+g8odG+qHJBLZGL+/r0tEViWzkZjsmcar0hs9kgDc 16fsxySNcl2s3mQziNfj8DN6ASObyb5naRxeNyHJQjg79nhk9SH1CrxlId7YG1yePIiv XxJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=F8iR3gXt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g15si341825ilc.45.2021.07.26.09.04.00; Mon, 26 Jul 2021 09:04:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=F8iR3gXt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237270AbhGZPWI (ORCPT + 99 others); Mon, 26 Jul 2021 11:22:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:55330 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236906AbhGZPPn (ORCPT ); Mon, 26 Jul 2021 11:15:43 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 82A5C6101E; Mon, 26 Jul 2021 15:54:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1627314880; bh=J0TFvrvPXgzTM3EvxtMcT/I8V9rN3rAA41WRPDYEV0w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F8iR3gXt33IF5Cp1+WOG0akgX/hy7AexA0ZgTFIvb30R1IIKUYyz+YwI5FJb7q71r 9T3LdhOB1Zruw2y7ZJeFsDnUNr9D1ZgnjQIR6TCfZH7b7TWsG2HKs6n+Gm3ly+HrAk HGXnpibe3qMibT7Lp3fFtiDutClBYrY5rCZJp4Fk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Charles Baylis , Daniel Vetter Subject: [PATCH 4.19 110/120] drm: Return -ENOTTY for non-drm ioctls Date: Mon, 26 Jul 2021 17:39:22 +0200 Message-Id: <20210726153835.996019832@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210726153832.339431936@linuxfoundation.org> References: <20210726153832.339431936@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Charles Baylis commit 3abab27c322e0f2acf981595aa8040c9164dc9fb upstream. drm: Return -ENOTTY for non-drm ioctls Return -ENOTTY from drm_ioctl() when userspace passes in a cmd number which doesn't relate to the drm subsystem. Glibc uses the TCGETS ioctl to implement isatty(), and without this change isatty() returns it incorrectly returns true for drm devices. To test run this command: $ if [ -t 0 ]; then echo is a tty; fi < /dev/dri/card0 which shows "is a tty" without this patch. This may also modify memory which the userspace application is not expecting. Signed-off-by: Charles Baylis Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/YPG3IBlzaMhfPqCr@stando.fishzet.co.uk Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/drm_ioctl.c | 3 +++ include/drm/drm_ioctl.h | 1 + 2 files changed, 4 insertions(+) --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -797,6 +797,9 @@ long drm_ioctl(struct file *filp, if (drm_dev_is_unplugged(dev)) return -ENODEV; + if (DRM_IOCTL_TYPE(cmd) != DRM_IOCTL_BASE) + return -ENOTTY; + is_driver_ioctl = nr >= DRM_COMMAND_BASE && nr < DRM_COMMAND_END; if (is_driver_ioctl) { --- a/include/drm/drm_ioctl.h +++ b/include/drm/drm_ioctl.h @@ -68,6 +68,7 @@ typedef int drm_ioctl_compat_t(struct fi unsigned long arg); #define DRM_IOCTL_NR(n) _IOC_NR(n) +#define DRM_IOCTL_TYPE(n) _IOC_TYPE(n) #define DRM_MAJOR 226 /**