|
Lines 46-52
static int set_brk(unsigned long start,
Link Here
|
| 46 |
start = PAGE_ALIGN(start); |
46 |
start = PAGE_ALIGN(start); |
| 47 |
end = PAGE_ALIGN(end); |
47 |
end = PAGE_ALIGN(end); |
| 48 |
if (end > start) { |
48 |
if (end > start) { |
| 49 |
unsigned long addr = do_brk(start, end - start); |
49 |
unsigned long addr = do_brk_unlocked(start, end - start); |
| 50 |
if (BAD_ADDR(addr)) |
50 |
if (BAD_ADDR(addr)) |
| 51 |
return addr; |
51 |
return addr; |
| 52 |
} |
52 |
} |
|
Lines 317-326
static int load_aout_binary(struct linux
Link Here
|
| 317 |
loff_t pos = fd_offset; |
317 |
loff_t pos = fd_offset; |
| 318 |
/* Fuck me plenty... */ |
318 |
/* Fuck me plenty... */ |
| 319 |
/* <AOL></AOL> */ |
319 |
/* <AOL></AOL> */ |
| 320 |
error = do_brk(N_TXTADDR(ex), ex.a_text); |
320 |
error = do_brk_unlocked(N_TXTADDR(ex), ex.a_text); |
| 321 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
321 |
bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex), |
| 322 |
ex.a_text, &pos); |
322 |
ex.a_text, &pos); |
| 323 |
error = do_brk(N_DATADDR(ex), ex.a_data); |
323 |
error = do_brk_unlocked(N_DATADDR(ex), ex.a_data); |
| 324 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
324 |
bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex), |
| 325 |
ex.a_data, &pos); |
325 |
ex.a_data, &pos); |
| 326 |
goto beyond_if; |
326 |
goto beyond_if; |
|
Lines 341-347
static int load_aout_binary(struct linux
Link Here
|
| 341 |
map_size = ex.a_text+ex.a_data; |
341 |
map_size = ex.a_text+ex.a_data; |
| 342 |
#endif |
342 |
#endif |
| 343 |
|
343 |
|
| 344 |
error = do_brk(text_addr & PAGE_MASK, map_size); |
344 |
error = do_brk_unlocked(text_addr & PAGE_MASK, map_size); |
| 345 |
if (error != (text_addr & PAGE_MASK)) { |
345 |
if (error != (text_addr & PAGE_MASK)) { |
| 346 |
send_sig(SIGKILL, current, 0); |
346 |
send_sig(SIGKILL, current, 0); |
| 347 |
return error; |
347 |
return error; |
|
Lines 375-381
static int load_aout_binary(struct linux
Link Here
|
| 375 |
|
375 |
|
| 376 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
376 |
if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { |
| 377 |
loff_t pos = fd_offset; |
377 |
loff_t pos = fd_offset; |
| 378 |
do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); |
378 |
do_brk_unlocked(N_TXTADDR(ex), ex.a_text+ex.a_data); |
| 379 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
379 |
bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex), |
| 380 |
ex.a_text+ex.a_data, &pos); |
380 |
ex.a_text+ex.a_data, &pos); |
| 381 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
381 |
flush_icache_range((unsigned long) N_TXTADDR(ex), |
|
Lines 476-482
static int load_aout_library(struct file
Link Here
|
| 476 |
error_time = jiffies; |
476 |
error_time = jiffies; |
| 477 |
} |
477 |
} |
| 478 |
|
478 |
|
| 479 |
do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
479 |
do_brk_unlocked(start_addr, ex.a_text + ex.a_data + ex.a_bss); |
| 480 |
|
480 |
|
| 481 |
file->f_op->read(file, (char *)start_addr, |
481 |
file->f_op->read(file, (char *)start_addr, |
| 482 |
ex.a_text + ex.a_data, &pos); |
482 |
ex.a_text + ex.a_data, &pos); |
|
Lines 500-506
static int load_aout_library(struct file
Link Here
|
| 500 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
500 |
len = PAGE_ALIGN(ex.a_text + ex.a_data); |
| 501 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
501 |
bss = ex.a_text + ex.a_data + ex.a_bss; |
| 502 |
if (bss > len) { |
502 |
if (bss > len) { |
| 503 |
error = do_brk(start_addr + len, bss - len); |
503 |
error = do_brk_unlocked(start_addr + len, bss - len); |
| 504 |
retval = error; |
504 |
retval = error; |
| 505 |
if (error != start_addr + len) |
505 |
if (error != start_addr + len) |
| 506 |
goto out; |
506 |
goto out; |