diff options
author | aurel <aurel@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-07-22 22:52:13 +0000 |
---|---|---|
committer | aurel <aurel@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-07-22 22:52:13 +0000 |
commit | e190bcd2bbe99f9cf96ed70ccaf3b9c614a8e77f (patch) | |
tree | 51fd5b2ded8154ed8023d9457f09d90c2a16871d | |
parent | 2affcd2e6140ddcc99d9c933d8e6fe9e3f68ebb7 (diff) | |
download | mpv-e190bcd2bbe99f9cf96ed70ccaf3b9c614a8e77f.tar.bz2 mpv-e190bcd2bbe99f9cf96ed70ccaf3b9c614a8e77f.tar.xz |
add some closedir() to fix some opendir() leaks
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16062 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmenu/menu_filesel.c | 2 | ||||
-rw-r--r-- | osdep/scandir.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libmenu/menu_filesel.c b/libmenu/menu_filesel.c index 4dd2d69e8b..9930188c42 100644 --- a/libmenu/menu_filesel.c +++ b/libmenu/menu_filesel.c @@ -177,6 +177,8 @@ static int open_dir(menu_t* menu,char* args) { } bailout: + closedir(dirp); + qsort(namelist, n, sizeof(char *), (kill_warn)compare); if (n < 0) { diff --git a/osdep/scandir.c b/osdep/scandir.c index 868dd7cb57..46bb6b117a 100644 --- a/osdep/scandir.c +++ b/osdep/scandir.c @@ -87,7 +87,7 @@ scandir(const char *dirname, /* duplicate struct direct for this entry */ len = offsetof(struct dirent, d_name) + strlen(ent->d_name) + 1; if ((ent2 = malloc(len)) == NULL) - return -1; + goto error; if (used >= allocated) { allocated *= 2; @@ -109,6 +109,8 @@ scandir(const char *dirname, error: + closedir(dir); + if (namelist) { for (i = 0; i < used; i++) free(namelist[i]); |