Review Request: Do not crash avahi DNSSD service

Albert Astals Cid tsdgeos at terra.es
Wed Aug 22 12:13:46 BST 2012



> On Aug. 22, 2012, 10:13 a.m., Christoph Feck wrote:
> > Any comment? I would like to get it into 4.9.1, because we are continously getting crash reports for KTorrent. I tried contacting kdnssd maintainer, but got no answer.
> 
> Thomas Lübking wrote:
>     "Ship It!"
>     
>     "avahi" == "bonjour" == "zeroconf" == dnssd implementation ("DNS-Based Service Discovery" ie. network / service autoconfig invented for apple users. Itunes runs around and checks for pers. Cups uses it as well.)
>     
>     Given " d->m_running" is used as condition to trigger "stop()" in ::publishAsync() and a pointer check might be superfluous but no harm - yet is performed in many other locations as well - both changes are reasonable, should not carry any harm and if they prevent a segfault will rather do good then bad (could shadow a more general issue)
>     
>     That's however no official "ship it" but just imo, based on abstract code review :-\

kbattleship uses PublicService to ease the location of other people in your network with who to play. You might give it a quick try to see you did not break anything (in case you have avahi installed)


- Albert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105613/#review17850
-----------------------------------------------------------


On July 19, 2012, 1:55 a.m., Christoph Feck wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105613/
> -----------------------------------------------------------
> 
> (Updated July 19, 2012, 1:55 a.m.)
> 
> 
> Review request for kdelibs, KTorrent, Joris Guisson, and Thiago Macieira.
> 
> 
> Description
> -------
> 
> This is my attempt to fix the crash. As far as I followed the code, the crash is because of m_group == 0 in serverStateChanged() when the avahi server is initially "registering" or in "collision", and not "running" yet. When e.g. KTorrent starts, it is possible that the avahi server needs some time until it is fully setup. The m_group is initialized when the first tryApply() is called, which only happens when server is initially in "running" state.
> 
> Additionally, the m_running variable was never reset to false in stop(), so the (sync) publish() would never return on failure.
> 
> 
> This addresses bug 215288.
>     http://bugs.kde.org/show_bug.cgi?id=215288
> 
> 
> Diffs
> -----
> 
>   dnssd/avahi-publicservice.cpp 52bef22 
> 
> Diff: http://git.reviewboard.kde.org/r/105613/diff/
> 
> 
> Testing
> -------
> 
> I have no idea what avahi is or how it works, so I did not test it.
> 
> 
> Thanks,
> 
> Christoph Feck
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20120822/07579771/attachment.htm>


More information about the kde-core-devel mailing list