- pathjoin(buf2, sizeof buf2,
- am_sender && file->dir.root ? file->dir.root : "",
- safe_fname(f_name(file)));
- clean_fname(buf2, 0);
- n = buf2;
- if (*n == '/') n++;
+ n = safe_fname(f_name(file));
+ if (am_sender && file->dir.root) {
+ pathjoin(buf2, sizeof buf2,
+ file->dir.root, n);
+ /* The buffer from safe_fname() has more
+ * room than MAXPATHLEN, so this is safe. */
+ if (fmt[1])
+ strcpy(n, buf2);
+ else
+ n = buf2;
+ }
+ clean_fname(n, 0);
+ if (*n == '/')
+ n++;