|
Lines 50-56
static int set_brk(unsigned long start,
Link Here
|
| 50 |
start = PAGE_ALIGN(start); |
50 |
start = PAGE_ALIGN(start); |
| 51 |
end = PAGE_ALIGN(end); |
51 |
end = PAGE_ALIGN(end); |
| 52 |
if (end > start) { |
52 |
if (end > start) { |
| 53 |
unsigned long addr = do_brk(start, end - start); |
53 |
unsigned long addr = do_brk_unlocked(start, end - start); |
| 54 |
if (BAD_ADDR(addr)) |
54 |
if (BAD_ADDR(addr)) |
| 55 |
return addr; |
55 |
return addr; |
| 56 |
} |
56 |
} |
|
Lines 323-332
static int load_aout_binary(struct linux
Link Here
|
| 323 |
loff_t pos = fd_offset; |
323 |
loff_t pos = fd_offset; |
| 324 |
/* Fuck me plenty... */ |
324 |
/* Fuck me plenty... */ |
| 325 |
/* <AOL></AOL> */ |
325 |
/* <AOL></AOL> */ |
| 326 |
error = do_brk(N_TXTADDR(ex), ex.a_text); |
326 |
error = do_brk_unlocked(N_TXTADDR(ex), ex.a_text); |
| 327 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
327 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
| 328 |
ex.a_text, &pos); |
328 |
ex.a_text, &pos); |
| 329 |
error = do_brk(N_DATADDR(ex), ex.a_data); |
329 |
error = do_brk_unlocked(N_DATADDR(ex), ex.a_data); |
| 330 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
330 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
| 331 |
ex.a_data, &pos); |
331 |
ex.a_data, &pos); |
| 332 |
goto beyond_if; |
332 |
goto beyond_if; |
|
Lines 347-353
static int load_aout_binary(struct linux
Link Here
|
| 347 |
map_size = ex.a_text+ex.a_data; |
347 |
map_size = ex.a_text+ex.a_data; |
| 348 |
#endif |
348 |
#endif |
| 349 |
|
349 |
|
| 350 |
error = do_brk(text_addr & PAGE_MASK, map_size); |
350 |
error = do_brk_unlocked(text_addr & PAGE_MASK, map_size); |
| 351 |
if (error != (text_addr & PAGE_MASK)) { |
351 |
if (error != (text_addr & PAGE_MASK)) { |
| 352 |
send_sig(SIGKILL, current, 0); |
352 |
send_sig(SIGKILL, current, 0); |
| 353 |
return error; |
353 |
return error; |
|
Lines 382-388
static int load_aout_binary(struct linux
Link Here
|
| 382 |
|
382 |
|
| 383 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
383 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
| 384 |
loff_t pos = fd_offset; |
384 |
loff_t pos = fd_offset; |
| 385 |
do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); |
385 |
do_brk_unlocked(N_TXTADDR(ex), ex.a_text+ex.a_data); |
| 386 |
bprm->file->f_op->read(bprm->file, |
386 |
bprm->file->f_op->read(bprm->file, |
| 387 |
(char __user *)N_TXTADDR(ex), |
387 |
(char __user *)N_TXTADDR(ex), |
| 388 |
ex.a_text+ex.a_data, &pos); |
388 |
ex.a_text+ex.a_data, &pos); |
|
Lines 488-494
static int load_aout_library(struct file
Link Here
|
| 488 |
error_time = jiffies; |
488 |
error_time = jiffies; |
| 489 |
} |
489 |
} |
| 490 |
|
490 |
|
| 491 |
do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
491 |
do_brk_unlocked(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
| 492 |
|
492 |
|
| 493 |
file->f_op->read(file, (char __user *)start_addr, |
493 |
file->f_op->read(file, (char __user *)start_addr, |
| 494 |
ex.a_text + ex.a_data, &pos); |
494 |
ex.a_text + ex.a_data, &pos); |
|
Lines 512-518
static int load_aout_library(struct file
Link Here
|
| 512 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
512 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
| 513 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
513 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
| 514 |
if (bss > len) { |
514 |
if (bss > len) { |
| 515 |
error = do_brk(start_addr + len, bss - len); |
515 |
error = do_brk_unlocked(start_addr + len, bss - len); |
| 516 |
retval = error; |
516 |
retval = error; |
| 517 |
if (error != start_addr + len) |
517 |
if (error != start_addr + len) |
| 518 |
goto out; |
518 |
goto out; |