Not a big deal, but chdir, getcwd and fchdir all return values that could be checked.
Signed-off-by: Erik Hovland <[email protected]> --- src/dvd_reader.c | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/dvd_reader.c b/src/dvd_reader.c index 65900f7..66289e7 100644 --- a/src/dvd_reader.c +++ b/src/dvd_reader.c @@ -421,14 +421,29 @@ dvd_reader_t *DVDOpen( const char *ppath ) int cdir = open( ".", O_RDONLY ); if( cdir >= 0 ) { - chdir( path_copy ); + if ( chdir( path_copy ) == -1 ) { + close( cdir ); + return NULL; + } new_path = malloc(PATH_MAX+1); if(!new_path) { free(path); return NULL; } - getcwd(new_path, PATH_MAX ); - fchdir( cdir ); + if ( getcwd( new_path, PATH_MAX ) == NULL ) { + free( path ); + close( cdir ); + free( path_copy ); + free( new_path ); + return NULL; + } + if ( fchdir( cdir ) == -1 ) { + free( path ); + close( cdir ); + free( path_copy ); + free( new_path ); + return NULL; + } close( cdir ); free( path_copy ); path_copy = new_path; _______________________________________________ DVDnav-discuss mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/dvdnav-discuss
