mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
prevent find from ever descending into an xdev'ed directory.
This commit is contained in:
parent
3570915769
commit
8416a2d558
@ -79,6 +79,15 @@ static int exec_opt;
|
|||||||
|
|
||||||
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
|
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_FEATURE_FIND_XDEV
|
||||||
|
if (S_ISDIR(statbuf->st_mode) && xdev_count) {
|
||||||
|
int i;
|
||||||
|
for (i=0; i<xdev_count; i++) {
|
||||||
|
if (xdev_dev[i] != statbuf->st_dev)
|
||||||
|
return SKIP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (pattern != NULL) {
|
if (pattern != NULL) {
|
||||||
const char *tmp = strrchr(fileName, '/');
|
const char *tmp = strrchr(fileName, '/');
|
||||||
|
|
||||||
@ -125,21 +134,6 @@ static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
|
|||||||
goto no_match;
|
goto no_match;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_FEATURE_FIND_XDEV
|
|
||||||
if (xdev_count) {
|
|
||||||
int i;
|
|
||||||
for (i=0; i<xdev_count; i++) {
|
|
||||||
if (xdev_dev[i] == statbuf-> st_dev)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i == xdev_count) {
|
|
||||||
if(S_ISDIR(statbuf->st_mode))
|
|
||||||
return SKIP;
|
|
||||||
else
|
|
||||||
goto no_match;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_FEATURE_FIND_NEWER
|
#ifdef CONFIG_FEATURE_FIND_NEWER
|
||||||
if (newer_mtime != 0) {
|
if (newer_mtime != 0) {
|
||||||
time_t file_age = newer_mtime - statbuf->st_mtime;
|
time_t file_age = newer_mtime - statbuf->st_mtime;
|
||||||
|
Loading…
Reference in New Issue
Block a user