Package: libdvdread4
Version: 4.2.0+20120521-2
Severity: normal
Dear Maintainer,
While investigating crashes in another application I noticed they were
caused by libdvdread. Investigating deeper with printfs I would see:
| A path: 0x7fffc8023f90 path_copy: 0x7fffc800b350
| B path: 0x7fffc8023f90 path_copy: 0x7fffc800b350 errno: 2
| C path: 0x7fffc8023f90 path_copy: 0x7fffc800b350 new_path: 0xffffffffc80a3f10
errno: 2
| D path: 0x7fffc8023f90 path_copy: 0x7fffc800b350 new_path: 0xffffffffc80a3f10
| E path: 0x7fffc8023f90 path_copy: 0x7fffc800b350 new_path: 0xffffffffc80a3f10
| F path: 0x7fffc8023f90 path_copy: 0xffffffffc80a3f10 new_path:
0xffffffffc80a3f10
| G path: 0x7fffc8023f90 path_copy: 0xffffffffc80a3f10 new_path: (nil)
|
| Program received signal SIGSEGV, Segmentation fault.
This was caused by the piece of code (src/dvd_reader.c line 435):
| #ifdef __GLIBC__
| new_path = get_current_dir_name();
| if(new_path == NULL) {
| goto DVDOpen_error;
| }
Turns out that we don't have a prototype for get_current_dir_name as unistd.h
has:
| #ifdef __USE_GNU
| /* Return a malloc'd string containing the current directory name.
| If the environment variable `PWD' is set, and its value is correct,
| that value is used. */
| extern char *get_current_dir_name (void) __THROW;
| #endif
In fact compiling we see:
| dvd_reader.c: In function 'DVDOpen':
| dvd_reader.c:437:9: warning: implicit declaration of function
'get_current_dir_name' [-Wimplicit-function-declaration]
| dvd_reader.c:437:18: warning: assignment makes pointer from integer without a
cast [enabled by default]
So changing the start of src/dvd_reader.c to read:
| #define _GNU_SOURCE
+ #define __USE_GNU
| #include <unistd.h>
Fixes the compilation warning and the error.
Best regards, Peter
-- Package-specific info:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version
Architecture Description
+++-======================================-========================-========================-=================================================================================
ii libdvdcss2:amd64 1.2.12-dmo1 amd64
Simple foundation for reading DVDs - runtime libraries
ii libdvdnav4 4.2.0+20120524-2 amd64
DVD navigation library
ii libdvdread4 4.2.0+20120521-2 amd64
library for reading DVDs
-- System Information:
Debian Release: wheezy/sid
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'unstable'), (500, 'testing'),
(500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.5.4 (SMP w/4 CPU cores)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libdvdread4 depends on:
ii libc6 2.13-35
ii multiarch-support 2.13-35
Versions of packages libdvdread4 recommends:
ii libdvdnav4 4.2.0+20120524-2
Versions of packages libdvdread4 suggests:
ii libdvdcss2 1.2.12-dmo1
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]