Yes. The program works fine all the times except when the process stack is allocated at the end of CONFIG_TASK_SIZE. If I disable the stack randomization then it fails every time since the process stack is always allocated at the end of the CONFIG_TASK_SIZE. echo 0 > /proc/sys/kernel/randomize_va_space
So I believe the current process and the execv code both seem to work on the last page of the user stack - and execv() corrupting the process stack and return EFAULT.. Thanks, rohith On Thu, Apr 23, 2015 at 11:26 PM, Avinash Sridharan < [email protected]> wrote: > Are you passing the arguments to execve correctly? Usually the EFAULT > error occurs, cause the argument format to execve is not correct and the > kernel is unable to interpret the executable that needs to be launched, or > the parameters that need to be passed to the new process. > > Just an example: > > http://www.linuxquestions.org/questions/programming-9/execve-alwayse-produces-efault-333778/ > > > > On Thu, Apr 23, 2015 at 9:00 AM <[email protected]> > wrote: > >> Send Kernelnewbies mailing list submissions to >> [email protected] >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> or, via email, send a message with subject or body 'help' to >> [email protected] >> >> You can reach the person managing the list at >> [email protected] >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of Kernelnewbies digest..." >> >> >> Today's Topics: >> >> 1. How can I fetch the files likely directory >> /usr/src/kernels/<kernel version> from kernel source tree? >> (tianlilai) >> 2. execve error (Rohith) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Thu, 23 Apr 2015 17:59:56 +0800 >> From: tianlilai <[email protected]> >> Subject: How can I fetch the files likely directory >> /usr/src/kernels/<kernel version> from kernel source tree? >> To: [email protected] >> Message-ID: <[email protected]> >> Content-Type: text/plain; charset="utf-8"; format=flowed >> >> >> Hi,I have built the kernel source tree and running in PC mechine.Now I >> want to fetch the files likely directory /usr/src/kernels/<kernel >> version> from this kernel source tree.How can I do? Thanks very much! >> >> >> >> >> ------------------------------ >> >> Message: 2 >> Date: Thu, 23 Apr 2015 17:55:22 +0530 >> From: Rohith <[email protected]> >> Subject: execve error >> To: [email protected] >> Message-ID: >> < >> cabstbt6s0vrnfo0bxxbcwdx3k8jmpzbyykbbub8oxt-w+8t...@mail.gmail.com> >> Content-Type: text/plain; charset="utf-8" >> >> >> Hi all, >> >> I'm facing a strange issue with execve. It fails with -EFAULT >> intermittently. I found that whenever it failed the stack allocated to the >> process is in the last page of the CONFIG_TASK_SIZE. >> >> For example, if CONFIG_TASK_SIZE is set to 0x4000_0000, the process would >> fail in execve if the stack happens to be in the page: >> >> 3ffdf000-40000000 rw-p 00000000 00:00 0 [stack] >> >> I tried changing CONFIG_TASK_SIZE=0x30000000 and the process this time >> fails at the end 0x30000000 address. >> >> I also found that the execve seem to use the largest stack address >> (STACK_TOP_MAX, function __bprm_mm_init(), fs/exec.c) while copying >> argv/envp to the new process space. >> >> I don't know how to debug further. I feel that the user process stack >> should never be allocated at the CONFIG_TASK_SIZE? Any idea or suggestion >> on how to debug further, please tell me. >> >> thanks, >> rohit >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: >> http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150423/be80d657/attachment-0001.html >> >> ------------------------------ >> >> _______________________________________________ >> Kernelnewbies mailing list >> [email protected] >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >> >> >> End of Kernelnewbies Digest, Vol 53, Issue 48 >> ********************************************* >> > > _______________________________________________ > Kernelnewbies mailing list > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
