diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-04-16 16:59:01 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-04-16 16:59:01 +0100 |
commit | 345c35a6361f9fb30cb4a2f613ec3ff392a0d8be (patch) | |
tree | d70d745b63738f1681495595d28e363a28c6118a | |
parent | 4f937f540734e6f5977b9c279f8f24035a259310 (diff) | |
download | userv-utils-345c35a6361f9fb30cb4a2f613ec3ff392a0d8be.tar.gz |
ipif: eat_optionalstr: do not crash on end of argument list
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r-- | ipif/service.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ipif/service.c b/ipif/service.c index b401a5c..7821a46 100644 --- a/ipif/service.c +++ b/ipif/service.c @@ -329,13 +329,17 @@ static char *eat_optionalstr(const char **argp, const char *def) { ptrdiff_t len; const char *start= *argp; - const char *comma= strchr(start, ','); - if (comma) { - len= comma - start; - *argp= comma + 1; + if (!start) { + len = 0; } else { - len= strlen(start); - *argp= start + len; + const char *comma= strchr(start, ','); + if (comma) { + len= comma - start; + *argp= comma + 1; + } else { + len= strlen(start); + *argp= start + len; + } } if (!len) { start= def; |