main: fix parsing of option alias
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 18 Feb 2016 10:29:36 +0000 (11:29 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 18 Feb 2016 10:29:36 +0000 (11:29 +0100)
Change-Id: Ib0eb70e94fabc61ef6ceb22bafa6006d759a7984
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/main.c

index 78d7f79..74e8745 100644 (file)
@@ -345,10 +345,14 @@ int main(int argc, char *argv[])  {
        if (optarg == 0) goto needValueForOption;
        if (aliascount < MAX_ALIAS) {
             aliasdir[aliascount].url  = strsep(&optarg,":");
-            aliasdir[aliascount].path = strsep(&optarg,":");
-            aliasdir[aliascount].len  = strlen(aliasdir[aliascount].url);
-            if (verbose) fprintf(stderr, "Alias url=%s path=%s\n", aliasdir[aliascount].url, aliasdir[aliascount].path);
-            aliascount++;
+            if (optarg == NULL) {
+              fprintf(stderr, "missing ':' in alias %s, ignored\n", aliasdir[aliascount].url);
+            } else {
+              aliasdir[aliascount].path = optarg;
+              aliasdir[aliascount].len  = strlen(aliasdir[aliascount].url);
+              if (verbose) fprintf(stderr, "Alias url=%s path=%s\n", aliasdir[aliascount].url, aliasdir[aliascount].path);
+              aliascount++;
+            }
        } else {
            fprintf(stderr, "Too many aliases [max:%s] %s ignored\n", optarg, MAX_ALIAS-1);
        }