summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-04-16 16:59:01 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-04-16 16:59:01 +0100
commit345c35a6361f9fb30cb4a2f613ec3ff392a0d8be (patch)
treed70d745b63738f1681495595d28e363a28c6118a
parent4f937f540734e6f5977b9c279f8f24035a259310 (diff)
downloaduserv-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.c16
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;