linux/drivers/s390/char
Sascha Silbe c14f2aac7a s390/con3270: fix use of uninitialised data
con3270 contains an optimisation that reduces the amount of data to be
transmitted to the 3270 terminal by putting a Repeat to Address (RA)
order into the data stream. The RA order itself takes up space, so
con3270 only uses it if there's enough space left in the line
buffer. Otherwise it just pads out the line manually.

For lines too long to include the RA order, one byte was left
uninitialised. This was caused by an off-by-one bug in the loop that
pads out the line. Since the buffer is allocated from a common pool,
the single byte left uninitialised contained some previous buffer
content. Usually this was just a space or some character (which can
result in clutter but is otherwise harmless). Sometimes, however, it
was a Repeat to Address order, messing up the entire screen layout and
causing the display to send the entire buffer content on every
keystroke.

Fixes: f51320a5 ("[PATCH] s390: new 3270 driver.") (tglx/history.git)
Reported-by: Liu Jing <liujbjl@linux.vnet.ibm.com>
Tested-by: Jing Liu <liujbjl@linux.vnet.ibm.com>
Tested-by: Yang Chen <bjcyang@linux.vnet.ibm.com>
Signed-off-by: Sascha Silbe <silbe@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-09-30 09:13:18 +02:00
..
con3215.c tty: Replace ASYNC_INITIALIZED bit and update atomically 2016-04-30 09:26:55 -07:00
con3270.c s390/con3270: fix use of uninitialised data 2016-09-30 09:13:18 +02:00
ctrlchar.c s390/ctrlchar: improve handling of magic sysrequests 2015-08-26 17:20:44 +02:00
ctrlchar.h s390/ctrlchar: improve handling of magic sysrequests 2015-08-26 17:20:44 +02:00
defkeymap.c
defkeymap.map
diag_ftp.c s390/diag: add a statistic for diagnose calls 2015-10-14 14:32:06 +02:00
diag_ftp.h
fs3270.c s390/3270: avoid endless I/O loop with disconnected 3270 terminals 2016-05-04 16:29:53 +02:00
hmcdrv_cache.c
hmcdrv_cache.h
hmcdrv_dev.c assorted conversions to %p[dD] 2014-11-19 13:01:20 -05:00
hmcdrv_dev.h
hmcdrv_ftp.c s390/hmcdrv: constify hmcdrv_ftp_ops structs 2015-12-30 10:34:25 +01:00
hmcdrv_ftp.h
hmcdrv_mod.c s390/hmcdrv: remove unnecessary version.h inclusion 2015-01-15 11:11:16 +01:00
Kconfig s390/sclp: add open for business support 2015-11-27 09:24:18 +01:00
keyboard.c s390/keyboard: use memdup_user_nul() 2016-06-13 15:58:12 +02:00
keyboard.h
Makefile s390/sclp: move pci related commands to separate file 2016-04-15 18:16:38 +02:00
monreader.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
monwriter.c s390: char: drop owner assignment from platform_drivers 2014-10-20 16:21:32 +02:00
raw3270.c s390/3270: handle reconnect of a tty with a different size 2016-05-10 13:24:46 +02:00
raw3270.h s390/3270: avoid endless I/O loop with disconnected 3270 terminals 2016-05-04 16:29:53 +02:00
sclp_async.c s390/sclp_async: add Kconfig option to specify the component id 2014-11-28 09:45:11 +01:00
sclp_cmd.c s390/sclp: move pci related commands to separate file 2016-04-15 18:16:38 +02:00
sclp_con.c s390/console: Make preferred console handling more consistent 2016-07-13 10:58:07 +02:00
sclp_config.c s390/cpuinfo: show dynamic and static cpu mhz 2016-06-13 15:58:17 +02:00
sclp_cpi_sys.c s390/sclp: event type macro cleanup 2016-04-15 18:16:39 +02:00
sclp_cpi_sys.h
sclp_ctl.c s390/sclp_ctl: fix potential information leak with /dev/sclp 2016-04-27 09:33:39 +02:00
sclp_diag.h
sclp_early.c s390/sclp: detect storage-key facility 2016-06-10 12:07:30 +02:00
sclp_ftp.c
sclp_ftp.h
sclp_ocf.c s390: Make cpc_name accessible 2016-06-10 12:07:10 +02:00
sclp_pci.c s390/sclp: avoid compile warning in sclp_pci_report 2016-04-21 09:51:17 +02:00
sclp_quiesce.c
sclp_rw.c s390/sclp: avoid merged message output 2015-10-14 14:32:10 +02:00
sclp_rw.h s390/sclp: avoid merged message output 2015-10-14 14:32:10 +02:00
sclp_sdias.c s390/sclp: pass timeout as HZ independent value 2015-06-15 10:50:57 +02:00
sclp_sdias.h
sclp_tty.c s390/sclp: avoid merged message output 2015-10-14 14:32:10 +02:00
sclp_tty.h
sclp_vt220.c s390/sclp_vt220: support magic sysrequests 2015-08-26 17:20:45 +02:00
sclp.c s390/sclp: fix possible control register corruption 2016-01-11 13:03:00 +01:00
sclp.h s390/sclp: event type macro cleanup 2016-04-15 18:16:39 +02:00
tape_34xx.c s390/tape: remove redundant if statement 2015-01-22 12:51:49 +01:00
tape_3590.c s390/tape: Use memdup_user() rather than duplicating its implementation 2016-08-24 09:23:57 +02:00
tape_3590.h
tape_char.c
tape_class.c
tape_class.h
tape_core.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
tape_proc.c
tape_std.c
tape_std.h
tape.h
tty3270.c TTY and Serial driver update for 4.7-rc1 2016-05-20 20:57:27 -07:00
tty3270.h
vmcp.c convert a bunch of open-coded instances of memdup_user_nul() 2016-01-04 10:26:58 -05:00
vmcp.h
vmlogrdr.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
vmur.c s390/vmur: fix irq pointer dereference in int handler 2016-09-20 14:26:32 +02:00
vmur.h
zcore.c s390/ipl: rename diagnose enums 2016-06-13 15:58:26 +02:00