}
sprintf(fnametmp,"%s/.%s.XXXXXX",tmpdir,f);
} else {
+ char *f = strrchr(fname,'/');
+
if (strlen(fname)+9 > MAXPATHLEN) {
rprintf(FERROR,"filename too long\n");
if (buf) unmap_file(buf);
continue;
}
- sprintf(fnametmp,".%s.XXXXXX",fname);
+ if (f) {
+ *f = 0;
+ sprintf(fnametmp,"%s/.%s.XXXXXX",fname,f+1);
+ *f = '/';
+ } else {
+ sprintf(fnametmp,".%s.XXXXXX",fname);
+ }
}
if (NULL == do_mktemp(fnametmp)) {
rprintf(FERROR,"mktemp %s failed\n",fnametmp);