eal: fix memory leak in hugepage error cases
authorZhangkun <zhangk.zhangkun@huawei.com>
Tue, 19 Aug 2014 03:51:11 +0000 (11:51 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 29 Aug 2014 10:38:29 +0000 (12:38 +0200)
The sysfs directory for hugepages parsing was not closed properly in some
error cases.

Signed-off-by: Zhangkun <zhangk.zhangkun@huawei.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
lib/librte_eal/linuxapp/eal/eal_hugepage_info.c

index b72a205..73d1cdb 100644 (file)
@@ -311,11 +311,14 @@ eal_hugepage_info_init(void)
                                /* if blocking lock failed */
                                if (flock(hpi->lock_descriptor, LOCK_EX) == -1) {
                                        RTE_LOG(CRIT, EAL, "Failed to lock hugepage directory!\n");
+                                       closedir(dir);
                                        return -1;
                                }
                                /* clear out the hugepages dir from unused pages */
-                               if (clear_hugedir(hpi->hugedir) == -1)
+                               if (clear_hugedir(hpi->hugedir) == -1) {
+                                       closedir(dir);
                                        return -1;
+                               }
 
                                /* for now, put all pages into socket 0,
                                 * later they will be sorted */