Bug 2241061

Summary: regression reading uninitialized pointer in cdrdao 1.2.5 breaks whipper
Product: [Fedora] Fedora Reporter: Be <be.0>
Component: cdrdaoAssignee: Pavel Cahyna <pcahyna>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 38CC: awilliam, denis, hhorak, overact_ninetieth160, pcahyna, rosset.filipe
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://github.com/cdrdao/cdrdao/issues/22
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-16 21:39:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Be 2023-09-27 20:58:11 UTC
whipper is broken with cdrdao 1.2.5 due to a segfault in cdrdao when it tries to dereference an uninitialized pointer. A one line patch fixing the issue is awaiting review upstream: https://github.com/cdrdao/cdrdao/pull/21 In the meantime, shipping this patch should fix whipper.

Reproducible: Always

Steps to Reproduce:
Run `cdrdao read-toc --device /dev/sr0 --fast-toc cdrdao_fast.toc`
Actual Results:  
cdrdao segfaults:

/dev/sr0: HL-DT-ST DVDRAM GP60NB50      Rev: PA01                                                                                                                                            
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0000)

Reading toc data...

Track   Mode    Flags  Start                Length
------------------------------------------------------------
 1      AUDIO   0      00:00:00(     0)     05:12:04( 23404)
 2      AUDIO   0      05:12:04( 23404)     05:12:38( 23438)
 3      AUDIO   0      10:24:42( 46842)     03:28:03( 15603)
 4      AUDIO   0      13:52:45( 62445)     04:20:58( 19558)
 5      AUDIO   0      18:13:28( 82003)     03:40:49( 16549)
 6      AUDIO   0      21:54:02( 98552)     03:48:61( 17161)
 7      AUDIO   0      25:42:63(115713)     03:42:33( 16683)
 8      AUDIO   0      29:25:21(132396)     03:53:19( 17494)
 9      AUDIO   0      33:18:40(149890)     04:02:22( 18172)
10      AUDIO   0      37:20:62(168062)     03:22:40( 15190)
Leadout AUDIO   0      40:43:27(183252)

PQ sub-channel reading (audio track) is supported, data format is BCD.
Raw P-W sub-channel reading (audio track) is supported.
Cooked R-W sub-channel reading (audio track) is supported.

Program received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
Downloading source file /usr/src/debug/glibc-2.37-5.fc38.x86_64/string/../sysdeps/x86_64/multiarch/strlen-avx2.S
76              VPCMPEQ (%rdi), %ymm0, %ymm1                                                                                                                                                 
(gdb) bt
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
#1  0x00005555555847dd in strdupCC (s=0x1 <error: Cannot access memory at address 0x1>) at ../trackdb/util.cc:52
#2  CdrDriver::readDiskToc (this=0x555555613780, session=1, dataFilename=0x1 <error: Cannot access memory at address 0x1>)
    at /usr/src/debug/cdrdao-1.2.5-5.fc38.x86_64/dao/CdrDriver.cc:2200
#3  0x0000555555570b34 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/cdrdao-1.2.5-5.fc38.x86_64/dao/main.cc:2786

Expected Results:  
cdrdao and whipper run successfully

All whipper commands fail with confusing FileNotFoundError: https://github.com/whipper-team/whipper/issues/594

Comment 1 overact_ninetieth160 2023-11-09 04:12:24 UTC
CCing the contributor who committed the update to 1.25, maybe he can help? This would be very much appreciated, since upstream and package maintainers seem to be inactive and this bug breaks a major use case. I apologize in advance if this is inappropriate.

Comment 2 Adam Williamson 2023-11-16 21:39:21 UTC

*** This bug has been marked as a duplicate of bug 2238243 ***