• Michael Holzheu's avatar
    [S390] Check for NULL termination in command line setup · 1fb81057
    Michael Holzheu authored
    The current code in setup_boot_command_line() uses a heuristic to
    detect an EBCDIC command line. It checks if any of the bytes in
    the command line has bit one (0x80) set. In that case it is assumed
    that we have an EBCDIC string and the complete command line is
    converted.
    
    On s390 there are cases where the boot loader provides a kernel
    command line that is NULL terminated, but has random data after
    the NULL termination. In that case, setup_boot_command_line()
    might misinterpret an ASCII string for an EBCDIC string. A
    subsequent string conversion can then damage the ASCII string.
    
    This patch solves the problem by checking for NULL termination.
    If no EBCDIC character has been found until the the NULL
    termination has been found, we now assume that we have an ASCII
    string.
    Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    1fb81057
early.c 12 KB