[Flac-dev] Possible (bug) in winamp in_flac.dll decoder

engelbert777 at gmx.de
Wed, 10 Dec 2008 19:31:10 -0000

Hello,

I'm not sure if this is the right place to post my problem to, i'm not a
developer but a user experiencing
a possible bug in the flac decoder.


using winamp 2.81 + in_flac.dll (tryed different versions eg 1.12 and 1.21)
+ Electri Q Winamp DSP plugin (all versions affected)

Winamp crashes just before flac track ends (next track is also flac track)
does NOT crash when playing mp3 files and Electri Q activated (winamp 2.81)
does NOT crash when playing flac files and having Electri Q disabled
(winamp 2.81)
does NOT crash when using Winamp 5 (+ in_flac that comes with it) and
Electri Q enabled [don't want to use Winamp5, because too much ressource
consumption]

so it seems to be a problem between in_flac.dll and electriQ

searched through different forums and found out, that this might be a
problem with in_flac.dll being not strict enough about buffers.

Probably you can change in_flac.dll to beeing more strict about buffer
sizes. (Mediamonkey beta in_flac.dll seems to fix this problem but doesn't
work in winamp 2)
see here: http://www.mediamonkey.com/forum/viewtopic.php?f=7&t=10520

Error is always in Electriq by reading adress 00000000.


Thank you very much.

Crashlog appended

date/time : 2008-12-10, 18:07:45, 390ms
computer name : ***changed***
user name : ***changed*** <admin>
registered owner : ***changed***
operating system : Windows XP Service Pack 3 build 2600
system language : German
system up time : 1 hour 4 minutes
program up time : 21 seconds
processor : AMD Athlon(TM) XP
physical memory : 730/1024 MB (free/total)
free disk space : (C:) 4,96 GB
display mode : 1280x960, 32 bit
process id : $ac
allocated memory : 15,00 MB
executable : winamp.exe
current module : dsp_eqfree.dll
module date/time : 2008-11-20 04:57
compiled with : Delphi 2006/07
madExcept version : 3.0h
contact name : Achim
contact email : mailto:noreply at noreply.com
callstack crc : $f6815b40, $571323c5, $9c0cf444
exception number : 1
exception class : EAccessViolation
exception message : Zugriffsverletzung bei Adresse 01C3A368 in Modul
'dsp_eqfree.dll'. Lesen von Adresse 00000000.

thread $554:
01c3a368 +034 dsp_eqfree.dll ElectriQModule 756 +25
TElectriQVST.VST2ModuleProcessDigitalEconomy
01b65351 +029 dsp_eqfree.dll DAV_VSTCustomModule 343 +2
TCustomVSTModule.HostCallProcessReplacing
01b678d8 +00c dsp_eqfree.dll DAV_VSTModuleWithMidi 115 +1
TVSTModuleWithMidi.HostCallProcessReplacing
01b63ee8 +03c dsp_eqfree.dll DAV_VSTBasicModule 1015 +2
ProcessReplacingFunc
01b3ac3b +013 dsp_eqfree.dll DAV_VSTHost 1512 +2
TCustomVstPlugIn.ProcessReplacing
01c46df6 +3b2 dsp_eqfree.dll WADSPVST 233 +47 ModifySamples
01ac1b4d +00d dsp_eqfree.dll madExcept CallThreadProcSafe
01ac1bb7 +037 dsp_eqfree.dll madExcept ThreadExceptFrame
>> created by main thread ($470) at:
009d1cc6 +000 in_flac.dll

main thread ($470):
7e377766 +3b USER32.dll GetMessageA
7c920412 +25 ntdll.dll RtlAcquirePebLock
7c92043d +0c ntdll.dll RtlReleasePebLock
7c920412 +25 ntdll.dll RtlAcquirePebLock
7c92043d +0c ntdll.dll RtlReleasePebLock
7c920412 +25 ntdll.dll RtlAcquirePebLock
7c92043d +0c ntdll.dll RtlReleasePebLock
7c930729 +3b ntdll.dll CsrCaptureMessageString
7c925216 +43 ntdll.dll bsearch
7c92043d +0c ntdll.dll RtlReleasePebLock
77c09d78 +11 msvcrt.dll _initterm
7c92c260 +13 ntdll.dll LdrFindResourceDirectory_U
7c920412 +25 ntdll.dll RtlAcquirePebLock
7c92043d +0c ntdll.dll RtlReleasePebLock
77c09d78 +11 msvcrt.dll _initterm

thread $138:
7c91da8a +a ntdll.dll NtReplyWaitReceivePortEx

thread $1f4:
7c91d1fa +0a ntdll.dll NtDelayExecution
7c8023eb +4b kernel32.dll SleepEx
7c802450 +0a kernel32.dll Sleep
7c920412 +25 ntdll.dll RtlAcquirePebLock

