lsdvd crashed with SIGSEGV in __libc_start_main()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lsdvd (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: lsdvd
System is AMD64
Karmic with latest updates as of this morning
lsdvd /dev/sr0, then crash
ProblemType: Crash
Architecture: amd64
Date: Thu Sep 3 07:48:16 2009
Dependencies:
findutils 4.4.2-1
gcc-4.4-base 4.4.1-3ubuntu3
libc6 2.10.1-0ubuntu8
libdvdread4 4.1.3-5ubuntu1
libgcc1 1:4.4.1-3ubuntu3
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/lsdvd
NonfreeKernelMo
Package: lsdvd 0.16-3ubuntu1
ProcCmdline: lsdvd /dev/dvd5
ProcEnviron:
SHELL=/bin/bash
PATH=(custom, user)
LANG=en_US.UTF-8
ProcVersionSign
SegvAnalysis:
Segfault happened at: 0x400eb0 <fwrite@plt+264>: movzbl 0x3(%rdi),%r8d
PC (0x00400eb0) ok
source "0x3(%rdi)" (0x00000028) not located in a known VMA region (needed readable region)!
destination "%r8d" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: lsdvd
StacktraceTop:
?? ()
?? ()
__libc_start_main () from /lib/libc.so.6
?? ()
?? ()
Title: lsdvd crashed with SIGSEGV in __libc_start_main()
Uname: Linux 2.6.31-9-generic x86_64
UserGroups: adm admin audio cdrom dialout dip fax floppy fuse lpadmin netdev plugdev pulse pulse-access sambashare src tape vboxusers video voice
Is this a disk that has worked before? I'm completely guessing as I don't have lsdvd on any Ubuntu systems, but on other systems I've seen crashes with interesting discs. I'd done a hacky patch to it to make it slightly more robust:
commit aadfb3181c94b6e 1ee1708fd256df5 654e5533a4
Author: Alex Bennee <email address hidden>
Date: Thu Aug 21 11:59:02 2008 +0100
Make the main loop more robust to NULL ifos (which may be a libdvd bug or a side effect of ARccOS disks)
diff --git a/lsdvd.c b/lsdvd.c
dvd_reader_ t *dvd;
index 1c4771f..d7f60c8 100644
--- a/lsdvd.c
+++ b/lsdvd.c
@@ -225,7 +225,7 @@ int main(int argc, char *argv[])
{
char title[33];
- ifo_handle_t *ifo_zero, **ifo;
+ ifo_handle_t *ifo_zero, **ifo, *current_ifo;
pgcit_t *vts_pgcit;
vtsi_mat_t *vtsi_mat;
vmgi_mat_t *vmgi_mat;
@@ -322,10 +322,19 @@ int main(int argc, char *argv[])
for (j=0; j < titles; j++)
{
- if ( opt_t == j+1 || opt_t == 0 ) { zero->tt_ srpt->title[ j].title_ set_nr] ->vtsi_ mat) { zero->tt_ srpt->title[ j].title_ set_nr] ; stderr, "title %d, title_set_nr=%d => ifo %p\n", >tt_srpt- >title[ j].title_ set_nr, ifo->vtsi_ mat) zero->tt_ srpt->title[ j].title_ set_nr] ->vtsi_ mat) {
-
- // GENERAL
- if (ifo[ifo_
+ if ( opt_t == j+1 || opt_t == 0 )
+ {
+
+ // GENERAL
+ current_ifo = ifo[ifo_
+ fprintf(
+ j,
+ ifo_zero-
+ current_ifo);
+
+ if (current_ifo && current_
+ {
+// if (ifo[ifo_