fix
authorMiklos Szeredi <miklos@szeredi.hu>
Sat, 10 Dec 2005 20:47:46 +0000 (20:47 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Sat, 10 Dec 2005 20:47:46 +0000 (20:47 +0000)
lib/fuse_opt.c
lib/helper.c

index 77675633073d3c9e0a5af44af33e83263a92825b..535cd389b219e18f3a14d3601543c6d20e0772d7 100644 (file)
@@ -28,9 +28,8 @@ struct fuse_opt_context {
 
 void fuse_opt_free_args(char *args[])
 {
-    int i;
-
     if (args) {
+        int i;
         for (i = 0; args[i]; i++)
             free(args[i]);
         free(args);
@@ -319,6 +318,9 @@ static int opt_parse(struct fuse_opt_context *ctx)
             insert_arg(ctx, 2, ctx->opts) == -1)
             return -1;
     }
+    if (strcmp(ctx->argv[ctx->argc - 1], "--") == 0)
+        ctx->argv[--ctx->argc] = NULL;
+        
     return 0;
 }
 
index 1f99c2ff59487074aa45b035cf703f2e756f5487..bb02a3a25ee603363084e993d6875a22d5f73383 100644 (file)
@@ -226,7 +226,10 @@ static int fuse_parse_cmdline(int argc, const char *argv[],
             return -1;
         }
         sprintf(fsname_opt, "fsname=%s", basename);
-        fuse_opt_add_opt(&hopts->kernel_opts, fsname_opt);
+        res = fuse_opt_add_opt(&hopts->kernel_opts, fsname_opt);
+        free(fsname_opt);
+        if (res == -1)
+            return -1;
     }
     return 0;
 }