summaryrefslogtreecommitdiffstats
path: root/contrib/libdvdread/A01-check-nr_of_lus.patch
blob: d49fb94997f751b58a545f0e2c6cc4f5da85e344 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff -Naur libdvdread.orig/src/ifo_read.c libdvdread/src/ifo_read.c
--- libdvdread.orig/src/ifo_read.c	2009-01-08 14:57:10.000000000 -0800
+++ libdvdread/src/ifo_read.c	2009-06-27 13:22:27.940241400 -0700
@@ -1914,6 +1914,13 @@
   CHECK_VALUE(pgci_ut->nr_of_lus < 100); /* ?? 3-4 ? */
   CHECK_VALUE((uint32_t)pgci_ut->nr_of_lus * PGCI_LU_SIZE < pgci_ut->last_byte);
 
+  if (pgci_ut->nr_of_lus == 0 || pgci_ut->nr_of_lus >= 100)
+  {
+    free(pgci_ut);
+    ifofile->pgci_ut = 0;
+    return 0;
+  }
+
   info_length = pgci_ut->nr_of_lus * PGCI_LU_SIZE;
   data = malloc(info_length);
   if(!data) {