Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3667032pxv; Mon, 26 Jul 2021 09:02:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJycVLZ+kafaRphLbUBLvsGGmKTa97/Xx2vdZ/WiImwXDCa3QhzdktV6nKN6YlGMd9Hkf9FO X-Received: by 2002:a17:906:82ca:: with SMTP id a10mr4175537ejy.137.1627315362490; Mon, 26 Jul 2021 09:02:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627315362; cv=none; d=google.com; s=arc-20160816; b=lFRjmyBJJ0Y+VrvHo8hq4Z4qIunnQfhKvBAjw3awr1to5/to1oYj7/K4wLVbIUhfj1 W+L8PTJ8+rAtFAkEvQ1y9K+UlqDRGAy9BTuTPTQ71JNPGDk6vRG/TWS3lfxzbZfRXm84 rPvUyqQZIOUsbtZhwc/37AOZ48QFnUMocf4hNojB2rPxQl1NDv47AnFT2Iu5ennekkrQ N3uHptLlXPpASZn4y6SxiTtheCTFkdyIeYdiuU4QjH7BDT/55p33058OW0eZApU3k4Iz XUH/sZ9lJbL75chnmFQJNTLeyfIeNwDMx/4qV4O/DCgIYT52MOVVtuycUv7PKt8yeUV+ RaGQ== 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=0utj6ot+eGqNMIh366uSrjghOYF+sdQvuVN7t2PeBCk=; b=wyKYJzHwXekV91qyNeuvugcQJkz/GQTeQgp4If7G5hProtqcZx8mmVBhlVaSe0i+xc jL2Jr4fuQYXOpxsdzJ98iGybHSxpg2OVCx8G5Tol2fN0eew32Q7lCsC0qS8PfKOHEUr9 muA6L+YAN5LTA1/STCx/qB8QXWv98Ndix6O7Qie7bYsRvGAfw7KSbiFblabd32WPy1IM l/tA9iyxZRfqzi4DCZwhPir0TTaczCM3zgVBSk7W6RkyjKoecNTcdUh/fmF07ZUJYlbL m1wJmvQbS0Aqa+H5yVEd6Z78M0V39V6mYg2M74k+fDR5WtMDGQgT1m67AI3QbGxVYiKg nOTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=yEzgK2d1; 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 l3si252005ejd.313.2021.07.26.09.02.17; Mon, 26 Jul 2021 09:02:42 -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=yEzgK2d1; 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 S236242AbhGZPUK (ORCPT + 99 others); Mon, 26 Jul 2021 11:20:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:49410 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236358AbhGZPIQ (ORCPT ); Mon, 26 Jul 2021 11:08:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0E1CE60F6F; Mon, 26 Jul 2021 15:48:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1627314514; bh=ljzrG5jH5FZP3Y4XEtZ2izH0BmV7qh9/Hb6E2wfUkX0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yEzgK2d1p6jwj+DeD59zr6vGhC+cuUl1XRbRPOZOYrjCduseO2F+7qYz9g8Xn1eJ0 j/kQ9NMcRulGImE29bVUxRgLDrLui68qSXlOW1V8346hs4VPfNIvX98/l+P3BOGnaH DcbmTrbhnP/j6ys451C5t1n6ds5IZhqb8owoeYxQ= 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.14 76/82] drm: Return -ENOTTY for non-drm ioctls Date: Mon, 26 Jul 2021 17:39:16 +0200 Message-Id: <20210726153830.643862629@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210726153828.144714469@linuxfoundation.org> References: <20210726153828.144714469@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 @@ -776,6 +776,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 /**