diff options
author | sobomax <sobomax@FreeBSD.org> | 2005-01-29 23:47:36 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2005-01-29 23:47:36 +0000 |
commit | bc473990f5676e7da50f9edf4fca85fca0948cbd (patch) | |
tree | 20d0eae4d1d076df114eba04a0d05515faf1773b /sys/kern/kern_exec.c | |
parent | 443b386117626ca30b48fbe3e3deadd09cfd9f5a (diff) | |
download | FreeBSD-src-bc473990f5676e7da50f9edf4fca85fca0948cbd.zip FreeBSD-src-bc473990f5676e7da50f9edf4fca85fca0948cbd.tar.gz |
Fix small non-conformance introduced in the previous commit: execve() is
expected to return ENAMETOOLONG, not E2BIG if first argument doesn't
fit into {PATH_MAX} bytes.
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r-- | sys/kern/kern_exec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 3998726..58a9138 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -629,6 +629,8 @@ interpret: * to locking the proc lock. */ textvp = p->p_textvp; + if (textvp) + VN_KNOTE_LOCKED(textvp, NOTE_STOPEXEC | p->p_pid); p->p_textvp = ndp->ni_vp; /* @@ -636,6 +638,7 @@ interpret: * as we're now a bona fide freshly-execed process. */ KNOTE_LOCKED(&p->p_klist, NOTE_EXEC); + VN_KNOTE_LOCKED(p->p_textvp, NOTE_STARTEXEC | p->p_pid); p->p_flag &= ~P_INEXEC; /* @@ -948,11 +951,8 @@ exec_copyin_args(struct image_args *args, char *fname, error = (segflg == UIO_SYSSPACE) ? copystr(fname, args->fname, PATH_MAX, &length) : copyinstr(fname, args->fname, PATH_MAX, &length); - if (error != 0) { - if (error == ENAMETOOLONG) - return (E2BIG); + if (error != 0) return (error); - } /* * extract arguments first |