thread $2b0: <priority:15>
7c91df3a +0a ntdll.dll NtWaitForSingleObject
7c8025d5 +85 kernel32.dll WaitForSingleObjectEx
7c80253d +0d kernel32.dll WaitForSingleObject

thread $4d0: <priority:15>
7c91df2a +0a ntdll.dll NtWaitForMultipleObjects
7c80956e +00 kernel32.dll WaitForMultipleObjectsEx
7c80a100 +13 kernel32.dll WaitForMultipleObjects

thread $5ac: <priority:15>
7c91df2a +0a ntdll.dll NtWaitForMultipleObjects
7c80956e +00 kernel32.dll WaitForMultipleObjectsEx
7c80a100 +13 kernel32.dll WaitForMultipleObjects

thread $4c8: <priority:15>
7c91df2a +0a ntdll.dll NtWaitForMultipleObjects
7c80956e +00 kernel32.dll WaitForMultipleObjectsEx
7c80a100 +13 kernel32.dll WaitForMultipleObjects

thread $2cc (TEvolutionThread): <suspended> <priority:-1>
01c140c1 +19 dsp_eqfree.dll ElectriQEvolution 93 +1 TEvolutionThread.Create

thread $2d0: <priority:2>
7c91d1fa +0a ntdll.dll NtDelayExecution
7c8023eb +4b kernel32.dll SleepEx
7c802450 +0a kernel32.dll Sleep
01ac1b4d +0d dsp_eqfree.dll madExcept CallThreadProcSafe
01ac1bb7 +37 dsp_eqfree.dll madExcept ThreadExceptFrame
>> created by main thread ($470) at:
0042ebda +00 winamp.exe

modules:
00400000 winamp.exe 2.8.0.0 C:\Programme\Winamp
009a0000 in_wave.dll C:\Programme\Winamp\Plugins
009b0000 out_disk.dll C:\Programme\Winamp\Plugins
009d0000 in_flac.dll C:\Programme\Winamp\Plugins
00b20000 in_mp3.dll C:\Programme\Winamp\Plugins
00b60000 in_vorbis.dll C:\Programme\Winamp\Plugins
00ba0000 out_ds.dll C:\Programme\Winamp\Plugins
00bb0000 out_gapless.dll 1.0.0.5 C:\Programme\Winamp\Plugins
00bc0000 out_wave.dll C:\Programme\Winamp\plugins
00c00000 xpsp2res.dll 5.1.2600.5512 C:\WINDOWS\system32
01a70000 dsp_eqfree.dll C:\Programme\Winamp\Plugins
10000000 in_cdda.dll C:\Programme\Winamp\Plugins
494e0000 TrayIt!.dll 2.10.1.1 C:\Programme\trayit
5b0f0000 uxtheme.dll 6.0.2900.5512 C:\WINDOWS\system32
5d450000 COMCTL32.dll 5.82.2900.5512 C:\WINDOWS\system32
6bd00000 SYNCOR11.DLL 0.1.2.3 C:\WINDOWS\system32
71a00000 WS2HELP.dll 5.1.2600.5512 C:\WINDOWS\system32
71a10000 WS2_32.dll 5.1.2600.5512 C:\WINDOWS\system32
71a30000 WSOCK32.dll 5.1.2600.5512 C:\WINDOWS\system32
72c80000 msacm32.drv 5.1.2600.0 C:\WINDOWS\system32
72c90000 wdmaud.drv 5.1.2600.5512 C:\WINDOWS\system32
73e40000 KsUser.dll 5.3.2600.5512 C:\WINDOWS\system32
73e70000 dsound.dll 5.3.2600.5512 C:\WINDOWS\system32
76350000 comdlg32.dll 6.0.2900.5512 C:\WINDOWS\system32
76af0000 WINMM.dll 5.1.2600.5512 C:\WINDOWS\system32
76bf0000 WINTRUST.dll 5.131.2600.5512 C:\WINDOWS\system32
76c50000 IMAGEHLP.dll 5.1.2600.5512 C:\WINDOWS\system32
76f90000 CLBCATQ.DLL 2001.12.4414.700 C:\WINDOWS\system32
77010000 COMRes.dll 2001.12.4414.700 C:\WINDOWS\system32
770f0000 OLEAUT32.dll 5.1.2600.5512 C:\WINDOWS\system32
773a0000 comctl32.dll 6.0.2900.5512
C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
774b0000 ole32.dll 5.1.2600.5512 C:\WINDOWS\system32
77a50000 CRYPT32.dll 5.131.2600.5512 C:\WINDOWS\system32
77af0000 MSASN1.dll 5.1.2600.5512 C:\WINDOWS\system32
77ba0000 midimap.dll 5.1.2600.5512 C:\WINDOWS\system32
77bb0000 MSACM32.dll 5.1.2600.5512 C:\WINDOWS\system32
77bd0000 VERSION.dll 5.1.2600.5512 C:\WINDOWS\system32
77be0000 msvcrt.dll 7.0.2600.5512 C:\WINDOWS\system32
77da0000 ADVAPI32.dll 5.1.2600.5512 C:\WINDOWS\system32
77e50000 RPCRT4.dll 5.1.2600.5512 C:\WINDOWS\system32
77ef0000 GDI32.dll 5.1.2600.5512 C:\WINDOWS\system32
77f40000 SHLWAPI.dll 6.0.2900.5512 C:\WINDOWS\system32
77fc0000 Secur32.dll 5.1.2600.5512 C:\WINDOWS\system32
7c800000 kernel32.dll 5.1.2600.5512 C:\WINDOWS\system32
7c910000 ntdll.dll 5.1.2600.5512 C:\WINDOWS\system32
7e360000 USER32.dll 5.1.2600.5512 C:\WINDOWS\system32
7e670000 SHELL32.dll 6.0.2900.5512 C:\WINDOWS\system32

