Comment 2 for bug 423776

Revision history for this message
Alex Bennée (ajbennee) wrote :

Is this a disk that has worked before? I'm completely guessing as I don't have lsdvd on any Ubuntu systems, but on other systems I've seen crashes with interesting discs. I'd done a hacky patch to it to make it slightly more robust:

commit aadfb3181c94b6e1ee1708fd256df5654e5533a4
Author: Alex Bennee <email address hidden>
Date: Thu Aug 21 11:59:02 2008 +0100

    Make the main loop more robust to NULL ifos (which may be a libdvd bug or a side effect of ARccOS disks)

diff --git a/lsdvd.c b/lsdvd.c
index 1c4771f..d7f60c8 100644
--- a/lsdvd.c
+++ b/lsdvd.c
@@ -225,7 +225,7 @@ int main(int argc, char *argv[])
 {
        char title[33];
        dvd_reader_t *dvd;
- ifo_handle_t *ifo_zero, **ifo;
+ ifo_handle_t *ifo_zero, **ifo, *current_ifo;
        pgcit_t *vts_pgcit;
        vtsi_mat_t *vtsi_mat;
        vmgi_mat_t *vmgi_mat;
@@ -322,10 +322,19 @@ int main(int argc, char *argv[])
        for (j=0; j < titles; j++)
        {

- if ( opt_t == j+1 || opt_t == 0 ) {
-
- // GENERAL
- if (ifo[ifo_zero->tt_srpt->title[j].title_set_nr]->vtsi_mat) {
+ if ( opt_t == j+1 || opt_t == 0 )
+ {
+
+ // GENERAL
+ current_ifo = ifo[ifo_zero->tt_srpt->title[j].title_set_nr];
+ fprintf(stderr,"title %d, title_set_nr=%d => ifo %p\n",
+ j,
+ ifo_zero->tt_srpt->title[j].title_set_nr,
+ current_ifo);
+
+ if (current_ifo && current_ifo->vtsi_mat)
+ {
+// if (ifo[ifo_zero->tt_srpt->title[j].title_set_nr]->vtsi_mat) {

                dvd_info.titles[j].enabled = 1;