diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-05-29 15:10:07 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-05-29 15:10:07 +0200 |
commit | be64a9bacb7584f6daf5464d695c1114ad0db5a6 (patch) | |
tree | 9a2f73ac99da950f239eb43d2321627ad8b1e85a /debian | |
parent | 82ecb836995c5abd172739d07182cf0089058728 (diff) |
add patch series
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/fix0001-kern-fix-argument-handling.patch | 61 | ||||
-rw-r--r-- | debian/patches/series | 1 |
2 files changed, 62 insertions, 0 deletions
diff --git a/debian/patches/fix0001-kern-fix-argument-handling.patch b/debian/patches/fix0001-kern-fix-argument-handling.patch new file mode 100644 index 0000000..b505260 --- /dev/null +++ b/debian/patches/fix0001-kern-fix-argument-handling.patch @@ -0,0 +1,61 @@ +From 6da39e9e955d8eb5420349de7b124857e131044c Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Fri, 29 May 2015 14:44:39 +0200 +Subject: [PATCH gnumach] kern: fix argument handling + +Previously, the processor argument was not checked. If called with a +non-processor argument (like a task), `processor' is set to NULL, +triggering a page fault. Likewise for the other functions. + +* kern/processor.c (processor_get_assignment): Fix argument handling. +* kern/task.c (task_get_assignment): Likewise. +* kern/thread.c (thread_get_assignment): Likewise. +--- + kern/processor.c | 2 ++ + kern/task.c | 3 +++ + kern/thread.c | 2 ++ + 3 files changed, 7 insertions(+) + +diff --git a/kern/processor.c b/kern/processor.c +index 865c324..48e9273 100644 +--- a/kern/processor.c ++++ b/kern/processor.c +@@ -657,6 +657,8 @@ processor_get_assignment( + processor_set_t *pset) + { + int state; ++ if (processor == PROCESSOR_NULL) ++ return KERN_INVALID_ARGUMENT; + + state = processor->state; + if (state == PROCESSOR_SHUTDOWN || state == PROCESSOR_OFF_LINE) +diff --git a/kern/task.c b/kern/task.c +index dcd5371..b384347 100644 +--- a/kern/task.c ++++ b/kern/task.c +@@ -1063,6 +1063,9 @@ kern_return_t task_get_assignment( + task_t task, + processor_set_t *pset) + { ++ if (task == TASK_NULL) ++ return KERN_INVALID_ARGUMENT; ++ + if (!task->active) + return KERN_FAILURE; + +diff --git a/kern/thread.c b/kern/thread.c +index f52c95b..5af0cd5 100644 +--- a/kern/thread.c ++++ b/kern/thread.c +@@ -1974,6 +1974,8 @@ kern_return_t thread_get_assignment( + thread_t thread, + processor_set_t *pset) + { ++ if (thread == THREAD_NULL) ++ return KERN_INVALID_ARGUMENT; + *pset = thread->processor_set; + pset_reference(*pset); + return KERN_SUCCESS; +-- +2.1.4 + diff --git a/debian/patches/series b/debian/patches/series index 186db4c..6e937be 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -15,3 +15,4 @@ vm-cache-policy0003-vm-evict-clean-pages-first.patch strict-aliasing0001-kern-avoid-breaking-the-strict-aliasing-rules.patch strict-aliasing0002-i386-avoid-breaking-the-strict-aliasing-rules.patch strict-aliasing0003-Restrict-fno-strict-aliasing-to-the-Linux-drivers.patch +fix0001-kern-fix-argument-handling.patch |