Regression in libbind's resolver initialization
Adam Tkac
atkac at redhat.com
Thu Jun 28 17:45:48 UTC 2007
Hi all,
looks that
2119. [compat] libbind: allow res_init() to succeed enough to
return the default domain even if it was unable
to allocate memory.
change brings regression and libbind resolver is now completely
unusable. I tried this code:
#include <bind/netdb.h>
#include <bind/resolv.h>
int main() {
(void) gethostbyname("asdf");
return 0;
}
and compile it against libbind's resolver. Program gets sigsegv due
unbounded recursion. __res_vinit() function needs initialised h_errno
and h_errno needs initialised resolver (looks like problem for me) so
calls like init-h_errno -> init-resolver -> init-h_errno .. never ends.
When I take back change 2119 all works as expected. I think if we need
this "feature" we could use local variable instead h_errno.
Regards, Adam
More information about the bind-workers
mailing list