static uint32 rdev_major;
static uid_t uid;
static gid_t gid;
- static char *user_name, *group_name;
+ static const char *user_name, *group_name;
static char lastname[MAXPATHLEN];
char fname[MAXPATHLEN];
int first_hlink_ndx = -1;
/* Initialize starting value of xflags. */
if (protocol_version >= 30 && S_ISDIR(file->mode)) {
+ dir_count++;
if (file->flags & FLAG_CONTENT_DIR)
xflags = file->flags & FLAG_TOP_DIR;
else if (file->flags & FLAG_IMPLIED_DIR)
file->mode = save_mode;
}
- if (basename_len == 0+1)
+ if (basename_len == 0+1) {
+ if (!pool)
+ unmake_file(file);
return NULL;
+ }
if (unsort_ndx)
F_NDX(file) = dir_count;
flist_expand(flist, 1);
flist->files[flist->used++] = file;
if (f >= 0) {
- if (S_ISDIR(file->mode))
- dir_count++;
send_file_entry(f, file, flist->used - 1, flist->ndx_start);
#ifdef SUPPORT_ACLS
if (preserve_acls && !S_ISLNK(file->mode)) {
file = send_file_name(f, flist, fbuf, &st,
top_flags, ALL_FILTERS);
if (inc_recurse) {
- if (name_type == DOT_NAME) {
+ if (name_type == DOT_NAME && file) {
if (send_dir_depth < 0) {
send_dir_depth = 0;
change_local_filter_dir(fbuf, len, send_dir_depth);