diff --git a/src/ifo_read.c b/src/ifo_read.c index 1729bf0..3b2a414 100644 --- a/src/ifo_read.c +++ b/src/ifo_read.c @@ -369,7 +369,7 @@ ifoOpen_try_bup: ifofile->file = DVDOpenFile(dvd, title, DVD_READ_INFO_BACKUP_FILE); if (title) - snprintf(ifo_filename, 12, "VTS_%02d_0.BUP", title); + snprintf(ifo_filename, 13, "VTS_%02d_0.BUP", title); else strncpy(ifo_filename, "VIDEO_TS.BUP", 12); @@ -1254,7 +1254,6 @@ int ifoRead_VTS_PTT_SRPT(ifo_handle_t *ifofile) { CHECK_VALUE(vts_ptt_srpt->title[i].ptt[j].pgn < 100); /* ?? */ if (vts_ptt_srpt->title[i].ptt[j].pgcn == 0 || vts_ptt_srpt->title[i].ptt[j].pgcn >= 1000 || - vts_ptt_srpt->title[i].ptt[j].pgn == 0 || vts_ptt_srpt->title[i].ptt[j].pgn >= 100) { return 0; } @@ -1941,7 +1940,10 @@ static void ifoFree_PGCIT_internal(pgcit_t **pgcit) { for(i = 0; i < (*pgcit)->nr_of_pgci_srp; i++) { ifoFree_PGC(&(*pgcit)->pgci_srp[i].pgc); - free(&(*pgcit)->pgci_srp[i].pgc); + pgc_t ** pgc = &(*pgcit)->pgci_srp[i].pgc; + if (*pgc) { + free(pgc); + } } free((*pgcit)->pgci_srp); free(*pgcit); -- 1.8.1.2