• Stephen Boyd's avatar
    nconfig: Fix segfault when help contains special characters · 58f915a3
    Stephen Boyd authored
    nconfig segfaults when help text contains the character '%'. For a quick
    example, navigate to the kernel compression options and get the help for
    bzip2. Doing so triggers a call to mvwprintw() with a string containing
    '%' and no extra arguments to fill in the specifier's value. Fix this
    case by printing the literal string retrieved from the kconfig.
    
     #0  0x00002b52b6b11d83 in vfprintf () from /lib/libc.so.6
     #1  0x00002b52b6bad010 in __vsnprintf_chk () from /lib/libc.so.6
     #2  0x00002b52b623991b in _nc_printf_string () from
     /lib/libncursesw.so.5
     #3  0x00002b52b6234cff in vwprintw () from /lib/libncursesw.so.5
     #4  0x00002b52b6234db9 in mvwprintw () from /lib/libncursesw.so.5
     #5  0x00000000004151d8 in fill_window (win=0x21b64c0,
         text=0x21b62b0 "CONFIG_KERNEL_BZIP2:\n\nIts compression ratio and
         speed is intermediate.\nDecompression speed is slowest among the
         three.  The kernel\nsize is about 10% smaller with bzip2, in
         comparison to gzip.\nBzip2 us"...)
         at scripts/kconfig/nconf.gui.c:229
     #6  0x0000000000416335 in show_scroll_win (main_window=0x21a5630,
             title=0x157fa30 "Bzip2",
     	    text=0x21b62b0 "CONFIG_KERNEL_BZIP2:\n\nIts compression
     	    ratio and speed is intermediate.\nDecompression speed is
     	    slowest among the three.  The kernel\nsize is about 10%
     	    smaller with bzip2, in comparison to gzip.\nBzip2 us"...)
         at scripts/kconfig/nconf.gui.c:535
     #7  0x00000000004055b2 in show_help (menu=0x157f9d0)
             at scripts/kconfig/nconf.c:1257
     #8  0x0000000000405897 in conf_choice (menu=0x157f130)
     	    at scripts/kconfig/nconf.c:1321
     #9  0x0000000000405326 in conf (menu=0x157d130) at
     	    scripts/kconfig/nconf.c:1208
     #10 0x00000000004052e8 in conf (menu=0xb434a0) at
     	    scripts/kconfig/nconf.c:1203
     #11 0x0000000000406092 in main (ac=2, av=0x7fff96a93c38)
    
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Nir Tzachar <nir.tzachar@gmail.com>
    Signed-off-by: default avatarStephen Boyd <bebarino@gmail.com>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
    58f915a3
nconf.gui.c 13.5 KB