getrlimit, setrlimit: offload to linux when an unknown parameter was specified

refs #660
This commit is contained in:
Tomoki Shirasawa
2015-12-25 15:35:33 +09:00
parent f44ddfa3b3
commit d477096cb0

View File

@@ -3786,8 +3786,9 @@ SYSCALL_DECLARE(setrlimit)
mcresource = rlimits[i + 1]; mcresource = rlimits[i + 1];
break; break;
} }
if(i >= sizeof(rlimits) / sizeof(int)) if(i >= sizeof(rlimits) / sizeof(int)){
return -EINVAL; return syscall_generic_forwarding(__NR_setrlimit, ctx);
}
if(copy_from_user(thread->proc->rlimit + mcresource, rlm, sizeof(struct rlimit))) if(copy_from_user(thread->proc->rlimit + mcresource, rlm, sizeof(struct rlimit)))
return -EFAULT; return -EFAULT;
@@ -3808,8 +3809,9 @@ SYSCALL_DECLARE(getrlimit)
mcresource = rlimits[i + 1]; mcresource = rlimits[i + 1];
break; break;
} }
if(i >= sizeof(rlimits) / sizeof(int)) if(i >= sizeof(rlimits) / sizeof(int)){
return -EINVAL; return syscall_generic_forwarding(__NR_getrlimit, ctx);
}
// TODO: check limit // TODO: check limit
if(copy_to_user(rlm, thread->proc->rlimit + mcresource, sizeof(struct rlimit))) if(copy_to_user(rlm, thread->proc->rlimit + mcresource, sizeof(struct rlimit)))