From: FFADO <ffa...@ff...> - 2008-05-30 16:42:02
|
#119: ffado-cache: [PATCH] Incomplete Deserializing and Serializing Sequence leads to Seqfault! ---------------------+------------------------------------------------------ Reporter: slack | Owner: Type: bug | Status: new Priority: critical | Milestone: FFADO 2.0 Version: | Resolution: Keywords: | Device_name: ---------------------+------------------------------------------------------ Comment (by slack): Thanks for applying, Peter. I had some time to look a little bit further into this and I want to share my findings. I realized that my fix does not solve the real problem. It only removes all errors while deserializing the cache and therefore the bug is just not triggered. There is the static variable inside src/libavc/general/avc_plug.cpp. int Plug::m_globalIdCounter = 0; It needs to be initialized not only at the beginning but also before every deserializing or discovering. If I understand the code in src/devicemanager.cpp correctly, any error condition in avDevice->loadFromCache() causes the call of avDevice->discover() where the incorrect value of m_globalIdCounter is used. In my case it just reached 80 when the first error occured.... Hope this helps -- Ticket URL: <http://subversion.ffado.org/ticket/119#comment:5> FFADO <http://subversion.ffado.org/index.fcgi> Free Firewire Audio Drivers |