static char **cliplist=NULL;
static int clipn=0;
static bool must_free_cliplist = False;
-static const char *cmd_ptr = NULL;
+extern const char *cmd_ptr;
extern bool lowercase;
extern uint16 cnum;
char *partpath, *ffname;
const char *p=fname;
char *basehack;
+ char *saveptr;
DEBUG(5, ( "Ensurepath called with: %s\n", fname));
*partpath = 0;
- /* fname copied to ffname so can strtok */
+ /* fname copied to ffname so can strtok_r */
safe_strcpy(ffname, fname, strlen(fname));
*basehack='\0';
}
- p=strtok(ffname, "\\");
+ p=strtok_r(ffname, "\\", &saveptr);
while (p) {
safe_strcat(partpath, p, strlen(fname) + 1);
}
safe_strcat(partpath, "\\", strlen(fname) + 1);
- p = strtok(NULL,"/\\");
+ p = strtok_r(NULL, "/\\", &saveptr);
}
SAFE_FREE(partpath);
}
safe_strcpy(finfo.name,rname, strlen(rname));
- if (!finfo1) {
- time_t atime, mtime;
- if (!cli_getattrE(cli, fnum, &finfo.mode, &finfo.size, NULL, &atime, &mtime)) {
- DEBUG(0, ("getattrE: %s\n", cli_errstr(cli)));
- goto cleanup;
- }
- finfo.atime_ts = convert_time_t_to_timespec(atime);
- finfo.mtime_ts = convert_time_t_to_timespec(mtime);
- finfo.ctime_ts = finfo.mtime_ts;
- }
DEBUG(3,("file %s attrib 0x%X\n",finfo.name,finfo.mode));
}
argl=toktocliplist(&argcl, NULL);
- if (!tar_parseargs(argcl, argl, buf, 0))
+ if (!tar_parseargs(argcl, argl, buf, 0)) {
+ SAFE_FREE(argl);
return 1;
+ }
ret = process_tar();
SAFE_FREE(argl);