diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c index a6dd35c1b580bdba9cacfd0c586ea839689591f2..9b7c396a1c21d150a2a2bccb3842355def8efedf 100644 --- a/gio/gthreadedresolver.c +++ b/gio/gthreadedresolver.c @@ -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,