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) {