Avoid recursing into . and .. when in -r mode

[originally from svn r332]
This commit is contained in:
Simon Tatham 1999-11-30 11:53:42 +00:00
Родитель d5123675aa
Коммит cc98ca9aea
1 изменённых файлов: 18 добавлений и 3 удалений

21
scp.c
Просмотреть файл

@ -277,10 +277,25 @@ static void source(char *src)
}
if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
if (recursive)
rsource(src);
else
if (recursive) {
/*
* Avoid . and .. directories.
*/
char *p;
p = strrchr(src, '/');
if (!p)
p = strrchr(src, '\\');
if (!p)
p = src;
else
p++;
if (!strcmp(p, ".") || !strcmp(p, ".."))
/* skip . and .. */;
else
rsource(src);
} else {
run_err("%s: not a regular file", src);
}
return;
}