processes:
000 Idle
004 System normal
1d8 smss.exe normal C:\WINDOWS\system32
21c csrss.exe
238 winlogon.exe high C:\WINDOWS\system32
264 services.exe normal C:\WINDOWS\system32
270 lsass.exe normal C:\WINDOWS\system32
324 svchost.exe normal C:\WINDOWS\system32
374 svchost.exe
39c svchost.exe normal C:\WINDOWS\System32
3c4 svchost.exe
4dc Explorer.EXE normal C:\WINDOWS
54c avgnt.exe normal C:\Programme\AntiVir PersonalEdition Classic
574 miranda32.exe normal C:\Programme\Miranda
584 speedfan.exe normal C:\Programme\SpeedFan
59c WinVNC.exe normal C:\Programme\TightVNC 1.39
5a4 trayit!.exe normal C:\Programme\trayit
624 avguard.exe normal C:\Programme\AntiVir PersonalEdition Classic
63c openvpnserv.exe normal C:\Programme\OpenVPN\bin
664 SlimFTPd.exe normal C:\Programme\slimftpd
66c openvpn.exe normal C:\Programme\OpenVPN\bin
680 svchost.exe normal C:\WINDOWS\System32
0ac winamp.exe normal C:\Programme\Winamp

hardware:
+ Audio-, Video- und Gamecontroller
- Audiocodecs
- Legacy-Audiotreiber
- Legacy-Videoaufnahmeger?t
- Mediensteuerungsger?t
- SoundMAX Integrated Digital Audio (driver 5.12.1.3620)
- Videocodecs
+ Computer
- ACPI-Uniprozessor-PC
+ DVD/CD-ROM-Laufwerke
- _NEC DV-5800C
- HL-DT-ST DVDRAM GSA-4040B
- PQ4304A UWC214J SCSI CdRom Device
+ Grafikkarte
- RADEON 9600 SERIES (driver 8.252.0.0)
- RADEON 9600 SERIES - Secondary (driver 8.252.0.0)
+ IDE ATA/ATAPI-Controller
- Prim?rer IDE-Kanal
- Sekund?rer IDE-Kanal
- VIA Bus-Master-IDE-Controller
+ Laufwerke
- SAMSUNG HA250JC
- SAMSUNG HD501LJ SCSI Disk Device
- SAMSUNG MP0402H USB Device
+ Monitore
- (Standardmonitor)
+ M?use und andere Zeigeger?te
- Microsoft PS/2-Maus
+ Netzwerkadapter
- 3Com Gigabit LOM (3C940) (driver 1.0.0.44)
- TAP-Win32 Adapter V8 (driver 8.0.0.4)
- TAP-Win32 Adapter V8 #2 (driver 8.0.0.4)
- TAP-Win32 Adapter V8 #3 (driver 8.0.0.4)
+ Prozessoren
- AMD Athlon(TM) XP
+ SCSI- und RAID-Controller
- SCSI/RAID Host Controller
- VIA Serial ATA RAID Controller (driver 5.1.2600.220)
+ Systemger?te
- ACPI-Einschaltknopf
- ACPI-Schalter
- DMA-Controller
- Erweiterter E/A-Bus
- Hauptplatinenressourcen
- Hauptplatinenressourcen
- Hauptplatinenressourcen
- ISAPnP-Datenleseport
- Microcode-Updateger?t
- Microsoft ACPI-konformes System
- Microsoft-Systemverwaltungs-BIOS-Treiber
- Numerischer Coprozessor
- PCI-Bus
- PnP-Softwareger?te-Enumerator
- Programmierbarer Interruptcontroller
- System CMOS/Echtzeituhr
- Systemlautsprecher
- Systemplatine
- Systemzeitgeber
- Terminalserver-Ger?teumleitung
- Terminalserver-Maustreiber
- Terminalserver-Tastaturtreiber
- Verwaltung logischer Datentr?ger
- VIA CPU to AGP2.0/AGP3.0 Controller (driver 5.1.0.3441)
- VIA Standard CPU to PCI Bridge (driver 5.1.0.180)
- VIA Standard PCI to ISA Bridge (driver 5.1.0.180)
- Volume-Manager
+ Tastaturen
- Standardtastatur (101/102 Tasten) oder Microsoft Natural Keyboard (PS/2)
+ USB-Controller
- Standard erweiterter PCI-zu-USB universeller Hostcontroller
- USB-Massenspeicherger?t
- USB-Root-Hub
- USB-Root-Hub
- USB-Root-Hub
- USB-Root-Hub
- USB-Root-Hub
- VIA Rev 5 oder h?her USB universeller Hostcontroller
- VIA Rev 5 oder h?her USB universeller Hostcontroller
- VIA Rev 5 oder h?her USB universeller Hostcontroller
- VIA Rev 5 oder h?her USB universeller Hostcontroller
+ VSO devices
- pcouffin device for 32 bits systems (driver 1.37.0.0)

