chpst: tiny shrinkage and add possible TODO
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mon, 26 Oct 2009 22:27:07 +0000 (23:27 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 27 Oct 2009 16:14:49 +0000 (17:14 +0100)
text    data     bss     dec     hex filename
1398       0       0    1398     576 runit/chpst.o.old
1385       0       0    1385     569 runit/chpst.o

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
runit/chpst.c

index 270ec0a..082d726 100644 (file)
@@ -92,6 +92,7 @@ enum {
        OPT_2 = (1 << 20) * ENABLE_CHPST,
 };
 
+/* TODO: use recursive_action? */
 static NOINLINE void edir(const char *directory_name)
 {
        int wdir;
@@ -101,11 +102,9 @@ static NOINLINE void edir(const char *directory_name)
 
        wdir = xopen(".", O_RDONLY | O_NDELAY);
        xchdir(directory_name);
-       dir = opendir(".");
-       if (!dir)
-               bb_perror_msg_and_die("opendir %s", directory_name);
+       dir = xopendir(".");
        for (;;) {
-               char buf[256];
+               RESERVE_CONFIG_BUFFER(buf, 256);
                char *tail;
                int size;
 
@@ -149,6 +148,7 @@ static NOINLINE void edir(const char *directory_name)
                                break;
                }
                xsetenv(d->d_name, buf);
+               RELEASE_CONFIG_BUFFER(buf);
        }
        closedir(dir);
        if (fchdir(wdir) == -1)