Input string `foo:` can crash the parser with a SIGSEGV. The crash is into `member_to_object` function. > (gdb) run foo: Starting program: /dev/shm/jo/jo foo: Program received signal SIGSEGV, Segmentation fault. 0x0000000000404200 in member_to_object (object=<optimized out>, flags=0, kv=0x7fffffffe87e "foo:") at jo.c:335 335 *q = 0; (gdb) (gdb) print /x q $6 = 0x0 `q` variable is initialized at jo.c:294 but could be null.