Ensure that all fhandler_*::read definitions are __stdcall throughout.

* fhandler.cc (fhandler_base::set_inheritance): Be more defensive in debugging
code.
* fhandler.h: Adjust regparms throughout to reflect passing 'this' parameter.
* fhandler_console.cc (fhandler_console::read): Remove unneeded test.  Only
honor "key down" events.
* miscfuncs.cc (strcasestr): Reorganize for efficient code use.
(check_null_empty_str_errno): Ditto.
(__check_null_invalid_struct_errno): Ditto.
(__check_invalid_read_ptr_errno): Ditto.
* syscalls.cc (_read): Return 0 when length == 0, as per Single UNIX
Specification.
This commit is contained in:
Christopher Faylor
2001-10-24 04:16:45 +00:00
parent 0280c8c0f3
commit a0626ebe27
16 changed files with 70 additions and 52 deletions

View File

@ -118,13 +118,10 @@ strcasestr (const char *searchee, const char *lookfor)
int __stdcall
check_null_empty_str (const char *name)
{
if (!name || IsBadStringPtr (name, MAX_PATH))
return EFAULT;
if (name && !IsBadStringPtr (name, MAX_PATH))
return !*name ? ENOENT : 0;
if (!*name)
return ENOENT;
return 0;
return EFAULT;
}
int __stdcall
@ -139,26 +136,25 @@ check_null_empty_str_errno (const char *name)
int __stdcall
__check_null_invalid_struct (const void *s, unsigned sz)
{
if (!s || IsBadWritePtr ((void *) s, sz))
return EFAULT;
if (s && !IsBadWritePtr ((void *) s, sz))
return 0;
return 0;
return EFAULT;
}
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;
int err;
if ((err = __check_null_invalid_struct (s, sz)))
set_errno (err);
return err;
}
int __stdcall
__check_invalid_read_ptr_errno (const void *s, unsigned sz)
{
if (!s || IsBadReadPtr ((void *) s, sz))
return set_errno (EFAULT);
return 0;
if (s && !IsBadReadPtr ((void *) s, sz))
return 0;
return set_errno (EFAULT);
}