blob: 799ce74280d7c6d81708b2a9a9ffeb0e44befe9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <unistd.h>
extern int __libc_brk(void *end_data_segment);
extern void* __curbrk;
void* __libc_sbrk(ptrdiff_t increment);
void* __libc_sbrk(ptrdiff_t increment) {
void* oldbrk;
if (__curbrk==0)
if (__libc_brk(0) < 0)
return (void*)-1;
if (increment==0)
return __curbrk;
oldbrk=__curbrk;
if (__libc_brk((char*)oldbrk+increment)<0)
return (void*)-1;
return oldbrk;
}
void* sbrk (ptrdiff_t increment) __attribute__((weak,alias("__libc_sbrk")));
|