Added getuid and setuid syscalls to a7out.
This commit is contained in:
+32
-1
@@ -526,19 +526,34 @@ sub cal {
|
|||||||
|
|
||||||
# Syscalls that we can simulate
|
# Syscalls that we can simulate
|
||||||
my %Syscallist = (
|
my %Syscallist = (
|
||||||
|
# 1: save
|
||||||
|
2 => \&sys_getuid,
|
||||||
3 => \&sys_open,
|
3 => \&sys_open,
|
||||||
4 => \&sys_read,
|
4 => \&sys_read,
|
||||||
5 => \&sys_write,
|
5 => \&sys_write,
|
||||||
6 => \&sys_creat,
|
6 => \&sys_creat,
|
||||||
|
# 7 seek
|
||||||
|
# 8 tell
|
||||||
9 => \&sys_close,
|
9 => \&sys_close,
|
||||||
|
# 10 link
|
||||||
11 => \&sys_unlink,
|
11 => \&sys_unlink,
|
||||||
|
12 => \&sys_setuid,
|
||||||
|
# 13 rename
|
||||||
14 => \&sys_exit,
|
14 => \&sys_exit,
|
||||||
|
# 15 time
|
||||||
16 => \&sys_intrp,
|
16 => \&sys_intrp,
|
||||||
17 => \&sys_chdir,
|
17 => \&sys_chdir,
|
||||||
18 => \&sys_chmod,
|
18 => \&sys_chmod,
|
||||||
19 => \&sys_chown,
|
19 => \&sys_chown,
|
||||||
28 => \&sys_rmes,
|
# 20 badcal
|
||||||
|
# 21 syslog
|
||||||
|
# 22 badcal
|
||||||
|
# 23 capt
|
||||||
|
# 24 rele
|
||||||
|
# 25 status
|
||||||
|
# 26 badcal
|
||||||
27 => \&sys_smes,
|
27 => \&sys_smes,
|
||||||
|
28 => \&sys_rmes,
|
||||||
29 => \&sys_fork,
|
29 => \&sys_fork,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -557,6 +572,22 @@ sub sys_exit {
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Getuid system call
|
||||||
|
sub sys_getuid {
|
||||||
|
$AC= $< & MAXINT;
|
||||||
|
dprintf("getuid system call, uid %06o\n", $AC);
|
||||||
|
$PC += 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setuid system call
|
||||||
|
sub sys_setuid {
|
||||||
|
# For now, do nothing
|
||||||
|
dprint("setuid system call\n");
|
||||||
|
$PC += 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
# Intrp system call
|
# Intrp system call
|
||||||
sub sys_intrp {
|
sub sys_intrp {
|
||||||
# For now, do nothing
|
# For now, do nothing
|
||||||
|
|||||||
Reference in New Issue
Block a user