Commit 6e7e5fff authored by Philip Withnall's avatar Philip Withnall

gthreadedresolver: Fix initialisation on FreeBSD

res_ninit() requires the __res_state struct passed to it to be
zero-filled on FreeBSD.

Spotted and analysed by Ashish SHUKLA.
Signed-off-by: Philip Withnall's avatarPhilip Withnall <>

Fixes #1697
parent 04528e60
......@@ -940,8 +940,10 @@ do_lookup_records (GTask *task,
* What we have currently is not particularly worse than using res_query() in
* worker threads, since it would transparently call res_init() for each new
* worker thread. (Although the workers would get reused by the
* #GThreadPool.) */
struct __res_state res;
* #GThreadPool.)
* FreeBSD requires the state to be zero-filled before calling res_ninit(). */
struct __res_state res = { 0, };
if (res_ninit (&res) != 0)
g_task_return_new_error (task, G_RESOLVER_ERROR, G_RESOLVER_ERROR_INTERNAL,
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment