Just make sure arg is not NULL in lg_getarg() before accessing. It happens when input contains an invalid character.
Unrelated but while at it, abort earlier in lg_arg2argv() if there is no argument available. Index: bgplg.c =================================================================== RCS file: /cvs/src/usr.bin/bgplg/bgplg.c,v retrieving revision 1.19 diff -u -p -r1.19 bgplg.c --- bgplg.c 5 Mar 2018 10:53:37 -0000 1.19 +++ bgplg.c 25 Oct 2018 18:18:55 -0000 @@ -134,6 +134,9 @@ lg_getarg(const char *name, char *arg, i size_t namelen, ptrlen; int i; + if (arg == NULL) + return (NULL); + namelen = strlen(name); for (i = 0; i < len; i++) { @@ -171,6 +174,9 @@ lg_arg2argv(char *arg, int *argc) c++; } } + + if (arg[0] == '\0') + return (NULL); /* Generate array */ if ((argv = calloc(c + 1, sizeof(char *))) == NULL) {