projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged from silc_1_0_branch.
[silc.git]
/
lib
/
silcutil
/
silcmemory.c
diff --git
a/lib/silcutil/silcmemory.c
b/lib/silcutil/silcmemory.c
index e2e455a9ec90cf214fb48a48db0860fec9243c3e..93fd8751e8334a593817bb3079004da40d829e07 100644
(file)
--- a/
lib/silcutil/silcmemory.c
+++ b/
lib/silcutil/silcmemory.c
@@
-22,9
+22,12
@@
#ifndef SILC_STACKTRACE
#ifndef SILC_STACKTRACE
+#define SILC_MAX_ALLOC (1024 * 1024L * 1024L)
+
void *silc_malloc(size_t size)
{
void *addr;
void *silc_malloc(size_t size)
{
void *addr;
+ assert(size >= 0 && size <= SILC_MAX_ALLOC);
addr = malloc(size);
assert(addr != NULL);
return addr;
addr = malloc(size);
assert(addr != NULL);
return addr;
@@
-33,6
+36,7
@@
void *silc_malloc(size_t size)
void *silc_calloc(size_t items, size_t size)
{
void *addr;
void *silc_calloc(size_t items, size_t size)
{
void *addr;
+ assert(size * items >= 0 && size * items <= SILC_MAX_ALLOC);
addr = calloc(items, size);
assert(addr != NULL);
return addr;
addr = calloc(items, size);
assert(addr != NULL);
return addr;
@@
-41,6
+45,7
@@
void *silc_calloc(size_t items, size_t size)
void *silc_realloc(void *ptr, size_t size)
{
void *addr;
void *silc_realloc(void *ptr, size_t size)
{
void *addr;
+ assert(size >= 0 && size <= SILC_MAX_ALLOC);
addr = realloc(ptr, size);
assert(addr != NULL);
return addr;
addr = realloc(ptr, size);
assert(addr != NULL);
return addr;
@@
-53,7
+58,8
@@
void silc_free(void *ptr)
void *silc_memdup(const void *ptr, size_t size)
{
void *silc_memdup(const void *ptr, size_t size)
{
- unsigned char *addr = silc_malloc(size + 1);
+ unsigned char *addr;
+ addr = silc_malloc(size + 1);
assert(addr != NULL);
memcpy((void *)addr, ptr, size);
addr[size] = '\0';
assert(addr != NULL);
memcpy((void *)addr, ptr, size);
addr[size] = '\0';