arg_t _execve(void)
{
/* We aren't re-entrant where this matters */
- staticfast uint8_t hdr[16];
+ uint8_t hdr[16];
staticfast inoptr ino;
char **nargv; /* In user space */
char **nenvp; /* In user space */
goto nogood;
}
- /* Core dump and ptrace permission logic */
-#ifdef CONFIG_LEVEL_2
- /* Q: should uid == 0 mean we always allow core */
- if ((!(getperm(ino) & OTH_RD)) ||
- (ino->c_node.i_mode & (SET_UID | SET_GID)))
- udata.u_flags |= U_FLAG_NOCORE;
- else
- udata.u_flags &= ~U_FLAG_NOCORE;
-#endif
-
setftime(ino, A_TIME);
udata.u_offset = 0;
goto nogood3;
/* From this point on we are commmited to the exec() completing */
+
+ /* Core dump and ptrace permission logic */
+#ifdef CONFIG_LEVEL_2
+ /* Q: should uid == 0 mean we always allow core */
+ if ((!(getperm(ino) & OTH_RD)) ||
+ (ino->c_node.i_mode & (SET_UID | SET_GID)))
+ udata.u_flags |= U_FLAG_NOCORE;
+ else
+ udata.u_flags &= ~U_FLAG_NOCORE;
+#endif
udata.u_top = top;
udata.u_ptab->p_top = top;