STATUS: 81% done
0000 T _gtime compatible
000e T _ftime compatible
00a4 T _stime compatible
00d2 T _setuid compatible
012e T _getuid compatible
0148 T _setgid compatible
019a T _getgid compatible
01b4 T _getpid compatible
01d0 T _setpgrp compatible
0206 T _sync compatible
020e T _nice compatible
027c T _unlink compatible
038e T _chdir compatible
0398 T _chroot compatible
03ac T _chdirec compatible
042a T _chmod compatible
04a0 T _chown compatible
04fa T _ssig not compatible
0612 T _kill not compatible
0722 T _times not compatible
077a T _profil compatible
07ac T _sprofil not existent
0872 T _alarm compatible
08aa T _pause compatible
08bc T _umask compatible
08e0 T _utime compatible
09ee T _nosys compatible
09f8 T _nullsys compatible
09fa T _bpt not existent
0a0a T _utssys not compatible
0b0a T _ulimit compatible
This commit is contained in:
parent
ac5f92dd15
commit
aae7e621be
|
|
@ -488,7 +488,8 @@ utime()
|
||||||
time_t tv[2];
|
time_t tv[2];
|
||||||
|
|
||||||
uap = (struct a *)u.u_ap;
|
uap = (struct a *)u.u_ap;
|
||||||
if (uap->tptr != NULL) {
|
if ((!u.u_segmented && uap->tptr != (time_t *)0x3f000000) ||
|
||||||
|
(u.u_segmented && uap->tptr != NULL)) {
|
||||||
if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) {
|
if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) {
|
||||||
u.u_error = EFAULT;
|
u.u_error = EFAULT;
|
||||||
return;
|
return;
|
||||||
|
|
@ -501,11 +502,13 @@ utime()
|
||||||
if (ip == NULL)
|
if (ip == NULL)
|
||||||
return;
|
return;
|
||||||
if (u.u_uid != ip->i_uid && u.u_uid != 0) {
|
if (u.u_uid != ip->i_uid && u.u_uid != 0) {
|
||||||
if (uap->tptr != NULL)
|
if ((!u.u_segmented && uap->tptr != (time_t *)0x3f000000) ||
|
||||||
|
(u.u_segmented && uap->tptr != NULL)) {
|
||||||
u.u_error = EPERM;
|
u.u_error = EPERM;
|
||||||
else
|
} else {
|
||||||
access(ip, IWRITE);
|
access(ip, IWRITE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!u.u_error) {
|
if (!u.u_error) {
|
||||||
ip->i_flag |= IACC|IUPD|ICHG;
|
ip->i_flag |= IACC|IUPD|ICHG;
|
||||||
iupdat(ip, &tv[0], &tv[1]);
|
iupdat(ip, &tv[0], &tv[1]);
|
||||||
|
|
@ -536,10 +539,16 @@ utssys()
|
||||||
int mv;
|
int mv;
|
||||||
int type;
|
int type;
|
||||||
} *uap;
|
} *uap;
|
||||||
|
register struct mount *mp;
|
||||||
|
register struct filsys *fp;
|
||||||
|
extern int Nmount;
|
||||||
|
|
||||||
|
/* variable declarations missing probably used for case 2 */
|
||||||
|
|
||||||
uap = (struct a *)u.u_ap;
|
uap = (struct a *)u.u_ap;
|
||||||
switch(uap->type) {
|
switch(uap->type) {
|
||||||
|
|
||||||
|
/* case 0 should work - case 2 is not compatible */
|
||||||
case 0: /* uname */
|
case 0: /* uname */
|
||||||
if (copyout(&utsname, uap->cbuf, sizeof(struct utsname)))
|
if (copyout(&utsname, uap->cbuf, sizeof(struct utsname)))
|
||||||
u.u_error = EFAULT;
|
u.u_error = EFAULT;
|
||||||
|
|
@ -548,12 +557,10 @@ case 0: /* uname */
|
||||||
/* case 1 was umask */
|
/* case 1 was umask */
|
||||||
|
|
||||||
case 2: /* ustat */
|
case 2: /* ustat */
|
||||||
for(i=0; i<NMOUNT; i++) {
|
for(i=0; i<Nmount; i++) {
|
||||||
register struct mount *mp;
|
|
||||||
|
|
||||||
mp = &mount[i];
|
mp = &mount[i];
|
||||||
if(mp->m_flags == MINUSE && mp->m_dev==uap->mv) {
|
if(mp->m_flags == MINUSE && mp->m_dev==uap->mv) {
|
||||||
register struct filsys *fp;
|
|
||||||
|
|
||||||
fp = mp->m_bufp->b_un.b_filsys;
|
fp = mp->m_bufp->b_un.b_filsys;
|
||||||
if(copyout(&fp->s_tfree, uap->cbuf, 18))
|
if(copyout(&fp->s_tfree, uap->cbuf, 18))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue