Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.3.49 /fs/binfmt_elf.c

Filename:/fs/binfmt_elf.c
Lines Added:12
Lines Deleted:1
Also changed in: (Previous) 2.3.48  2.3.46  2.3.43  2.3.39  2.3.29  2.3.25 
(Following) 2.3.50  2.3.99-pre1  2.3.99-pre2  2.3.99-pre3  2.3.99-pre6  2.3.99-pre7 

Location
[  2.3.49
  [  fs
     o  binfmt_elf.c

Patch

diff -u --recursive --new-file v2.3.48/linux/fs/binfmt_elf.c linux/fs/binfmt_elf.c
--- v2.3.48/linux/fs/binfmt_elf.c   Sat Feb 26 22:31:51 2000
+++ linux/fs/binfmt_elf.c   Tue Feb 29 11:13:27 2000
@@ -30,6 +30,7 @@
 #include <linux/elfcore.h>
 #include <linux/init.h>
 #include <linux/highuid.h>
+#include <linux/smp_lock.h>
 
 #include <asm/uaccess.h>
 #include <asm/pgalloc.h>
@@ -496,13 +497,19 @@
             unsigned long old_pers = current->personality;
                
             current->personality = PER_SVR4;
+            lock_kernel();
             interpreter_dentry = open_namei(elf_interpreter,
                         0, 0);
+            unlock_kernel();
             current->personality = old_pers;
          } else
-#endif               
+#endif
+         {
+            lock_kernel();
             interpreter_dentry = open_namei(elf_interpreter,
                         0, 0);
+            unlock_kernel();
+         }
          set_fs(old_fs);
          retval = PTR_ERR(interpreter_dentry);
          if (IS_ERR(interpreter_dentry))
@@ -670,7 +677,9 @@
                       interpreter_dentry,
                       &interp_load_addr);
 
+      lock_kernel();
       dput(interpreter_dentry);
+      unlock_kernel();
       kfree(elf_interpreter);
 
       if (elf_entry == ~0UL) {
@@ -767,7 +776,9 @@
 
    /* error cleanup */
 out_free_dentry:
+   lock_kernel();
    dput(interpreter_dentry);
+   unlock_kernel();
 out_free_interp:
    if (elf_interpreter)
       kfree(elf_interpreter);


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.