[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problem while zeroing out after bss

From: Ajay Jain
Subject: Problem while zeroing out after bss
Date: Tue, 28 Mar 2006 14:04:32 +0530


I am facing a problem while loading /sbin/init. The linux kernel in question
is 2.6.14, gcc is 3.4.1 and glibc is 2.3.3. I see that I am getting the
error in the function load_elf_binary. I see "sending efault".

if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
        printk ("sending efault \n");
      send_sig(SIGSEGV, current, 0);
      retval = -EFAULT; /* Nobody gets to see this, but.. */
      goto out_free_dentry;

Going further to padzero (elf_bss), I find that __arch_clear_user is giving
me errors.

if (access_ok(VERIFY_WRITE, to, n))     {
        printk ("access ok [%x] [%d] \n", to, n);
      n = __arch_clear_user(to, n);
      printk ("exit, arch clear user [%d]\n", n);

The values are:

access ok [764d4] [2860]
exit, arch clear user [2860].

Effectively arch_clear_user does not clear any bytes, on a successful exit
it should have returned 0. I am not too sure, but the address "764d4" should
point to the /sbin/init. On taking an objdump of /sbin/init I see that this
address points to the bss section.

Disassembly of section .bss:
000764d4 <.bss>:

Any comments on this?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]