diff options
author | peter <peter@FreeBSD.org> | 2000-07-11 09:31:19 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-07-11 09:31:19 +0000 |
commit | 63c050d16ca6926933b42c7b93d2b09b9045b7b9 (patch) | |
tree | 998f660cca0e89bf57093fbfb0ad34d617eefe17 /lib/libc | |
parent | c1aed73081c125d0ed5c79079f1778e02407e211 (diff) | |
download | FreeBSD-src-63c050d16ca6926933b42c7b93d2b09b9045b7b9.zip FreeBSD-src-63c050d16ca6926933b42c7b93d2b09b9045b7b9.tar.gz |
Try and fix the worst of some highly bogus malloc/free resource
management involving rcmd_af(), getaddrinfo(), freeaddrinfo(), etc.
We set *ahost to point to ai->canonname; and later free the ai-> stuff
and still leave the old pointers in *ahost to the freed data.
Perhaps the best way to deal with this is a static buffer or a static
strdup() that is freed on the next iteration or something. This gives
me headaches just thinking about this.
The new 'AJ' default for malloc() tripped this up.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/net/rcmd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libc/net/rcmd.c b/lib/libc/net/rcmd.c index 5bbef4b..70a18d4 100644 --- a/lib/libc/net/rcmd.c +++ b/lib/libc/net/rcmd.c @@ -182,8 +182,8 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af) refused = 0; continue; } - freeaddrinfo(res); (void)fprintf(stderr, "%s: %s\n", *ahost, strerror(errno)); + freeaddrinfo(res); sigsetmask(oldmask); return (-1); } |