libdvdread bug

"Olivier Rolland" <[email protected]> Thu, 5 Oct 2006 21:56:11 +0200
Newsgroups gmane.comp.video.ogle.user
Message-ID <[email protected]>
Hi,

libdvdread 0.9.6 segfaults when a device is opened 2 (or more) times,
the second reader being closed before the first one (see example
below). This used to work perfectly with 0.9.4.

Cheers,

-- 
Olivier


#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include <dvdread/ifo_read.h>

int
main (int argc, char *argv[])
{
  dvd_reader_t *reader1, *reader2;

  if (argc < 2)
  {
    fprintf (stderr, "usage: argv[0] <device>\n");
    return EXIT_FAILURE;
  }

  printf ("Opening %s (reader1)...", argv[1]);
  reader1 = DVDOpen (argv[1]);
  if (!reader1)
  {
    printf ("ko\n");
    return EXIT_FAILURE;
  }
  printf ("ok\n");

  printf ("Reopening %s (reader2)...", argv[1]);
  reader2 = DVDOpen (argv[1]);
  if (!reader2)
  {
    printf ("ko\n");
    DVDClose (reader1);
    return EXIT_FAILURE;
  }
  printf ("ok\n");

  printf ("Closing %s (reader2)...", argv[1]);
  DVDClose (reader2);
  printf ("ok\n");

  printf ("Closing %s (reader1)...", argv[1]);
  DVDClose (reader1);
  printf ("ok\n");

  return EXIT_SUCCESS;
}