execve error

Rohith itsnotrohit at gmail.com
Thu Apr 23 08:25:22 EDT 2015


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.html 


More information about the Kernelnewbies mailing list