fs/binfmt_flat.c do_mmap patch against 2.6.12-rc3-mm3 : do_mmap flag should
not to be 0 for correct operation.
Signed-off-by : Hyok S. Choi <[email protected]>
Index: linux-2.6.12-rc3-mm3/fs/binfmt_flat.c
================================================================
--- linux-2.6.12-rc3-mm3/fs/binfmt_flat.c 2005-05-06
09:53:27.000000000 +0900
+++ linux-2.6.12-rc3-mm3-hsc0/fs/binfmt_flat.c 2005-05-06
12:05:11.000000000 +0900
@@ -292,7 +292,7 @@
kfree(buf);
out_free:
kfree(strm.workspace);
-out:
+
return retval;
}
@@ -505,7 +505,7 @@
/*
* calculate the extra space we need to map in
*/
- extra = max(bss_len + stack_len, relocs * sizeof(unsigned long));
+ extra = max(bss_len + stack_len, (unsigned long)relocs *
sizeof(unsigned long));
/*
* there are a couple of cases here, the separate code/data
@@ -520,7 +520,8 @@
DBG_FLT("BINFMT_FLAT: ROM mapping of file (we hope)\n");
down_write(¤t->mm->mmap_sem);
- textpos = do_mmap(bprm->file, 0, text_len,
PROT_READ|PROT_EXEC, 0, 0);
+ textpos = do_mmap(bprm->file, 0, text_len,
PROT_READ|PROT_EXEC,
+ MAP_SHARED | MAP_DENYWRITE | MAP_EXECUTABLE, 0);
up_write(¤t->mm->mmap_sem);
if (!textpos || textpos >= (unsigned long) -4096) {
if (!textpos)
@@ -532,7 +533,8 @@
down_write(¤t->mm->mmap_sem);
realdatastart = do_mmap(0, 0, data_len + extra +
MAX_SHARED_LIBS * sizeof(unsigned long),
- PROT_READ|PROT_WRITE|PROT_EXEC, 0, 0);
+ PROT_READ|PROT_WRITE|PROT_EXEC,
+ MAP_SHARED, 0);
up_write(¤t->mm->mmap_sem);
if (realdatastart == 0 || realdatastart >= (unsigned
long)-4096) {
@@ -574,7 +576,8 @@
down_write(¤t->mm->mmap_sem);
textpos = do_mmap(0, 0, text_len + data_len + extra +
MAX_SHARED_LIBS * sizeof(unsigned
long),
- PROT_READ | PROT_EXEC | PROT_WRITE, 0, 0);
+ PROT_READ | PROT_EXEC | PROT_WRITE,
+ MAP_SHARED, 0);
up_write(¤t->mm->mmap_sem);
if (!textpos || textpos >= (unsigned long) -4096) {
if (!textpos)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]