diff options
Diffstat (limited to 'source3/client/clitar.c')
-rw-r--r-- | source3/client/clitar.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source3/client/clitar.c b/source3/client/clitar.c index ad66b9916e..1118ba6073 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -490,9 +490,10 @@ int tar_parse_args(struct tar* t, const char *flag, const char **val, int valsize) { TALLOC_CTX *ctx; - bool list = false; + bool do_read_list = false; /* index of next value to use */ int ival = 0; + int rc; if (t == NULL) { DBG(0, ("Invalid tar context\n")); @@ -510,8 +511,8 @@ int tar_parse_args(struct tar* t, const char *flag, t->to_process = false; t->total_size = 0; - while (*flag) { - switch(*flag++) { + while (flag[0] != '\0') { + switch(flag[0]) { /* operation */ case 'c': if (t->mode.operation != TAR_NO_OPERATION) { @@ -549,7 +550,7 @@ int tar_parse_args(struct tar* t, const char *flag, return 1; } t->mode.selection = TAR_INCLUDE; - list = true; + do_read_list = true; break; /* blocksize */ @@ -617,6 +618,8 @@ int tar_parse_args(struct tar* t, const char *flag, DBG(0,("Unknown tar option\n")); return 1; } + + flag++; } /* no selection given? default selection is include */ @@ -644,13 +647,14 @@ int tar_parse_args(struct tar* t, const char *flag, /* handle PATHs... */ /* flag F -> read file list */ - if (list) { + if (do_read_list) { if (valsize - ival != 1) { DBG(0,("Option F must be followed by exactly one filename.\n")); return 1; } - if (tar_read_inclusion_file(t, val[ival])) { + rc = tar_read_inclusion_file(t, val[ival]); + if (rc != 0) { return 1; } ival++; |