diff options
-rw-r--r-- | runit/chpst.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/runit/chpst.c b/runit/chpst.c index 270ec0aeb..082d72682 100644 --- a/runit/chpst.c +++ b/runit/chpst.c | |||
@@ -92,6 +92,7 @@ enum { | |||
92 | OPT_2 = (1 << 20) * ENABLE_CHPST, | 92 | OPT_2 = (1 << 20) * ENABLE_CHPST, |
93 | }; | 93 | }; |
94 | 94 | ||
95 | /* TODO: use recursive_action? */ | ||
95 | static NOINLINE void edir(const char *directory_name) | 96 | static NOINLINE void edir(const char *directory_name) |
96 | { | 97 | { |
97 | int wdir; | 98 | int wdir; |
@@ -101,11 +102,9 @@ static NOINLINE void edir(const char *directory_name) | |||
101 | 102 | ||
102 | wdir = xopen(".", O_RDONLY | O_NDELAY); | 103 | wdir = xopen(".", O_RDONLY | O_NDELAY); |
103 | xchdir(directory_name); | 104 | xchdir(directory_name); |
104 | dir = opendir("."); | 105 | dir = xopendir("."); |
105 | if (!dir) | ||
106 | bb_perror_msg_and_die("opendir %s", directory_name); | ||
107 | for (;;) { | 106 | for (;;) { |
108 | char buf[256]; | 107 | RESERVE_CONFIG_BUFFER(buf, 256); |
109 | char *tail; | 108 | char *tail; |
110 | int size; | 109 | int size; |
111 | 110 | ||
@@ -149,6 +148,7 @@ static NOINLINE void edir(const char *directory_name) | |||
149 | break; | 148 | break; |
150 | } | 149 | } |
151 | xsetenv(d->d_name, buf); | 150 | xsetenv(d->d_name, buf); |
151 | RELEASE_CONFIG_BUFFER(buf); | ||
152 | } | 152 | } |
153 | closedir(dir); | 153 | closedir(dir); |
154 | if (fchdir(wdir) == -1) | 154 | if (fchdir(wdir) == -1) |