During scanning of the DVD menus from the source file ifo_read.c, I noticed it does not clean up the ptl_mait reference AFTER it free's it. This causes crashes in handbrake as it is scanning the DVD. I found a reasonable fix to ifo_read.c to be (relevant diff -u for my change): @@ -1300,9 +1299,10 @@ if(!DVDFileSeek_(ifofile->file, ifofile->vmgi_mat->ptl_mait * DVD_BLOCK_LEN + ptl_mait->countries[i].pf_ptl_mai_start_byte)) { fprintf(stderr, "libdvdread: Unable to seek PTL_MAIT table.\n"); free(ptl_mait->countries); free(ptl_mait); + ifofile->ptl_mait = NULL; return 0; This allows other code to properly ignore the ptl_mait as being invalid. I checked this against the libdvdread-4.1.3 code and it appears to still not be fixed so I thought I would provide the "results" of my afternoon of bug hunting. Hope this help, As a curiosity, if this is used please drop me a line and let me know. Thanks, Mike
Hi Michael, On Sunday, 24 July 2011 at 19:46, Michael J. Smith wrote: [...]
This allows other code to properly ignore the ptl_mait as being invalid. I checked this against the libdvdread-4.1.3 code and it appears to still not be fixed so I thought I would provide the "results" of my afternoon of bug hunting.
Hope this help,
As a curiosity, if this is used please drop me a line and let me know.
I see this is already fixed in current SVN. It was committed as r1220 on January 31st by Erik. So, thanks for your effort, but I recommend trying latest SVN before submitting patches to avoid duplicate work. Regards, -- Fedora http://fedoraproject.org/wiki/User:Rathann RPMFusion http://rpmfusion.org | MPlayer http://mplayerhq.hu "Faith manages." -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"
participants (2)
-
Dominik 'Rathann' Mierzejewski -
Michael J. Smith