Support utimensat_time64 on 32bit architectures (#303)

This is the Y2038 function for utimensat and AFAICT the only one we care about.
There are a few other ones that are referred to by the kompac extension
but a kernel with the Y2038 syscalls are not going to be old enough to need those...
This commit is contained in:
Yichao Yu 2021-11-05 18:25:40 -04:00 committed by GitHub
parent 53191c518e
commit 1a9609dc6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 5 additions and 0 deletions

View File

@ -396,6 +396,7 @@ int translate_syscall_enter(Tracee *tracee)
case PR_newfstatat:
case PR_statx:
case PR_utimensat:
case PR_utimensat_time64:
case PR_name_to_handle_at:
dirfd = peek_reg(tracee, CURRENT, SYSARG_1);

View File

@ -409,6 +409,7 @@ static FilteredSysnum proot_sysnums[] = {
{ PR_uselib, 0 },
{ PR_utime, 0 },
{ PR_utimensat, 0 },
{ PR_utimensat_time64, 0 },
{ PR_utimes, 0 },
{ PR_wait4, FILTER_SYSEXIT },
{ PR_waitpid, FILTER_SYSEXIT },

View File

@ -340,4 +340,5 @@ static const Sysnum sysnums_arm[] = {
[ 381 ] = PR_sched_getattr,
[ 382 ] = PR_renameat2,
[ 397 ] = PR_statx,
[ 412 ] = PR_utimensat_time64,
};

View File

@ -352,4 +352,5 @@ static const Sysnum sysnums_i386[] = {
[ 352 ] = PR_sched_getattr,
[ 353 ] = PR_renameat2,
[ 383 ] = PR_statx,
[ 412 ] = PR_utimensat_time64,
};

View File

@ -429,3 +429,4 @@ SYSNUM(x32_vmsplice)
SYSNUM(x32_waitid)
SYSNUM(x32_writev)
SYSNUM(statx)
SYSNUM(utimensat_time64)