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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to