[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 |
Hi,
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?
Ajay
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Problem while zeroing out after bss,
Ajay Jain <=