Crash in dnsquery.c, branch 2.x.y

Eion Robb eion at robbmob.com
Mon Dec 18 15:16:13 EST 2017


Hi Thomas,

What's the eventloop implementation you're using?  The `return FALSE` from
the initate_resolving() function should prevent any future timers from
being triggered, so there shouldn't be any crash from setting an internal
value to 0

Cheers,
Eion

On 19 December 2017 at 02:59, Thomas Downing <tdowning at bomgar.com> wrote:

> Hi all,
>
> I am developing an application that uses libpurple.  During development,
> I got a repeatable segfault during dns resolution.  I tracked the problem
> to initiate_resolving() in dnsquery.c.  The current code fails to call
> purple_timeout_remove().  When the timeout callback is later invoked by
> my timer code, the gpointer data passed to me by purple_timeout_add()
> is no longer valid, causing a segfault.
>
> This is consistently repeatable, and is fixed by the attached patch.  The
> patch just adds a call to purple_timeout_remove().
>
> This patch is against branch 2.x.y.
>
> --
> Thomas Downing
>
> Flon's Law:
>     There is not now, and never will be, a language in
> which it is the least bit difficult to write bad programs.
> _______________________________________________
> Devel mailing list
> Devel at pidgin.im
> https://pidgin.im/cgi-bin/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pidgin.im/pipermail/devel/attachments/20171219/bd1ba39a/attachment.html>


More information about the Devel mailing list