Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp2443746imm; Wed, 3 Oct 2018 04:05:28 -0700 (PDT) X-Google-Smtp-Source: ACcGV63uRbVKlqupsWKZOBSOHbJE0AaoPf0yeIKtU6v2mfXiYbym1CGEhKbKqvR10+5Z0zesfNZI X-Received: by 2002:a65:664e:: with SMTP id z14-v6mr841536pgv.347.1538564728046; Wed, 03 Oct 2018 04:05:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538564728; cv=none; d=google.com; s=arc-20160816; b=iC7THrkMXel7hid4tB9Hx+VF9yucQhxvJTb6BkLxGG1yS7uEsawpHMi9aYxCmBd1j2 G8vCNgk6d1btCemN+8w3MfZzZDP+BVdMgt56JPj5AzP6VicCSudMcY4xD20sR+AeKYtT dV46/FbsVrlMt8sPl+OPN0fFW1GBbAh6Dgwazh72IqC/IwzwZdfJIF/DEywkTuNMoBz/ cvWWL8iYWj2O2y5kgLJfz5YLRrNy0wkav2Ly+qkrg2fALWnkhWQzwhxR7vsyYiMa2wVG glMAsNRF2Ptc1w0MsEIVYyy2YznrECwPVJpulZyZPquQzJyZ1ahytfSv8QCFuV7GvZjF JMVw== 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 :dkim-signature; bh=X8dCjYvC3wbAwVbSHkMMbvBkQCArgpEowQIv9kG0ErU=; b=OrrNmEdcB+1EPFK/bwBkKspTPtK/5zW4D27KggUPeI//KLX/bXE/nCmZOPhmpsaXOw ObyS/RIS2I5bVkBt4iBqwwzLDuVZlFruIjX6UxHSODqqdP02ItaaizDbYDMPkKsNXu0G VRyc3M85H5ecc1kM6Qb8QinIwADI745E01yJFEE+xZZn8g0BEPo4nQdvKOGUryckrzsx IVavIe4tXSj0e19pthWSfVM5IaQzJuCLoKllZgTNhM09ev3tUJ3SmivFeWc2qVL9bkt3 Swb3iNFtp6gSL/vVNiBRf+atdNn9uZ+N3yH3lArfS0q6vGDId9MEVe/CK8ICdebfLHng m2fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=Z6K5+n++; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v13-v6si1178903ply.377.2018.10.03.04.05.12; Wed, 03 Oct 2018 04:05:28 -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; dkim=pass header.i=@synopsys.com header.s=mail header.b=Z6K5+n++; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726738AbeJCRxA (ORCPT + 99 others); Wed, 3 Oct 2018 13:53:00 -0400 Received: from smtprelay2.synopsys.com ([198.182.60.111]:55612 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726617AbeJCRxA (ORCPT ); Wed, 3 Oct 2018 13:53:00 -0400 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id 2F97A10C03B3; Wed, 3 Oct 2018 04:05:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1538564706; bh=qQ8L0Z+7eV9UKazbeWPkZFzZ765OnKszjk9JjmN1DVA=; h=From:To:Cc:Subject:Date:From; b=Z6K5+n++g4GB2Rhbc8qMWOQHVtivMF8SQfAN1jfLwpTI+gP4om3K66AZunC2kV3z2 89fBvSqG+5XaEXLr+ZrdGDvV0vBd49CM6IRztALLmp4uSNtkYhu2tTtV+m40WkcE+e trfaZDzM5An+HUc+a80mB0W2DaHc5okaNcD/KEeMe1cANcDkPPTldM2NW819GMBM6g ATfUUdweO5NNqNm9hF86ozeRxqA6dmJvYaVY2rF9sddaR6heq0NRIZ8Thxj0RuKZjH kryB3bRroCCmy74ZllZLHVNqIOBV+A8jSD9MiySAjpX4hQ67o+RmAGarEp+m0YhEL6 5IgghwvKbYQ+g== Received: from paltsev-e7480.internal.synopsys.com (paltsev-e7480.internal.synopsys.com [10.121.3.38]) by mailhost.synopsys.com (Postfix) with ESMTP id A031C53A4; Wed, 3 Oct 2018 04:05:00 -0700 (PDT) From: Eugeniy Paltsev To: dri-devel@lists.freedesktop.org Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, Gustavo Padovan , Maarten Lankhorst , Sean Paul , David Airlie , Alexey Brodkin , stable@vger.kernel.org, Eugeniy Paltsev Subject: [PATCH] drm: fb-helper: Validate requested pixel format against bpp Date: Wed, 3 Oct 2018 14:04:57 +0300 Message-Id: <20181003110457.9318-1-Eugeniy.Paltsev@synopsys.com> X-Mailer: git-send-email 2.14.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Validate requested pixel format against bits_per_pixel to reject invalid formats with subcomponents length sum is greater than requested bits_per_pixel. weston 5.0.0 with fbdev backend tries to set up an ARGB x8r8g8b8 pixel format without bits_per_pixel updating. So it can request x8r8g8b8 with 16 bpp which is obviously incorrect and should be rejected. Cc: stable@vger.kernel.org Signed-off-by: Eugeniy Paltsev --- drivers/gpu/drm/drm_fb_helper.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 16ec93b75dbf..4f39da07f053 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -1610,6 +1610,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, return -EINVAL; } + if ((var->green.length + var->blue.length + var->red.length + + var->transp.length) > var->bits_per_pixel) { + DRM_DEBUG("fb requested pixel format can't fit in %d bpp\n", + var->bits_per_pixel); + return -EINVAL; + } + switch (var->bits_per_pixel) { case 16: depth = (var->green.length == 6) ? 16 : 15; -- 2.14.4