On Wed, Dec 20, 2023 at 05:00:03PM +0100, Matthias Reichl wrote: > Since commit ae1492611432 ("keytable: remove line length limits") > ir-keytable crashes when reading keymaps in legacy (non-toml) format > and valgrind reports an UMR: > > valgrind ir-keytable -w /etc/rc_keymaps/hiastest > ... > ==83788== Conditional jump or move depends on uninitialised value(s) > ==83788== at 0x48E8B8C: getdelim (iogetdelim.c:59) > ==83788== by 0x1105C6: getline (stdio.h:120) > ==83788== by 0x1105C6: parse_plain_keymap (keymap.c:98) > ==83788== by 0x1105C6: parse_keymap (keymap.c:533) > ==83788== by 0x112798: parse_opt (keytable.c:569) > ==83788== by 0x4986E50: group_parse (argp-parse.c:257) > ==83788== by 0x4986E50: parser_parse_opt (argp-parse.c:747) > ==83788== by 0x4986E50: parser_parse_next (argp-parse.c:867) > ==83788== by 0x4986E50: argp_parse (argp-parse.c:921) > ==83788== by 0x10E470: main (keytable.c:2071) > > Fix this by properly initializing line to NULL so getline will allocate > a buffer instead of using some random memory locations. Nice catch, applied. Thanks Sean > > Signed-off-by: Matthias Reichl <hias@xxxxxxxxx> > --- > utils/common/keymap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/utils/common/keymap.c b/utils/common/keymap.c > index 04c5ef54723c..21c1c0b5d581 100644 > --- a/utils/common/keymap.c > +++ b/utils/common/keymap.c > @@ -75,7 +75,7 @@ static error_t parse_plain_keymap(char *fname, struct keymap **keymap, bool verb > { > FILE *fin; > int line_no = 0; > - char *scancode, *keycode, *line; > + char *scancode, *keycode, *line = NULL; > size_t line_size; > struct scancode_entry *se; > struct keymap *map; > -- > 2.39.2 >