[libdvdnav-devel] Free `cached_dir_base` to fix memory leak
Paul Menzel
git at videolan.org
Sun Dec 29 18:18:24 CET 2013
libdvdread | branch: master | Paul Menzel <paulepanter at users.sourceforge.net> | Mon Nov 18 23:43:16 2013 +0000| [4c2728ff2cdb73ffe7656135d546c1f8f4da87ff] | committer: Jean-Baptiste Kempf
Free `cached_dir_base` to fix memory leak
The static analyzer from LLVM/Clang 1:3.4~svn194079-1 reports a memory
leak in `libdvdread/src/dvd_udf.c`.
$ scan-build -o scan-build make
$ scan-view scan-build/2013-11-18-155601-16168-1
The memory is allocated in
if((cached_dir_base = malloc(dir_lba * DVD_VIDEO_LB_LEN + 2048)) == NULL)
and has to be freed before returning from the function.
Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
> http://git.videolan.org/gitweb.cgi/libdvdread.git/?a=commit;h=4c2728ff2cdb73ffe7656135d546c1f8f4da87ff
---
src/dvd_udf.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/dvd_udf.c b/src/dvd_udf.c
index b8b5be2..a418ce5 100644
--- a/src/dvd_udf.c
+++ b/src/dvd_udf.c
@@ -594,8 +594,10 @@ static int UDFScanDir( dvd_reader_t *device, struct AD Dir, char *FileName,
} else
in_cache = 1;
- if(cached_dir == NULL)
+ if(cached_dir == NULL) {
+ free(cached_dir_base);
return 0;
+ }
p = 0;
More information about the libdvdnav-devel
mailing list