* net.cc (cygwin_inet_ntoa): Add parameter checking.

(cygwin_inet_network): Return INADDR_NONE instead of 0 in case of
	EFAULT.
	(cygwin_hstrerror): Add parameter checking.
	(cygwin_rresvport): Ditto.
	(socketpair): Ditto.
	* winsup.h (check_null_str): Add extern declaration.
This commit is contained in:
Corinna Vinschen 2001-11-24 21:10:00 +00:00
parent 28d3cc021d
commit b0fa0e6e0f
2 changed files with 12 additions and 1 deletions

View File

@ -206,6 +206,8 @@ cygwin_inet_ntoa (struct in_addr in)
extern "C" unsigned long
cygwin_inet_addr (const char *cp)
{
if (check_null_str_errno (cp))
return INADDR_NONE;
unsigned long res = inet_addr (cp);
return res;
}
@ -234,7 +236,7 @@ extern "C" unsigned int
cygwin_inet_network (const char *cp)
{
if (check_null_str_errno (cp))
return 0;
return INADDR_NONE;
unsigned int res = inet_network (cp);
return res;
}
@ -1440,6 +1442,8 @@ cygwin_hstrerror (int err)
extern "C" void
cygwin_herror (const char *s)
{
if (check_null_str (s))
return;
if (cygheap->fdtab.not_open (2))
return;
@ -2229,6 +2233,9 @@ cygwin_rresvport (int *port)
int res;
sigframe thisframe (mainthread);
if (check_null_invalid_struct_errno (port))
return -1;
cygheap_fdnew res_fd;
if (res_fd < 0)
res = -1;
@ -2292,6 +2299,9 @@ socketpair (int, int type, int, int *sb)
struct sockaddr_in sock_in;
int len = sizeof (sock_in);
if (__check_null_invalid_struct_errno (sb, 2 * sizeof(int)))
return -1;
cygheap_fdnew sb0;
if (sb0 < 0)
goto done;

View File

@ -188,6 +188,7 @@ long __stdcall to_time_t (FILETIME * ptr);
void __stdcall set_console_title (char *);
void set_console_handler ();
int __stdcall check_null_str (const char *name) __attribute__ ((regparm(1)));
int __stdcall check_null_empty_str (const char *name) __attribute__ ((regparm(1)));
int __stdcall check_null_empty_str_errno (const char *name) __attribute__ ((regparm(1)));
int __stdcall check_null_str_errno (const char *name) __attribute__ ((regparm(1)));