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:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user