blob: 877fd2343350be54cc27888d3ac4098bd9874430 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
$NetBSD: patch-ae,v 1.1 2005/05/25 17:07:53 drochner Exp $
--- dvdread/ifo_read.c.orig 2003-01-17 21:49:16.000000000 +0100
+++ dvdread/ifo_read.c
@@ -257,6 +257,7 @@ void ifoClose(ifo_handle_t *ifofile) {
ifoFree_FP_PGC(ifofile);
ifoFree_PGCIT(ifofile);
ifoFree_VTS_PTT_SRPT(ifofile);
+ ifoFree_VTS_TMAPT(ifofile);
if(ifofile->vmgi_mat)
free(ifofile->vmgi_mat);
@@ -1624,8 +1625,8 @@ static int ifoRead_PGCIT_internal(ifo_ha
}
ptr = data;
for(i = 0; i < pgcit->nr_of_pgci_srp; i++) {
- memcpy(&pgcit->pgci_srp[i], ptr, PGCI_LU_SIZE);
- ptr += PGCI_LU_SIZE;
+ memcpy(&pgcit->pgci_srp[i], ptr, PGCI_SRP_SIZE);
+ ptr += PGCI_SRP_SIZE;
B2N_16(pgcit->pgci_srp[i].ptl_id_mask);
B2N_32(pgcit->pgci_srp[i].pgc_start_byte);
CHECK_VALUE(pgcit->pgci_srp[i].unknown1 == 0);
@@ -1663,8 +1664,10 @@ static int ifoRead_PGCIT_internal(ifo_ha
static void ifoFree_PGCIT_internal(pgcit_t *pgcit) {
if(pgcit) {
int i;
- for(i = 0; i < pgcit->nr_of_pgci_srp; i++)
+ for(i = 0; i < pgcit->nr_of_pgci_srp; i++) {
ifoFree_PGC(pgcit->pgci_srp[i].pgc);
+ free(pgcit->pgci_srp[i].pgc);
+ }
free(pgcit->pgci_srp);
}
}
|