OpenSSH DNS resolution failure on IRIX 5.3: request to fix

Georg Schwarz georg.schwarz at freenet.de
Sat Apr 22 05:29:36 EST 2006


Dear developers,

as reported earlier, recent versions of OpenSSH (4.3p1, 4.3p2 as well  
as the current CVS) on IRIX 5.3 exhibit a DNS resolution failure.  
Even for perfectly valid hostnames they return "no address associated  
with name".
After some digging through the code I found what is causing this  
strange behaviour. Basically it was introduced with the following  
change:

revision 1.3954
date: 2005/11/05 05:56:52;  author: djm;  state: Exp;  lines: +4 -1
  - (djm) [openbsd-compat/getrrsetbyname.c] Sync to latest OpenBSD  
version,
   resolving memory leak bz#1111 reported by kremenek AT  
cs.stanford.edu;
   ok dtucker@


When I take out the line

struct __res_state _res;

things work. Also, the problem does not occur when compiling with gcc  
(I used 3.4.4) instead of the SGI IDO cc.

I am not familiar enough with the implementation of the DNS  
resolution libraries to really judge what is going on. It looks like  
the global variable _res in openbsd-compat/getrrsetbyname overrides a  
respective OS-supplied variable when compiling with the SGI IDO cc.
I hope that someone else can give a more thorough explanation of what  
is going wrong. I must admit that I do not understand why _res is  
defined at all in openbsd-compat/getrrsetbyname.c. It wasn't before  
2005/11/05.
Now my next question of course is how to fix that problem. Is it  
acceptable to simple comment out that line with something like this  
(syntax not really correct)?

#if not irix5 or gcc
struct __res_state _res;
#endif


It also seems sufficient to change the line into

extern struct __res_state _res;

Feedback would be welcome. I'd appreciate if you could CC me on any  
replies since I am not a member of this mailing list.

Georg


-- 
Georg Schwarz    http://home.pages.de/~schwarz/
georg.schwarz at freenet.de  +49 178 8545053




More information about the openssh-unix-dev mailing list