* [PATCH 0/3] follow-up to the unicode vt console series @ 2018-07-18 1:02 Nicolas Pitre 2018-07-18 1:02 ` [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function Nicolas Pitre ` (3 more replies) 0 siblings, 4 replies; 10+ messages in thread From: Nicolas Pitre @ 2018-07-18 1:02 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Kees Cook, Geert Uytterhoeven, Adam Borowski, Dave Mielke, Samuel Thibault, linux-kernel, linux-console This is a follow-up series with 3 patches in response to the following messages respectively: http://lkml.kernel.org/r/20180628123803.GA22045@kroah.com http://lkml.kernel.org/r/CAGXu5j+KLvJ-n_QRrfq15E8iO_rqfpp+K7PDAZHZMHcemy9y7g@mail.gmail.com http://lkml.kernel.org/r/CAMuHMdUmC+uiKTEMotB83A86E1wEYrNF2qPf3kDACaW27D_NbA@mail.gmail.com Those patches were tested on top of previous patches already in tty-next. Please include in tty-next before next merge window. Patch #1 was posted before. Only difference is that it now uses rate limited printing. Patch #2 is new, however it has been tested with the validation code provided by patch #1. This also fixes a security issue. Patch #3 is new and trivial. Diffstat: Documentation/admin-guide/devices.txt | 16 +++++--- drivers/tty/vt/vt.c | 57 +++++++++++++++++++++++++---- 2 files changed, 59 insertions(+), 14 deletions(-) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function 2018-07-18 1:02 [PATCH 0/3] follow-up to the unicode vt console series Nicolas Pitre @ 2018-07-18 1:02 ` Nicolas Pitre 2018-07-18 1:48 ` Adam Borowski 2018-07-18 1:02 ` [PATCH 2/3] vt: coherence validation code for the unicode screen buffer Nicolas Pitre ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Nicolas Pitre @ 2018-07-18 1:02 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Kees Cook, Geert Uytterhoeven, Adam Borowski, Dave Mielke, Samuel Thibault, linux-kernel, linux-console The nr argument is typically small: most often nr == 1. However this could be abused with a very large explicit scroll in a resized screen. Make the code scroll lines one at a time in all cases to avoid the VLA. Anything smarter is most likely not warranted here. Requested-by: Kees Cook <keescook@chromium.org> Signed-off-by: Nicolas Pitre <nico@linaro.org> --- drivers/tty/vt/vt.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 2d14bb195d..03e79f7787 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -433,20 +433,22 @@ static void vc_uniscr_scroll(struct vc_data *vc, unsigned int t, unsigned int b, if (uniscr) { unsigned int s, d, rescue, clear; - char32_t *save[nr]; s = clear = t; - d = t + nr; - rescue = b - nr; + d = t + 1; + rescue = b - 1; if (dir == SM_UP) { swap(s, d); swap(clear, rescue); } - memcpy(save, uniscr->lines + rescue, nr * sizeof(*save)); - memmove(uniscr->lines + d, uniscr->lines + s, - (b - t - nr) * sizeof(*uniscr->lines)); - memcpy(uniscr->lines + clear, save, nr * sizeof(*save)); - vc_uniscr_clear_lines(vc, clear, nr); + while (nr--) { + char32_t *tmp; + tmp = uniscr->lines[rescue]; + memmove(uniscr->lines + d, uniscr->lines + s, + (b - t - 1) * sizeof(*uniscr->lines)); + uniscr->lines[clear] = tmp; + vc_uniscr_clear_lines(vc, clear, 1); + } } } -- 2.17.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function 2018-07-18 1:02 ` [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function Nicolas Pitre @ 2018-07-18 1:48 ` Adam Borowski 2018-07-18 2:54 ` Nicolas Pitre 0 siblings, 1 reply; 10+ messages in thread From: Adam Borowski @ 2018-07-18 1:48 UTC (permalink / raw) To: Nicolas Pitre Cc: Greg Kroah-Hartman, Kees Cook, Geert Uytterhoeven, Dave Mielke, Samuel Thibault, linux-kernel, linux-console On Tue, Jul 17, 2018 at 09:02:40PM -0400, Nicolas Pitre wrote: > The nr argument is typically small: most often nr == 1. However this > could be abused with a very large explicit scroll in a resized screen. > Make the code scroll lines one at a time in all cases to avoid the VLA. > Anything smarter is most likely not warranted here. Even though nr can be 32767 at most, your new version is O(nr*nr) for no reason. Instead of O(n) memory or O(n²) time, a variant of the original that copies values one at a time would be shorter and faster. > Requested-by: Kees Cook <keescook@chromium.org> > Signed-off-by: Nicolas Pitre <nico@linaro.org> > --- > drivers/tty/vt/vt.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c > index 2d14bb195d..03e79f7787 100644 > --- a/drivers/tty/vt/vt.c > +++ b/drivers/tty/vt/vt.c > @@ -433,20 +433,22 @@ static void vc_uniscr_scroll(struct vc_data *vc, unsigned int t, unsigned int b, > > if (uniscr) { > unsigned int s, d, rescue, clear; > - char32_t *save[nr]; > > s = clear = t; > - d = t + nr; > - rescue = b - nr; > + d = t + 1; > + rescue = b - 1; > if (dir == SM_UP) { > swap(s, d); > swap(clear, rescue); > } > - memcpy(save, uniscr->lines + rescue, nr * sizeof(*save)); > - memmove(uniscr->lines + d, uniscr->lines + s, > - (b - t - nr) * sizeof(*uniscr->lines)); > - memcpy(uniscr->lines + clear, save, nr * sizeof(*save)); > - vc_uniscr_clear_lines(vc, clear, nr); > + while (nr--) { > + char32_t *tmp; > + tmp = uniscr->lines[rescue]; > + memmove(uniscr->lines + d, uniscr->lines + s, > + (b - t - 1) * sizeof(*uniscr->lines)); > + uniscr->lines[clear] = tmp; > + vc_uniscr_clear_lines(vc, clear, 1); > + } > } > } What the function does is rotating an array (slice [t..b) here), by nr if SM_DOWN or by -nr ie (b - t - nr) if SM_UP. A nice problem that almost every "code interview questions" book includes :) Please say if you don't have time for such games, I've just refreshed what's a good answer. :þ Meow. -- // If you believe in so-called "intellectual property", please immediately // cease using counterfeit alphabets. Instead, contact the nearest temple // of Amon, whose priests will provide you with scribal services for all // your writing needs, for Reasonable And Non-Discriminatory prices. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function 2018-07-18 1:48 ` Adam Borowski @ 2018-07-18 2:54 ` Nicolas Pitre 2018-07-19 4:05 ` Nicolas Pitre 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Pitre @ 2018-07-18 2:54 UTC (permalink / raw) To: Adam Borowski Cc: Greg Kroah-Hartman, Kees Cook, Geert Uytterhoeven, Dave Mielke, Samuel Thibault, linux-kernel, linux-console [-- Attachment #1: Type: text/plain, Size: 4111 bytes --] On Wed, 18 Jul 2018, Adam Borowski wrote: > On Tue, Jul 17, 2018 at 09:02:40PM -0400, Nicolas Pitre wrote: > > The nr argument is typically small: most often nr == 1. However this > > could be abused with a very large explicit scroll in a resized screen. > > Make the code scroll lines one at a time in all cases to avoid the VLA. > > Anything smarter is most likely not warranted here. > > Even though nr can be 32767 at most, your new version is O(nr*nr) for no > reason. Instead of O(n) memory or O(n²) time, a variant of the original > that copies values one at a time would be shorter and faster. Well... even though nr _can_ be up to 32766 to be precise, it is most likely to be just 1 in 99.9% of the cases. So in that case, you'll execute the loop only once and the code is currently optimal with O(n). If nr > 1 then the current cost is O(n*nr) where n is the height of the scroll window i.e. relatively small in practice (typically between 25 and 60). There is no point optimizing for 32767 rows as that is rather silly. If we had then the best solution would be a linked list rather than an array. But still, if nr > 2 that means you need a temporary storage because the destination memory has to be preserved before the source memory can be moved there, and that destination memory content cannot be stored in the vacated source memory until the source content is moved. Copying values one at a time cannot work because the destination memory, the source memory, and the area where the previous content from the destination memory will end up don't overlap most of the time. That temporary storage was that VLA. We don't want VLAs. So how do we efficiently allocate and deallocate memory for, say, 25 words? Maybe that doesn't have to be efficient because that doesn't happen very often as we said, at which point we can just do it in a loop with a one-line increment instead, as this patch does. If you still have a more clever way of doing this then please propose it in code form (I'm genuinely curious of what you have in mind). But let's get the baseline working in an obvious "correct" way first. > > Requested-by: Kees Cook <keescook@chromium.org> > > Signed-off-by: Nicolas Pitre <nico@linaro.org> > > --- > > drivers/tty/vt/vt.c | 18 ++++++++++-------- > > 1 file changed, 10 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c > > index 2d14bb195d..03e79f7787 100644 > > --- a/drivers/tty/vt/vt.c > > +++ b/drivers/tty/vt/vt.c > > @@ -433,20 +433,22 @@ static void vc_uniscr_scroll(struct vc_data *vc, unsigned int t, unsigned int b, > > > > if (uniscr) { > > unsigned int s, d, rescue, clear; > > - char32_t *save[nr]; > > > > s = clear = t; > > - d = t + nr; > > - rescue = b - nr; > > + d = t + 1; > > + rescue = b - 1; > > if (dir == SM_UP) { > > swap(s, d); > > swap(clear, rescue); > > } > > - memcpy(save, uniscr->lines + rescue, nr * sizeof(*save)); > > - memmove(uniscr->lines + d, uniscr->lines + s, > > - (b - t - nr) * sizeof(*uniscr->lines)); > > - memcpy(uniscr->lines + clear, save, nr * sizeof(*save)); > > - vc_uniscr_clear_lines(vc, clear, nr); > > + while (nr--) { > > + char32_t *tmp; > > + tmp = uniscr->lines[rescue]; > > + memmove(uniscr->lines + d, uniscr->lines + s, > > + (b - t - 1) * sizeof(*uniscr->lines)); > > + uniscr->lines[clear] = tmp; > > + vc_uniscr_clear_lines(vc, clear, 1); > > + } > > } > > } > > What the function does is rotating an array (slice [t..b) here), by nr if > SM_DOWN or by -nr ie (b - t - nr) if SM_UP. A nice problem that almost every > "code interview questions" book includes :) > > Please say if you don't have time for such games, I've just refreshed what's > a good answer. :þ > > > Meow. > -- > // If you believe in so-called "intellectual property", please immediately > // cease using counterfeit alphabets. Instead, contact the nearest temple > // of Amon, whose priests will provide you with scribal services for all > // your writing needs, for Reasonable And Non-Discriminatory prices. > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function 2018-07-18 2:54 ` Nicolas Pitre @ 2018-07-19 4:05 ` Nicolas Pitre 2018-07-21 7:20 ` [PATCH v2 " Greg Kroah-Hartman 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Pitre @ 2018-07-19 4:05 UTC (permalink / raw) To: Adam Borowski, Greg Kroah-Hartman Cc: Kees Cook, Geert Uytterhoeven, Dave Mielke, Samuel Thibault, linux-kernel, linux-console On Tue, 17 Jul 2018, Nicolas Pitre wrote: > But still, if nr > 2 that means you need a temporary storage because the > destination memory has to be preserved before the source memory can be > moved there, and that destination memory content cannot be stored in the > vacated source memory until the source content is moved. OK I'm an idiot. After looking in the literature, I found out that there is indeed a better way to do this. So here's an updated patch: ----- >8 Subject: [PATCH v2 1/3] vt: avoid a VLA in the unicode screen scroll function The nr argument is typically small: most often nr == 1. However this could be abused with a very large explicit scroll in a resized screen. Make the code scroll lines by performing an array rotation operation to avoid the need for a large temporary space. Requested-by: Kees Cook <keescook@chromium.org> Suggested-by: Adam Borowski <kilobyte@angband.pl> Signed-off-by: Nicolas Pitre <nico@linaro.org> diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 2d14bb195d..d527184579 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -104,6 +104,7 @@ #include <linux/kdb.h> #include <linux/ctype.h> #include <linux/bsearch.h> +#include <linux/gcd.h> #define MAX_NR_CON_DRIVER 16 @@ -432,20 +433,29 @@ static void vc_uniscr_scroll(struct vc_data *vc, unsigned int t, unsigned int b, struct uni_screen *uniscr = get_vc_uniscr(vc); if (uniscr) { - unsigned int s, d, rescue, clear; - char32_t *save[nr]; - - s = clear = t; - d = t + nr; - rescue = b - nr; - if (dir == SM_UP) { - swap(s, d); - swap(clear, rescue); + unsigned int i, j, k, sz, d, clear; + + sz = b - t; + clear = b - nr; + d = nr; + if (dir == SM_DOWN) { + clear = t; + d = sz - nr; + } + for (i = 0; i < gcd(d, sz); i++) { + char32_t *tmp = uniscr->lines[t + i]; + j = i; + while (1) { + k = j + d; + if (k >= sz) + k -= sz; + if (k == i) + break; + uniscr->lines[t + j] = uniscr->lines[t + k]; + j = k; + } + uniscr->lines[t + j] = tmp; } - memcpy(save, uniscr->lines + rescue, nr * sizeof(*save)); - memmove(uniscr->lines + d, uniscr->lines + s, - (b - t - nr) * sizeof(*uniscr->lines)); - memcpy(uniscr->lines + clear, save, nr * sizeof(*save)); vc_uniscr_clear_lines(vc, clear, nr); } } ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] vt: avoid a VLA in the unicode screen scroll function 2018-07-19 4:05 ` Nicolas Pitre @ 2018-07-21 7:20 ` Greg Kroah-Hartman 0 siblings, 0 replies; 10+ messages in thread From: Greg Kroah-Hartman @ 2018-07-21 7:20 UTC (permalink / raw) To: Nicolas Pitre Cc: Adam Borowski, Kees Cook, Geert Uytterhoeven, Dave Mielke, Samuel Thibault, linux-kernel, linux-console On Thu, Jul 19, 2018 at 12:05:25AM -0400, Nicolas Pitre wrote: > > The nr argument is typically small: most often nr == 1. However this > could be abused with a very large explicit scroll in a resized screen. > Make the code scroll lines by performing an array rotation operation to > avoid the need for a large temporary space. > > Requested-by: Kees Cook <keescook@chromium.org> > Suggested-by: Adam Borowski <kilobyte@angband.pl> > Signed-off-by: Nicolas Pitre <nico@linaro.org> I've now applied this v2 of the patch, thanks for this. greg k-h ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] vt: coherence validation code for the unicode screen buffer 2018-07-18 1:02 [PATCH 0/3] follow-up to the unicode vt console series Nicolas Pitre 2018-07-18 1:02 ` [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function Nicolas Pitre @ 2018-07-18 1:02 ` Nicolas Pitre 2018-07-18 1:02 ` [PATCH 3/3] vt: add /dev/vcsu* to devices.txt Nicolas Pitre 2018-07-18 14:04 ` [PATCH 0/3] follow-up to the unicode vt console series Kees Cook 3 siblings, 0 replies; 10+ messages in thread From: Nicolas Pitre @ 2018-07-18 1:02 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Kees Cook, Geert Uytterhoeven, Adam Borowski, Dave Mielke, Samuel Thibault, linux-kernel, linux-console Make sure the unicode screen buffer matches the video screen content. This is provided for debugging convenience and disabled by default. Signed-off-by: Nicolas Pitre <nico@linaro.org> --- drivers/tty/vt/vt.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 03e79f7787..331f175265 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -328,6 +328,8 @@ void schedule_console_callback(void) #define get_vc_uniscr(vc) vc->vc_uni_screen #endif +#define VC_UNI_SCREEN_DEBUG 0 + typedef uint32_t char32_t; /* @@ -571,6 +573,42 @@ void vc_uniscr_copy_line(struct vc_data *vc, void *dest, int viewed, } } +/* this is for validation and debugging only */ +static void vc_uniscr_debug_check(struct vc_data *vc) +{ + struct uni_screen *uniscr = get_vc_uniscr(vc); + unsigned short *p; + int x, y, mask; + + if (!VC_UNI_SCREEN_DEBUG || !uniscr) + return; + + WARN_CONSOLE_UNLOCKED(); + + /* + * Make sure our unicode screen translates into the same glyphs + * as the actual screen. This is brutal indeed. + */ + p = (unsigned short *)vc->vc_origin; + mask = vc->vc_hi_font_mask | 0xff; + for (y = 0; y < vc->vc_rows; y++) { + char32_t *line = uniscr->lines[y]; + for (x = 0; x < vc->vc_cols; x++) { + u16 glyph = scr_readw(p++) & mask; + char32_t uc = line[x]; + int tc = conv_uni_to_pc(vc, uc); + if (tc == -4) + tc = conv_uni_to_pc(vc, 0xfffd); + if (tc == -4) + tc = conv_uni_to_pc(vc, '?'); + if (tc != glyph) + pr_err_ratelimited( + "%s: mismatch at %d,%d: glyph=%#x tc=%#x\n", + __func__, x, y, glyph, tc); + } + } +} + static void con_scroll(struct vc_data *vc, unsigned int t, unsigned int b, enum con_scroll dir, unsigned int nr) @@ -2719,6 +2757,7 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co do_con_trol(tty, vc, orig); } con_flush(vc, draw_from, draw_to, &draw_x); + vc_uniscr_debug_check(vc); console_conditional_schedule(); console_unlock(); notify_update(vc); -- 2.17.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] vt: add /dev/vcsu* to devices.txt 2018-07-18 1:02 [PATCH 0/3] follow-up to the unicode vt console series Nicolas Pitre 2018-07-18 1:02 ` [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function Nicolas Pitre 2018-07-18 1:02 ` [PATCH 2/3] vt: coherence validation code for the unicode screen buffer Nicolas Pitre @ 2018-07-18 1:02 ` Nicolas Pitre 2018-07-18 7:25 ` Geert Uytterhoeven 2018-07-18 14:04 ` [PATCH 0/3] follow-up to the unicode vt console series Kees Cook 3 siblings, 1 reply; 10+ messages in thread From: Nicolas Pitre @ 2018-07-18 1:02 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Kees Cook, Geert Uytterhoeven, Adam Borowski, Dave Mielke, Samuel Thibault, linux-kernel, linux-console Also mention that the traditional devices provide glyph values whereas /dev/vcsu* is unicode based. Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Nicolas Pitre <nico@linaro.org> --- Documentation/admin-guide/devices.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt index 4ec843123c..1649117e60 100644 --- a/Documentation/admin-guide/devices.txt +++ b/Documentation/admin-guide/devices.txt @@ -173,14 +173,18 @@ they are redirected through the parport multiplex layer. 7 char Virtual console capture devices - 0 = /dev/vcs Current vc text contents - 1 = /dev/vcs1 tty1 text contents + 0 = /dev/vcs Current vc text (glyph) contents + 1 = /dev/vcs1 tty1 text (glyph) contents ... - 63 = /dev/vcs63 tty63 text contents - 128 = /dev/vcsa Current vc text/attribute contents - 129 = /dev/vcsa1 tty1 text/attribute contents + 63 = /dev/vcs63 tty63 text (glyph) contents + 64 = /dev/vcsu Current vc text (unicode) contents + 65 = /dev/vcsu1 tty1 text (unicode) contents ... - 191 = /dev/vcsa63 tty63 text/attribute contents + 127 = /dev/vcsu63 tty63 text (unicode) contents + 128 = /dev/vcsa Current vc text/attribute (glyph) contents + 129 = /dev/vcsa1 tty1 text/attribute (glyph) contents + ... + 191 = /dev/vcsa63 tty63 text/attribute (glyph) contents NOTE: These devices permit both read and write access. -- 2.17.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] vt: add /dev/vcsu* to devices.txt 2018-07-18 1:02 ` [PATCH 3/3] vt: add /dev/vcsu* to devices.txt Nicolas Pitre @ 2018-07-18 7:25 ` Geert Uytterhoeven 0 siblings, 0 replies; 10+ messages in thread From: Geert Uytterhoeven @ 2018-07-18 7:25 UTC (permalink / raw) To: Nicolas Pitre Cc: Greg KH, Kees Cook, Adam Borowski, Dave Mielke, Samuel Thibault, Linux Kernel Mailing List, linux-console On Wed, Jul 18, 2018 at 3:02 AM Nicolas Pitre <nicolas.pitre@linaro.org> wrote: > Also mention that the traditional devices provide glyph values whereas > /dev/vcsu* is unicode based. > > Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org> > Signed-off-by: Nicolas Pitre <nico@linaro.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] follow-up to the unicode vt console series 2018-07-18 1:02 [PATCH 0/3] follow-up to the unicode vt console series Nicolas Pitre ` (2 preceding siblings ...) 2018-07-18 1:02 ` [PATCH 3/3] vt: add /dev/vcsu* to devices.txt Nicolas Pitre @ 2018-07-18 14:04 ` Kees Cook 3 siblings, 0 replies; 10+ messages in thread From: Kees Cook @ 2018-07-18 14:04 UTC (permalink / raw) To: Nicolas Pitre Cc: Greg Kroah-Hartman, Geert Uytterhoeven, Adam Borowski, Dave Mielke, Samuel Thibault, LKML, linux-console Hi Nicolas, On Tue, Jul 17, 2018 at 6:02 PM, Nicolas Pitre <nicolas.pitre@linaro.org> wrote: > This is a follow-up series with 3 patches in response to the following > messages respectively: > > http://lkml.kernel.org/r/20180628123803.GA22045@kroah.com > > http://lkml.kernel.org/r/CAGXu5j+KLvJ-n_QRrfq15E8iO_rqfpp+K7PDAZHZMHcemy9y7g@mail.gmail.com > > http://lkml.kernel.org/r/CAMuHMdUmC+uiKTEMotB83A86E1wEYrNF2qPf3kDACaW27D_NbA@mail.gmail.com > > Those patches were tested on top of previous patches already in tty-next. > Please include in tty-next before next merge window. > > Patch #1 was posted before. Only difference is that it now uses rate > limited printing. > > Patch #2 is new, however it has been tested with the validation code > provided by patch #1. This also fixes a security issue. > > Patch #3 is new and trivial. > > Diffstat: > > Documentation/admin-guide/devices.txt | 16 +++++--- > drivers/tty/vt/vt.c | 57 +++++++++++++++++++++++++---- > 2 files changed, 59 insertions(+), 14 deletions(-) Thanks for fixing the VLA! :) -Kees -- Kees Cook Pixel Security ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-07-21 7:21 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-07-18 1:02 [PATCH 0/3] follow-up to the unicode vt console series Nicolas Pitre 2018-07-18 1:02 ` [PATCH 1/3] vt: avoid a VLA in the unicode screen scroll function Nicolas Pitre 2018-07-18 1:48 ` Adam Borowski 2018-07-18 2:54 ` Nicolas Pitre 2018-07-19 4:05 ` Nicolas Pitre 2018-07-21 7:20 ` [PATCH v2 " Greg Kroah-Hartman 2018-07-18 1:02 ` [PATCH 2/3] vt: coherence validation code for the unicode screen buffer Nicolas Pitre 2018-07-18 1:02 ` [PATCH 3/3] vt: add /dev/vcsu* to devices.txt Nicolas Pitre 2018-07-18 7:25 ` Geert Uytterhoeven 2018-07-18 14:04 ` [PATCH 0/3] follow-up to the unicode vt console series Kees Cook
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).