mirror of
https://github.com/cesanta/mongoose.git
synced 2025-07-26 07:06:15 +08:00
Add heap limit
This commit is contained in:
parent
8aa26fb2cd
commit
dadb05e022
@ -12,8 +12,11 @@ void *_sbrk(int incr) {
|
|||||||
extern char _end;
|
extern char _end;
|
||||||
static unsigned char *heap = NULL;
|
static unsigned char *heap = NULL;
|
||||||
unsigned char *prev_heap;
|
unsigned char *prev_heap;
|
||||||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||||||
|
(void) x;
|
||||||
if (heap == NULL) heap = (unsigned char *) &_end;
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||||||
prev_heap = heap;
|
prev_heap = heap;
|
||||||
|
if (heap + incr > heap_end) return (void *) -1;
|
||||||
heap += incr;
|
heap += incr;
|
||||||
return prev_heap;
|
return prev_heap;
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,11 @@ void *_sbrk(int incr) {
|
|||||||
extern char _end;
|
extern char _end;
|
||||||
static unsigned char *heap = NULL;
|
static unsigned char *heap = NULL;
|
||||||
unsigned char *prev_heap;
|
unsigned char *prev_heap;
|
||||||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||||||
|
(void) x;
|
||||||
if (heap == NULL) heap = (unsigned char *) &_end;
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||||||
prev_heap = heap;
|
prev_heap = heap;
|
||||||
|
if (heap + incr > heap_end) return (void *) -1;
|
||||||
heap += incr;
|
heap += incr;
|
||||||
return prev_heap;
|
return prev_heap;
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,11 @@ void *_sbrk(int incr) {
|
|||||||
extern char _end;
|
extern char _end;
|
||||||
static unsigned char *heap = NULL;
|
static unsigned char *heap = NULL;
|
||||||
unsigned char *prev_heap;
|
unsigned char *prev_heap;
|
||||||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||||||
|
(void) x;
|
||||||
if (heap == NULL) heap = (unsigned char *) &_end;
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||||||
prev_heap = heap;
|
prev_heap = heap;
|
||||||
|
if (heap + incr > heap_end) return (void *) -1;
|
||||||
heap += incr;
|
heap += incr;
|
||||||
return prev_heap;
|
return prev_heap;
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,11 @@ void *_sbrk(int incr) {
|
|||||||
extern char _end;
|
extern char _end;
|
||||||
static unsigned char *heap = NULL;
|
static unsigned char *heap = NULL;
|
||||||
unsigned char *prev_heap;
|
unsigned char *prev_heap;
|
||||||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||||||
|
(void) x;
|
||||||
if (heap == NULL) heap = (unsigned char *) &_end;
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||||||
prev_heap = heap;
|
prev_heap = heap;
|
||||||
|
if (heap + incr > heap_end) return (void *) -1;
|
||||||
heap += incr;
|
heap += incr;
|
||||||
return prev_heap;
|
return prev_heap;
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,11 @@ void *_sbrk(int incr) {
|
|||||||
extern char _end;
|
extern char _end;
|
||||||
static unsigned char *heap = NULL;
|
static unsigned char *heap = NULL;
|
||||||
unsigned char *prev_heap;
|
unsigned char *prev_heap;
|
||||||
|
unsigned char x = 0, *heap_end = (unsigned char *)((size_t) &x - 512);
|
||||||
|
(void) x;
|
||||||
if (heap == NULL) heap = (unsigned char *) &_end;
|
if (heap == NULL) heap = (unsigned char *) &_end;
|
||||||
prev_heap = heap;
|
prev_heap = heap;
|
||||||
|
if (heap + incr > heap_end) return (void *) -1;
|
||||||
heap += incr;
|
heap += incr;
|
||||||
return prev_heap;
|
return prev_heap;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user