Home | History | Annotate | Download | only in kern

Lines Matching refs:epp

112  * of the epp is in shell script.  If it is, then set thing up so that
121 exec_script_makecmds(struct lwp *l, struct exec_package *epp)
124 char *hdrstr = epp->ep_hdr;
142 if ((epp->ep_flags & EXEC_INDIR) != 0 ||
143 epp->ep_hdrvalid < EXEC_SCRIPT_MAGICLEN ||
151 hdrlinelen = uimin(epp->ep_hdrvalid, SCRIPT_HDR_SIZE);
204 script_sbits = epp->ep_vap->va_mode & (S_ISUID | S_ISGID);
206 script_uid = epp->ep_vap->va_uid;
207 script_gid = epp->ep_vap->va_gid;
218 vn_lock(epp->ep_vp, LK_SHARED | LK_RETRY);
219 error = VOP_ACCESS(epp->ep_vp, VREAD, l->l_cred);
220 VOP_UNLOCK(epp->ep_vp);
228 KASSERT(!(epp->ep_flags & EXEC_HASFD));
230 if ((error = fd_allocfile(&fp, &epp->ep_fd)) != 0) {
235 epp->ep_flags |= EXEC_HASFD;
238 fp->f_vnode = epp->ep_vp;
240 fd_affix(curproc, fp, epp->ep_fd);
261 if ((epp->ep_flags & EXEC_HASFD) == 0) {
264 error = copystr(epp->ep_kname, tmpsap->fa_arg, MAXPATHLEN,
270 snprintf(tmpsap->fa_arg, MAXPATHLEN, "/dev/fd/%d", epp->ep_fd);
277 scriptvp = epp->ep_vp;
278 epp->ep_vp = NULL;
281 epp->ep_flags |= EXEC_INDIR;
287 epp->ep_hdrvalid = 0;
292 error = check_exec(l, epp, shell_pathbuf, NULL);
297 epp->ep_flags |= EXEC_DESTR;
306 if ((epp->ep_flags & EXEC_HASFD) == 0) {
312 epp->ep_flags |= (EXEC_HASARGL | EXEC_SKIPARG);
313 epp->ep_fa = shellargp;
314 epp->ep_fa_len = shellargp_len;
322 epp->ep_vap->va_mode |= script_sbits;
324 epp->ep_vap->va_uid = script_uid;
326 epp->ep_vap->va_gid = script_gid;
336 if (epp->ep_flags & EXEC_HASFD) {
337 epp->ep_flags &= ~EXEC_HASFD;
338 fd_close(epp->ep_fd);
358 kill_vmcmds(&epp->ep_vmcmds);