version 1.80.10.1, 2019/06/10 22:07:01 |
version 1.80.10.2, 2020/04/08 14:08:01 |
Line 624 netbsd32___fhstat50(struct lwp *l, const |
|
Line 624 netbsd32___fhstat50(struct lwp *l, const |
|
error = do_fhstat(l, SCARG_P32(uap, fhp), SCARG(uap, fh_size), &sb); |
error = do_fhstat(l, SCARG_P32(uap, fhp), SCARG(uap, fh_size), &sb); |
if (error == 0) { |
if (error == 0) { |
netbsd32_from_stat(&sb, &sb32); |
netbsd32_from_stat(&sb, &sb32); |
error = copyout(&sb32, SCARG_P32(uap, sb), sizeof(sb)); |
error = copyout(&sb32, SCARG_P32(uap, sb), sizeof(sb32)); |
} |
} |
return error; |
return error; |
} |
} |
Line 734 netbsd32___getcwd(struct lwp *l, const s |
|
Line 734 netbsd32___getcwd(struct lwp *l, const s |
|
syscallarg(char *) bufp; |
syscallarg(char *) bufp; |
syscallarg(size_t) length; |
syscallarg(size_t) length; |
} */ |
} */ |
struct proc *p = l->l_proc; |
|
int error; |
int error; |
char *path; |
char *path; |
char *bp, *bend; |
char *bp, *bend; |
int len = (int)SCARG(uap, length); |
int len = (int)SCARG(uap, length); |
int lenused; |
int lenused; |
struct cwdinfo *cwdi; |
struct vnode *dvp; |
|
|
if (len > MAXPATHLEN*4) |
if (len > MAXPATHLEN*4) |
len = MAXPATHLEN*4; |
len = MAXPATHLEN*4; |
Line 758 netbsd32___getcwd(struct lwp *l, const s |
|
Line 757 netbsd32___getcwd(struct lwp *l, const s |
|
* limit it to N/2 vnodes for an N byte buffer. |
* limit it to N/2 vnodes for an N byte buffer. |
*/ |
*/ |
#define GETCWD_CHECK_ACCESS 0x0001 |
#define GETCWD_CHECK_ACCESS 0x0001 |
cwdi = p->p_cwdi; |
dvp = cwdcdir(); |
rw_enter(&cwdi->cwdi_lock, RW_READER); |
error = getcwd_common (dvp, NULL, &bp, path, len/2, |
error = getcwd_common (cwdi->cwdi_cdir, NULL, &bp, path, len/2, |
|
GETCWD_CHECK_ACCESS, l); |
GETCWD_CHECK_ACCESS, l); |
rw_exit(&cwdi->cwdi_lock); |
vrele(dvp); |
|
|
if (error) |
if (error) |
goto out; |
goto out; |