OSDN Git Service

getcwd: Fix memory-leak in error path
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Tue, 10 May 2011 18:19:46 +0000 (20:19 +0200)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Tue, 10 May 2011 18:19:46 +0000 (20:19 +0200)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/sysdeps/linux/common/getcwd.c

index 75d7a1c..8751001 100644 (file)
@@ -69,7 +69,7 @@ static char *search_dir(dev_t this_dev, ino_t this_ino, char *path_buf, int path
        slen++;
 
        dp = opendir(path_buf);
-       if (dp == 0) {
+       if (!dp) {
            goto oops;
        }
 
@@ -78,6 +78,7 @@ static char *search_dir(dev_t this_dev, ino_t this_ino, char *path_buf, int path
                if (slow_search || this_ino == d->d_ino) {
 # endif
                        if (slen + strlen(d->d_name) > path_size) {
+                           closedir(dp);
                            goto oops;
                        }
                        strcpy(ptr + 1, d->d_name);