execve error

Rohith itsnotrohit at gmail.com
Fri Apr 24 04:15:41 EDT 2015


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 <
avinash.sridharan at gmail.com> 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 <kernelnewbies-request at kernelnewbies.org>
> wrote:
>
>> Send Kernelnewbies mailing list submissions to
>>         kernelnewbies at kernelnewbies.org
>>
>> 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
>>         kernelnewbies-request at kernelnewbies.org
>>
>> You can reach the person managing the list at
>>         kernelnewbies-owner at kernelnewbies.org
>>
>> 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 <laitianli2015 at outlook.com>
>> Subject: How can I fetch the files likely directory
>>         /usr/src/kernels/<kernel        version> from kernel source tree?
>> To: kernelnewbies at kernelnewbies.org
>> Message-ID: <BLU436-SMTP88F0913B3897AE70E7C950A9ED0 at phx.gbl>
>> 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 <itsnotrohit at gmail.com>
>> Subject: execve error
>> To: kernelnewbies at kernelnewbies.org
>> Message-ID:
>>         <
>> CABsTBT6S0vRNFo0bxxBcWDx3k8JMpzbYyKbbUB8oxT-W+8Tr-A at 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
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>>
>> End of Kernelnewbies Digest, Vol 53, Issue 48
>> *********************************************
>>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150424/edc93478/attachment.html 


More information about the Kernelnewbies mailing list