binfmt_flat mmap flag fix
Subsystems (2)
PATCH 1/1 binfmt_flat mmap flag fix
Because flag of mmap is not handed really, do not work normally.
Signed-off-by Yoshinori Sato <[email protected]>
fs/binfmt_flat.c +3 -3
@@ -520,7 +520,7 @@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 ,0 );up_write (¤t->mm->mmap_sem);if (!textpos || textpos >= (unsigned long )-4096 ) {if (!textpos)
@@ -532,7 +532,7 @@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_PRIVATE ,0 );up_write (¤t->mm->mmap_sem);if (realdatastart ==0 || realdatastart >= (unsigned long )-4096 ) {
@@ -574,7 +574,7 @@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_PRIVATE ,0 );up_write (¤t->mm->mmap_sem);if (!textpos || textpos >= (unsigned long )-4096 ) {if (!textpos)
Signature · 2 lines
Yoshinori Sato at CodeFest Japan 2005 <[email protected]>