diff options
author | Michael Roitzsch <mroi@users.sourceforge.net> | 2004-12-20 19:27:19 +0000 |
---|---|---|
committer | Michael Roitzsch <mroi@users.sourceforge.net> | 2004-12-20 19:27:19 +0000 |
commit | 28b6453c0fb182c86655b96fe182a7e826ab7879 (patch) | |
tree | 6b07af1ed3d9e25c3846771513348db2d263fbff /src/input/libdvdnav/ifo_read.c | |
parent | b5474f871d5df7eab292f5c7eb87abef30b9319a (diff) | |
download | xine-lib-28b6453c0fb182c86655b96fe182a7e826ab7879.tar.gz xine-lib-28b6453c0fb182c86655b96fe182a7e826ab7879.tar.bz2 |
updated libdvdnav from CVS to improve handling of error conditions
CVS patchset: 7285
CVS date: 2004/12/20 19:27:19
Diffstat (limited to 'src/input/libdvdnav/ifo_read.c')
-rw-r--r-- | src/input/libdvdnav/ifo_read.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/input/libdvdnav/ifo_read.c b/src/input/libdvdnav/ifo_read.c index 4cb6cf929..afc86b196 100644 --- a/src/input/libdvdnav/ifo_read.c +++ b/src/input/libdvdnav/ifo_read.c @@ -683,7 +683,7 @@ static int ifoRead_PGC(ifo_handle_t *ifofile, pgc_t *pgc, unsigned int offset) { pgc->command_tbl = NULL; } - if(pgc->program_map_offset != 0) { + if(pgc->program_map_offset != 0 && pgc->nr_of_programs>0) { pgc->program_map = malloc(pgc->nr_of_programs * sizeof(pgc_program_map_t)); if(!pgc->program_map) { ifoFree_PGC_COMMAND_TBL(pgc->command_tbl); @@ -699,7 +699,7 @@ static int ifoRead_PGC(ifo_handle_t *ifofile, pgc_t *pgc, unsigned int offset) { pgc->program_map = NULL; } - if(pgc->cell_playback_offset != 0) { + if(pgc->cell_playback_offset != 0 && pgc->nr_of_cells>0) { pgc->cell_playback = malloc(pgc->nr_of_cells * sizeof(cell_playback_t)); if(!pgc->cell_playback) { ifoFree_PGC_COMMAND_TBL(pgc->command_tbl); @@ -720,7 +720,7 @@ static int ifoRead_PGC(ifo_handle_t *ifofile, pgc_t *pgc, unsigned int offset) { pgc->cell_playback = NULL; } - if(pgc->cell_position_offset != 0) { + if(pgc->cell_position_offset != 0 && pgc->nr_of_cells>0) { pgc->cell_position = malloc(pgc->nr_of_cells * sizeof(cell_position_t)); if(!pgc->cell_position) { ifoFree_PGC(pgc); |