Change check_null_empty_path* to check_null_empty_str* throughout.

* path.cc (path_conv::check): Add signal protection here since retrieving info
about remote shares can take some time.
* path.h (check_null_empty_str_errno): Convert to a function prototype.
* path.cc (check_null_empty_str): Move to miscfuncs.cc.
* miscfuncs.cc (check_null_empty_str_errno): New function.
(__check_null_invalid_struct): Ditto.
(__check_null_invalid_struct_errno): Ditto.
(check_null_empty_str): Change from VirtualQuery to IsBadWritePtr.
* thread.cc (check_valid_pointer): Ditto.
* resource.cc (getrlimit): Use check_null_invalid_struct macro for checking
validity of pointer.
(setrlimit): Ditto.
This commit is contained in:
Christopher Faylor
2001-06-28 02:19:57 +00:00
parent c135faa8b3
commit 7a4078ee34
10 changed files with 88 additions and 54 deletions

View File

@ -9,6 +9,8 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#include "winsup.h"
#include "cygerrno.h"
#include <sys/errno.h>
/********************** String Helper Functions ************************/
@ -112,3 +114,42 @@ strcasestr (const char *searchee, const char *lookfor)
return NULL;
}
int __stdcall
check_null_empty_str (const char *name)
{
if (!name || IsBadStringPtr (name, MAX_PATH))
return EFAULT;
if (!*name)
return ENOENT;
return 0;
}
int __stdcall
check_null_empty_str_errno (const char *name)
{
int __err;
if ((__err = check_null_empty_str (name)))
set_errno (__err);
return __err;
}
int __stdcall
__check_null_invalid_struct (const void *s, unsigned sz)
{
if (!s || IsBadWritePtr ((void *) s, sz))
return EFAULT;
return 0;
}
int __stdcall
__check_null_invalid_struct_errno (const void *s, unsigned sz)
{
int __err;
if ((__err = __check_null_invalid_struct (s, sz)))
set_errno (__err);
return __err;
}