]> granicus.if.org Git - handbrake/commitdiff
dvdnav: fix crash when poorly masterd disc has no menus
authorjstebbins <jstebbins.hb@gmail.com>
Mon, 12 Oct 2009 00:54:49 +0000 (00:54 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Mon, 12 Oct 2009 00:54:49 +0000 (00:54 +0000)
Mac The Ripper, when in "Main Feature Extraction" mode, likes to create
an image with no menus, but leaves navigation commands in place that jump
to the non-existing menu.  libdvdnav doesn't like this much.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2877 b64f7644-9d1e-0410-96f1-a4d463321fa5

contrib/libdvdnav/A06-null-pgcit.patch [new file with mode: 0644]

diff --git a/contrib/libdvdnav/A06-null-pgcit.patch b/contrib/libdvdnav/A06-null-pgcit.patch
new file mode 100644 (file)
index 0000000..8456b64
--- /dev/null
@@ -0,0 +1,17 @@
+diff -Naur libdvdnav.orig/src/vm/vm.c libdvdnav/src/vm/vm.c
+--- libdvdnav.orig/src/vm/vm.c 2009-03-13 18:28:22.000000000 -0700
++++ libdvdnav/src/vm/vm.c      2009-10-11 17:49:17.813221643 -0700
+@@ -1866,6 +1866,13 @@
+   default:
+     abort();
+   }
++  // get_MENU_PGCIT fails if h->pgci_ut == NULL.
++  // this happens with badly mastered discs.  Mac The Ripper happens
++  // to create such discs when in "Main Feature Extraction" mode.
++  if(pgcit == NULL && vm->vtsi != NULL) {
++    (vm->state).domain = VTS_DOMAIN;
++    pgcit = vm->vtsi->vts_pgcit;
++  }
+   return pgcit;
+ }