Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp931178imm; Wed, 11 Jul 2018 13:41:51 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfuMtmAdeZlX8jFeMpILvxcXjsaqyNaDoRY+EMN4kWlOPfV+IEOf+U7ct9wwCVu0rxjnnvy X-Received: by 2002:a63:d5b:: with SMTP id 27-v6mr136706pgn.107.1531341711007; Wed, 11 Jul 2018 13:41:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531341710; cv=none; d=google.com; s=arc-20160816; b=v2E0WM/Y/SwFClyenXQi3t7+FXu405LFffxx9IGBfZyeyK0GyP7raAuvkmFOhbbDpS ZfhcCxZeVE/LYcHnxXljOp7CYhE7rC7wnS+1CpaxTwLUi+LMyJ+stOCxDUHxYppSpX9I 57enxg/ibL+NxW+QrgERJIUUTGld21ynS005KSYrABxSCMNjxdSP3Ui/Xb5WkOQNxy2W giW83lmxX+2hCU5UPWtLIkRcDj72P4q2xcHAOKeN/h56nZ3H6QeU34Y04gFd0wXBGCxN j47J3tfxvsowaWrNHf7z6gN9I9B6FX3E1mHd/TJDc8FfYLCFaNbmz7XoPlbw7fJCwnen 1/cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=D7ME7LO5E4s3YJ4FFp74Tx+/SAi4RbuIMCZD6XUQqWc=; b=oBWd+R08t/oqUHCp7Rlza4fm+tx1KIDp5ky2O0W/q6j8MeanerGTEwCOzSxnLFOPEi osoSsFDMASGKHRBoW5yxLoS1UecQuuviXqLQMB3wV7NExaqMpa1M7wOwP/ssOtRGvIsf fg8qzXes1yQTzyzuCpUD/mBUP+ttvNRbxTSo9sAXQynCA6MpFQwHKYEBuDeXrIY4bGhI Q/dresQkfjqy8UNRoBzEn8jmgVS0NPXpphcOpBquTxKbVUJ0Ml0gFIWylwYS1VAiKa2m W3qUTp4Eabu0qyKSIgck72wjWrTmOm//d/DTzGV1MqSZrhN/EtqsknO7CQPpNBYq8VgW ANOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=JzEUHgNv; dkim=fail header.i=@chromium.org header.s=google header.b=k8LAQKBz; 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=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g4-v6si20651348plm.181.2018.07.11.13.41.36; Wed, 11 Jul 2018 13:41:50 -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=fail header.i=@google.com header.s=20161025 header.b=JzEUHgNv; dkim=fail header.i=@chromium.org header.s=google header.b=k8LAQKBz; 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=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733070AbeGKUqC (ORCPT + 99 others); Wed, 11 Jul 2018 16:46:02 -0400 Received: from mail-yw0-f196.google.com ([209.85.161.196]:37044 "EHLO mail-yw0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726453AbeGKUqC (ORCPT ); Wed, 11 Jul 2018 16:46:02 -0400 Received: by mail-yw0-f196.google.com with SMTP id w76-v6so9665640ywg.4 for ; Wed, 11 Jul 2018 13:39:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=D7ME7LO5E4s3YJ4FFp74Tx+/SAi4RbuIMCZD6XUQqWc=; b=JzEUHgNvOW2smCby/JtyoRdIHzS0WcGOp2HdooFuVRQq5LRhfx7erRjOfsSGzCmwwU tZuAo2pACGi9tqc8MjuPGFlLDjSdPVAI1RCZkYozOcEWyOEJ6Zz9GeKZUQw4Cc1wblEu yX/mszY2rXUlJxqzIGS/f/HVlqwKff8v7AR6a9tWArgHu3UUrRWb/2FoTfsRu45TQ41E hrob/UeWIHKQ9G4v97hfvxYG/7WCbx1HzIR78e8i9HlDWaeTRJq28idqgQOi6VQZmx1K ozLHLU3uoFN3jp26WKPDMqBoDyWx0pylFs5kB/ggdiRDghv0VmR0YLM7dPtE5t+d20lH hv9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=D7ME7LO5E4s3YJ4FFp74Tx+/SAi4RbuIMCZD6XUQqWc=; b=k8LAQKBzGqY7qkSE/HhZx3nhElJCMLMJFBXOcUT4T6q0GYQEM9Pfj3be9wjOvmx0xS zxCOUnmKDpLMwgE15CBmEoM7KgQPlKt5hXAbYclwbWiSgtvlEVbXuVvb5c1+r+z+Pxp1 al/oz5qOg/pd+VpwmQw2zLKJCXH9zp8pkPwt8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=D7ME7LO5E4s3YJ4FFp74Tx+/SAi4RbuIMCZD6XUQqWc=; b=GZySMl8YulZmDKOT7jCYzbu5KrHzzyyv/PA4hFYhDpe6++N3YLBtjVZOuDzrF/AucO c4JtQ5uhHxU7JHjXQEMnWd16tm50gh6dDyEQiYFediPy6kiLNFbB97Q2Uo3QeMgN6061 FgMj0uThHEHQtL4HPt/BwqGZD0FtMGliwjJpgtJtASh7cfGjw86C49zeFB2avI60brd9 jf2w5VXdBSm0ufI99cPk2kQDEhOVlklwwhdp3v7NWZjI5ryWo/WC8CWhm01PhWN0gb9P p2A94IvEDWs1HwsWZ7yYTx7/UrNVPA90Bp78BgUNfvyb35olqmmZV2mri2f0VKsuet6p fpug== X-Gm-Message-State: AOUpUlEY2RRKWj/lezYKiXvgCT4v/YmG3MTzqcc6Ye/9y4/DBElUmkJM RK45LfNnSP8RlfEi4mXI18lX2vii3DGYL9GG41xa6A== X-Received: by 2002:a81:8742:: with SMTP id x63-v6mr80904ywf.129.1531341596755; Wed, 11 Jul 2018 13:39:56 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:5f51:0:0:0:0:0 with HTTP; Wed, 11 Jul 2018 13:39:56 -0700 (PDT) In-Reply-To: <20180711091848.GA2889@kroah.com> References: <20180627035642.8561-1-nicolas.pitre@linaro.org> <20180627035642.8561-2-nicolas.pitre@linaro.org> <20180711091848.GA2889@kroah.com> From: Kees Cook Date: Wed, 11 Jul 2018 13:39:56 -0700 X-Google-Sender-Auth: ozn6XTOEqCYMCcYk_76GUSQ_YXE Message-ID: Subject: Re: [PATCH v3 1/3] vt: preserve unicode values corresponding to screen characters To: Greg Kroah-Hartman Cc: Nicolas Pitre , Dave Mielke , Samuel Thibault , Adam Borowski , Alan Cox , LKML , linux-console@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 11, 2018 at 2:18 AM, Greg Kroah-Hartman wrote: > On Tue, Jul 10, 2018 at 05:52:01PM -0700, Kees Cook wrote: >> On Tue, Jun 26, 2018 at 8:56 PM, Nicolas Pitre wrote: >> > The vt code translates UTF-8 strings into glyph index values and stores >> > those glyph values directly in the screen buffer. Because there can only >> > be at most 512 glyphs, it is impossible to represent most unicode >> > characters, in which case a default glyph (often '?') is displayed >> > instead. The original unicode value is then lost. >> > >> > This patch implements the basic screen buffer handling to preserve unicode >> > values alongside corresponding display glyphs. It is not activated by >> > default, meaning that people not relying on that functionality won't get >> > the implied overhead. >> > >> > Signed-off-by: Nicolas Pitre >> > Tested-by: Dave Mielke >> > Acked-by: Adam Borowski >> > --- >> > drivers/tty/vt/vt.c | 220 +++++++++++++++++++++++++++++++-- >> > include/linux/console_struct.h | 2 + >> > 2 files changed, 211 insertions(+), 11 deletions(-) >> > >> > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c >> > index 1eb1a376a0..7b636638b3 100644 >> > --- a/drivers/tty/vt/vt.c >> > +++ b/drivers/tty/vt/vt.c >> > [...] >> > +static void vc_uniscr_scroll(struct vc_data *vc, unsigned int t, unsigned int b, >> > + enum con_scroll dir, unsigned int nr) >> > +{ >> > + struct uni_screen *uniscr = get_vc_uniscr(vc); >> > + >> > + if (uniscr) { >> > + unsigned int s, d, rescue, clear; >> > + char32_t *save[nr]; >> >> Can you adjust this to avoid the VLA here? I've almost gotten all VLAs >> removed from the kernel[1], and this is introducing a new one. :) > > This is already in my tree, sorry :( Yup, that's fine. (It's how I noticed it: linux-next VLA build tests.) I'm just hoping it can get solved before the merge window opens. :) There are still a bunch of VLAs I'm chipping away at, but this was a newly added one, so I was hoping Nicolas (when he's back from vacation) will have ideas on how to best avoid it. Thanks! -Kees -- Kees Cook Pixel Security