|
Lines 43-55
Link Here
|
| 43 |
.min_coredump = PAGE_SIZE |
43 |
.min_coredump = PAGE_SIZE |
| 44 |
}; |
44 |
}; |
| 45 |
|
45 |
|
| 46 |
static void set_brk(unsigned long start, unsigned long end) |
46 |
#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE) |
|
|
47 |
|
| 48 |
static int set_brk(unsigned long start, unsigned long end) |
| 47 |
{ |
49 |
{ |
| 48 |
start = PAGE_ALIGN(start); |
50 |
start = PAGE_ALIGN(start); |
| 49 |
end = PAGE_ALIGN(end); |
51 |
end = PAGE_ALIGN(end); |
| 50 |
if (end <= start) |
52 |
if (end > start) { |
| 51 |
return; |
53 |
unsigned long addr = do_brk(start, end - start); |
| 52 |
do_brk(start, end - start); |
54 |
if (BAD_ADDR(addr)) |
|
|
55 |
return addr; |
| 56 |
} |
| 57 |
return 0; |
| 53 |
} |
58 |
} |
| 54 |
|
59 |
|
| 55 |
/* |
60 |
/* |
|
Lines 413-419
Link Here
|
| 413 |
beyond_if: |
418 |
beyond_if: |
| 414 |
set_binfmt(&aout_format); |
419 |
set_binfmt(&aout_format); |
| 415 |
|
420 |
|
| 416 |
set_brk(current->mm->start_brk, current->mm->brk); |
421 |
retval = set_brk(current->mm->start_brk, current->mm->brk); |
|
|
422 |
if (retval < 0) { |
| 423 |
send_sig(SIGKILL, current, 0); |
| 424 |
return retval; |
| 425 |
} |
| 417 |
|
426 |
|
| 418 |
retval = setup_arg_pages(bprm, EXSTACK_DEFAULT); |
427 |
retval = setup_arg_pages(bprm, EXSTACK_DEFAULT); |
| 419 |
if (retval < 0) { |
428 |
if (retval < 0) { |