madvise: support MADV_DONTDUMP/DODUMP

refs #661
This commit is contained in:
Tomoki Shirasawa
2017-09-26 14:21:40 +09:00
parent 9c847c0a8f
commit a2fbe99b60
3 changed files with 21 additions and 2 deletions

View File

@@ -4386,8 +4386,6 @@ SYSCALL_DECLARE(madvise)
case MADV_UNMERGEABLE:
case MADV_HUGEPAGE:
case MADV_NOHUGEPAGE:
case MADV_DONTDUMP:
case MADV_DODUMP:
error = -EINVAL;
break;
@@ -4399,6 +4397,8 @@ SYSCALL_DECLARE(madvise)
case MADV_DONTFORK:
case MADV_DOFORK:
case MADV_REMOVE:
case MADV_DONTDUMP:
case MADV_DODUMP:
break;
case MADV_HWPOISON:
@@ -4511,6 +4511,22 @@ SYSCALL_DECLARE(madvise)
goto out;
}
}
if(advice == MADV_DONTDUMP){
error = change_attr_process_memory_range(thread->vm, start, end,
set_memory_range_flag,
VR_DONTDUMP);
if(error){
goto out;
}
}
if(advice == MADV_DODUMP){
error = change_attr_process_memory_range(thread->vm, start, end,
clear_memory_range_flag,
VR_DONTDUMP);
if(error){
goto out;
}
}
if(advice == MADV_DONTFORK ||
advice == MADV_DOFORK){
error = syscall_generic_forwarding(__NR_madvise, ctx);