cpu registers:
eax = 03034260
ebx = 03034260
ecx = 00000000
edx = 02f761d8
esi = 00000000
edi = 00000000
eip = 01c3a368
esp = 01a6fdc8
ebp = 01a6fdf4

stack dump:
01a6fdc8 00 00 00 00 d8 61 f7 02 - d8 61 f7 02 ff ff ff ff .....a...a......
01a6fdd8 b8 42 03 03 f4 fd a6 01 - f4 fd a6 01 60 42 03 03 .B..........`B..
01a6fde8 d8 61 f7 02 d8 61 f7 02 - 60 42 03 03 0c fe a6 01 .a...a..`B......
01a6fdf8 57 53 b6 01 00 00 00 00 - 60 42 03 03 d8 61 f7 02 WS......`B...a..
01a6fe08 d8 61 f7 02 1c fe a6 01 - dd 78 b6 01 00 00 00 00 .a.......x......
01a6fe18 ac 73 c3 01 2c fe a6 01 - ee 3e b6 01 00 00 00 00 .s..,....>......
01a6fe28 00 00 00 00 4c fe a6 01 - 3e ac b3 01 b8 42 03 03 ....L...>....B..
01a6fe38 d8 61 f7 02 d8 61 f7 02 - 00 00 00 00 64 67 9e 00 .a...a......dg..
01a6fe48 e8 70 b3 01 b8 fe a6 01 - f9 6d c4 01 00 00 00 00 .p.......m......
01a6fe58 64 fe a6 01 7c 4b a7 01 - b8 fe a6 01 8c ff a6 01 d...|K..........
01a6fe68 7c 4b a7 01 b8 fe a6 01 - 00 00 00 00 64 67 9e 00 |K..........dg..
01a6fe78 02 00 00 00 0f b8 fb 3b - 3e 70 c5 3c 05 cf b4 bd
.......;>p.<....
01a6fe88 58 35 65 bd 23 9b 03 3c - 02 00 00 00 02 00 00 00 X5e.#..<........
01a6fe98 98 21 0e bd a5 14 6b bd - 40 92 d4 01 00 00 00 00 .!....k. at .......
01a6fea8 ee 8e 8b bd 02 00 00 00 - 00 b5 94 bc 00 00 00 00 ................
01a6feb8 34 ff a6 01 bd 22 41 00 - fc 22 c7 01 64 67 9e 00
4...."A.."..dg..
01a6fec8 00 00 00 00 10 00 00 00 - 02 00 00 00 44 ac 00 00 ............D...
01a6fed8 55 6e 41 00 64 67 9e 00 - 00 00 00 00 10 00 00 00 UnA.dg..........
01a6fee8 02 00 00 00 44 ac 00 00 - 64 67 9e 00 00 00 00 00 ....D...dg......
01a6fef8 00 00 00 00 d8 21 86 bb - 70 d3 85 3d 6f 00 00 00 .....!..p..=o...

disassembling:
[...]
01c3a35e 750 mov esi, [edx]
01c3a360 751 mov edi, [ecx]
01c3a362 752 mov ecx, [ebp+8]
01c3a365 753 mov ebx, eax
01c3a367 755 push ecx
01c3a368 756 > fld dword ptr [esi]
01c3a36a 757 fadd qword ptr [$1c7216c]
01c3a370 758 xor ecx, ecx
01c3a372 760 mov eax, [ebx+ecx*4+$2340]
01c3a379 761 mov edx, [eax]
01c3a37b 762 call dword ptr [edx+$2c] …