diff options
author | Eric Andersen <andersen@codepoet.org> | 2007-02-08 21:02:26 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2007-02-08 21:02:26 +0000 |
commit | 5df81800828322fb7a4298a4114047540174a0f5 (patch) | |
tree | b6a94517e0b6998c7d24ef5d8ccc28c3d0a7b2ab | |
parent | fa0c6d9666d161c17183b2dd6e67ebac2e908c38 (diff) |
do not use ghbn_buf after it goes out of scope
-rw-r--r-- | libc/inet/hostid.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libc/inet/hostid.c b/libc/inet/hostid.c index 58dc13aec..442294acb 100644 --- a/libc/inet/hostid.c +++ b/libc/inet/hostid.c @@ -72,19 +72,18 @@ long int gethostid(void) if (gethostname(host,MAXHOSTNAMELEN)>=0 && *host) { struct hostent *hp; struct in_addr in; + struct hostent ghbn_h; + char ghbn_buf[sizeof(struct in_addr) + + sizeof(struct in_addr *)*2 + + sizeof(char *)*((2 + 5/*MAX_ALIASES*/ + + 1)/*ALIAS_DIM*/) + + 256/*namebuffer*/ + 32/* margin */]; + int ghbn_errno; /* replace gethostbyname() with gethostbyname_r() - ron@zing.net */ /*if ((hp = gethostbyname(host)) == (struct hostent *)NULL)*/ - { - struct hostent ghbn_h; - char ghbn_buf[sizeof(struct in_addr) + - sizeof(struct in_addr *)*2 + - sizeof(char *)*((2 + 5/*MAX_ALIASES*/ + - 1)/*ALIAS_DIM*/) + - 256/*namebuffer*/ + 32/* margin */]; - int ghbn_errno; - gethostbyname_r(host, &ghbn_h, ghbn_buf, sizeof(ghbn_buf), &hp, &ghbn_errno); - } + gethostbyname_r(host, &ghbn_h, ghbn_buf, sizeof(ghbn_buf), &hp, &ghbn_errno); + if (hp == (struct hostent *)NULL) /* This is not a error if we get here, as all it means is that |