2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-01 09:13:24 +08:00
linux-next/drivers/tty/vt
Ben Hutchings 15b3cd8ef4 Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c"
This reverts commit 84ecc2f6eb.

con_insert_unipair() is working with a sparse 3-dimensional array:

- p->uni_pgdir[] is the top layer
- p1 points to a middle layer
- p2 points to a bottom layer

If it needs to allocate a new middle layer, and then fails to allocate
a new bottom layer, it would previously free only p2, and now it frees
both p1 and p2.  But since the new middle layer was already registered
in the top layer, it was not leaked.

However, if it looks up an *existing* middle layer and then fails to
allocate a bottom layer, it now frees both p1 and p2 but does *not*
free any other bottom layers under p1.  So it *introduces* a memory
leak.

The error path also cleared the wrong index in p->uni_pgdir[],
introducing a use-after-free.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Fixes: 84ecc2f6eb ("consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-04 21:01:58 +02:00
..
.gitignore tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
consolemap.c Revert "consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c" 2019-06-04 21:01:58 +02:00
cp437.uni tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
defkeymap.c_shipped tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
defkeymap.map tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
keyboard.c tty: vt: keyboard: Allow Unicode compose base char 2019-04-16 15:21:34 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
selection.c vt: selection: allow functions to be called from inside kernel 2019-04-19 15:09:10 +02:00
vc_screen.c vt: use /dev/vcs (not /dev/vcs0) in comment 2019-03-28 01:28:24 +09:00
vt_ioctl.c Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-10-24 14:43:41 +01:00
vt.c vt/fbcon: deinitialize resources in visual_init() after failed memory allocation 2019-05-24 10:06:24 +02:00