[git commit master 1/1] plug a DIR* leak on error path

Denys Vlasenko vda.linux at googlemail.com
Tue Dec 28 09:25:03 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=2272129a93d9492a42ef43987f829940d26dc862
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/find_root_device.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c
index 32c86ce..8436cd6 100644
--- a/libbb/find_root_device.c
+++ b/libbb/find_root_device.c
@@ -29,14 +29,15 @@ static char *find_block_device_in_dir(struct arena *ap)
 	char *retpath = NULL;
 	int len, rem;
 
-	dir = opendir(ap->devpath);
-	if (!dir)
-		return NULL;
-
 	len = strlen(ap->devpath);
 	rem = DEVNAME_MAX-2 - len;
 	if (rem <= 0)
 		return NULL;
+
+	dir = opendir(ap->devpath);
+	if (!dir)
+		return NULL;
+
 	ap->devpath[len++] = '/';
 
 	while ((entry = readdir(dir)) != NULL) {
-- 
1.7.2.2



More information about the busybox-cvs mailing list