Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2000-12-19 09:24:08 +0300
committerMatt Kraai <kraai@debian.org>2000-12-19 09:24:08 +0300
commita1f977598138ebf8f5f1672daa936255cf3affc1 (patch)
treea655709eabc453ddd518c8d0090c3b7cd2ef8219 /utility.c
parent24ac0179617e43ab517141fe5497f4ebac108678 (diff)
Fix tar handling of absolute paths and excluded directories.
Diffstat (limited to 'utility.c')
-rw-r--r--utility.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/utility.c b/utility.c
index 34341c8d3..b06abf464 100644
--- a/utility.c
+++ b/utility.c
@@ -663,17 +663,18 @@ int recursive_action(const char *fileName,
if (S_ISDIR(statbuf.st_mode)) {
DIR *dir;
- dir = opendir(fileName);
- if (!dir) {
- perror_msg("%s", fileName);
- return FALSE;
- }
if (dirAction != NULL && depthFirst == FALSE) {
status = dirAction(fileName, &statbuf, userData);
if (status == FALSE) {
perror_msg("%s", fileName);
return FALSE;
- }
+ } else if (status == SKIP)
+ return TRUE;
+ }
+ dir = opendir(fileName);
+ if (!dir) {
+ perror_msg("%s", fileName);
+ return FALSE;
}
while ((next = readdir(dir)) != NULL) {
char nextFile[BUFSIZ + 1];