@@ -7001,6 +7001,28 @@ POST(sys_getrlimitusage)
70017001 }
70027002}
70037003
7004+ // SYS_fchroot 590
7005+ // int fchroot(int fd);
7006+ PRE (sys_fchroot )
7007+ {
7008+ PRINT ("sys_fchroot(%ld)" , ARG1 );
7009+ PRE_REG_READ1 (int , "fchroot" , int , fd );
7010+
7011+ /* Be strict. */
7012+ if (!ML_ (fd_allowed )(ARG1 , "fchroot" , tid , False ))
7013+ SET_STATUS_Failure (VKI_EBADF );
7014+ }
7015+
7016+ // SYS_setcred
7017+ // int setcred(u_int flags, const struct setcred *wcred, size_t size);
7018+ PRE (sys_setcred )
7019+ {
7020+ PRINT ("sys_setcred(%ld, %#" FMT_REGWORD "x, %lu)" , ARG1 , ARG2 , ARG3 );
7021+ PRE_REG_READ3 (int , "setcred" , u_int , flags , const struct setcred * , wcred , size_t , size );
7022+ PRE_MEM_READ ("setcred(wcred)" , ARG2 , sizeof (struct vki_setcred ));
7023+ }
7024+
7025+
70047026#undef PRE
70057027#undef POST
70067028
@@ -7694,6 +7716,9 @@ const SyscallTableEntry ML_(syscall_table)[] = {
76947716 BSDX_ (__NR_kcmp , sys_kcmp ), // 588
76957717 BSDXY (__NR_getrlimitusage , sys_getrlimitusage ), // 589
76967718
7719+ BSDX_ (__NR_fchroot , sys_fchroot ), // 590
7720+ BSDX_ (__NR_setcred , sys_setcred ), // 591
7721+
76977722 BSDX_ (__NR_fake_sigreturn , sys_fake_sigreturn ), // 1000, fake sigreturn
76987723
76997724};
0 commit comments