mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
mem* check operations now tell where it failed
This commit is contained in:
parent
0f1f66668b
commit
4506648cd6
@ -5,6 +5,8 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <cpu.hpp>
|
#include <cpu.hpp>
|
||||||
|
|
||||||
|
#include "../kernel.h"
|
||||||
|
|
||||||
EXTERNC int memcmp(const void *vl, const void *vr, size_t n)
|
EXTERNC int memcmp(const void *vl, const void *vr, size_t n)
|
||||||
{
|
{
|
||||||
const unsigned char *l = (unsigned char *)vl, *r = (unsigned char *)vr;
|
const unsigned char *l = (unsigned char *)vl, *r = (unsigned char *)vr;
|
||||||
@ -609,25 +611,25 @@ EXTERNC __no_stack_protector void *__memcpy_chk(void *dest, const void *src, siz
|
|||||||
#endif
|
#endif
|
||||||
if (unlikely(dest == NULL))
|
if (unlikely(dest == NULL))
|
||||||
{
|
{
|
||||||
error("dest is NULL");
|
error("dest is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(src == NULL))
|
if (unlikely(src == NULL))
|
||||||
{
|
{
|
||||||
error("src is NULL");
|
error("src is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(len == 0))
|
if (unlikely(len == 0))
|
||||||
{
|
{
|
||||||
error("len is 0");
|
error("len is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(slen == 0))
|
if (unlikely(slen == 0))
|
||||||
{
|
{
|
||||||
error("slen is 0");
|
error("slen is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -658,8 +660,6 @@ EXTERNC __no_stack_protector void *__memcpy_chk(void *dest, const void *src, siz
|
|||||||
return memcpy_unsafe(dest, src, len);
|
return memcpy_unsafe(dest, src, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
error("Should not be here!");
|
|
||||||
CPU::Stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len, size_t slen)
|
EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len, size_t slen)
|
||||||
@ -669,19 +669,19 @@ EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len,
|
|||||||
#endif
|
#endif
|
||||||
if (unlikely(dest == NULL))
|
if (unlikely(dest == NULL))
|
||||||
{
|
{
|
||||||
error("dest is NULL");
|
error("dest is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(len == 0))
|
if (unlikely(len == 0))
|
||||||
{
|
{
|
||||||
error("len is 0");
|
error("len is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(slen == 0))
|
if (unlikely(slen == 0))
|
||||||
{
|
{
|
||||||
error("slen is 0");
|
error("slen is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -712,8 +712,6 @@ EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len,
|
|||||||
return memset_unsafe(dest, val, len);
|
return memset_unsafe(dest, val, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
error("Should not be here!");
|
|
||||||
CPU::Stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, size_t len, size_t slen)
|
EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, size_t len, size_t slen)
|
||||||
@ -723,25 +721,25 @@ EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, si
|
|||||||
#endif
|
#endif
|
||||||
if (unlikely(dest == NULL))
|
if (unlikely(dest == NULL))
|
||||||
{
|
{
|
||||||
error("dest is NULL");
|
error("dest is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(src == NULL))
|
if (unlikely(src == NULL))
|
||||||
{
|
{
|
||||||
error("src is NULL");
|
error("src is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(len == 0))
|
if (unlikely(len == 0))
|
||||||
{
|
{
|
||||||
error("len is 0");
|
error("len is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(slen == 0))
|
if (unlikely(slen == 0))
|
||||||
{
|
{
|
||||||
error("slen is 0");
|
error("slen is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -772,8 +770,6 @@ EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, si
|
|||||||
return memmove_unsafe(dest, src, len);
|
return memmove_unsafe(dest, src, len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
error("Should not be here!");
|
|
||||||
CPU::Stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNC __no_stack_protector char *__strcat_chk(char *dest, const char *src, size_t slen)
|
EXTERNC __no_stack_protector char *__strcat_chk(char *dest, const char *src, size_t slen)
|
||||||
@ -783,19 +779,19 @@ EXTERNC __no_stack_protector char *__strcat_chk(char *dest, const char *src, siz
|
|||||||
#endif
|
#endif
|
||||||
if (unlikely(dest == NULL))
|
if (unlikely(dest == NULL))
|
||||||
{
|
{
|
||||||
error("dest is NULL");
|
error("dest is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(src == NULL))
|
if (unlikely(src == NULL))
|
||||||
{
|
{
|
||||||
error("src is NULL");
|
error("src is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(slen == 0))
|
if (unlikely(slen == 0))
|
||||||
{
|
{
|
||||||
error("slen is 0");
|
error("slen is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -812,19 +808,19 @@ EXTERNC __no_stack_protector char *__strcpy_chk(char *dest, const char *src, siz
|
|||||||
#endif
|
#endif
|
||||||
if (unlikely(dest == NULL))
|
if (unlikely(dest == NULL))
|
||||||
{
|
{
|
||||||
error("dest is NULL");
|
error("dest is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(src == NULL))
|
if (unlikely(src == NULL))
|
||||||
{
|
{
|
||||||
error("src is NULL");
|
error("src is NULL (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(slen == 0))
|
if (unlikely(slen == 0))
|
||||||
{
|
{
|
||||||
error("slen is 0");
|
error("slen is 0 (for %#lx %s)", __builtin_return_address(0), KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress((uintptr_t)__builtin_return_address(0)) : "Unknown");
|
||||||
__convert_chk_fail();
|
__convert_chk_fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ NewLock(TaskingLock);
|
|||||||
|
|
||||||
namespace Tasking
|
namespace Tasking
|
||||||
{
|
{
|
||||||
|
|
||||||
void Task::Schedule()
|
void Task::Schedule()
|
||||||
{
|
{
|
||||||
if (!StopScheduler)
|
if (!StopScheduler)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user