• Sascha Silbe's avatar
    s390/con3270: fix insufficient space padding · 6cd997db
    Sascha Silbe authored
    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 that were _just_ short enough that the RA order still fit in
    the line buffer, the line was instead padded with an insufficient
    amount of spaces. This was caused by examining the size of the
    allocated line buffer rather than the length of the string to be
    displayed.
    
    For con3270_cline_end(), we just compare against the line length. For
    con3270_update_string() however that isn't available anymore, so we
    check whether the Repeat to Address order is present.
    
    Fixes: f51320a5 ("[PATCH] s390: new 3270 driver.") (tglx/history.git)
    Tested-by: default avatarJing Liu <liujbjl@linux.vnet.ibm.com>
    Tested-by: default avatarYang Chen <bjcyang@linux.vnet.ibm.com>
    Signed-off-by: default avatarSascha Silbe <silbe@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    6cd997db
con3270.c 15.9 KB