Date: Sat, 18 Nov 1995 19:41:59 +0900 From: YAMAMOTO Kouji <kouji@cs.titech.ac.jp> To: freebsd-bugs@freebsd.org Cc: kouji@cs.titech.ac.jp Subject: _gethostbynisaddr() Message-ID: <199511181041.TAA16351@marimo.cs.titech.ac.jp>
index | next in thread | raw e-mail
I think there is a bug at _gethostbynisaddr() in lib/libc/net/gethostbynis.c
still in 2.1.0-RELEASE. Here is my patch.
--- gethostbynis.c.org Sun Sep 25 11:12:14 1994
+++ gethostbynis.c Sat Nov 18 18:55:00 1995
@@ -111,5 +111,12 @@
_gethostbynisaddr(name)
char *name;
{
- return _gethostbynis(name, "hosts.byaddr");
+ char addr[16];
+
+ sprintf(addr, "%d.%d.%d.%d",
+ (unsigned char)(name[0]),
+ (unsigned char)(name[1]),
+ (unsigned char)(name[2]),
+ (unsigned char)(name[3]));
+ return _gethostbynis(addr, "hosts.byaddr");
}
This function is called from gethostbyaddr() in lib/libc/net/gethostnamadr.c,
with 3 parameters. But _gethostbynisaddr() accepts only one parameter.
( But this causes no problems.)
In addition, the first parameter is brought from __ivaliduser() in
lib/libc/net/rcmd.c. In _gethostbynisaddr() (and _gethostbynis() ),
the contents of the paramater is treated as a pointer to a char-string
though the contents __ivaliduser() sends as a parameter is the pointer
to u_long!
So the validation by __invaliduser() will sometimes fail.
( This is taken place only when host address is checked by NIS.)
Thank you.
----
YAMAMOTO Kouji < kouji@cs.titech.ac.jp >
Grad. School of Info.Sci. & Eng., Dept. of Comp.Sci.
Tokyo Institute of Technology
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511181041.TAA16351>
