|
@@ -71,6 +71,9 @@
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/unistd.h>
|
|
|
|
|
|
+/* Hardening for Spectre-v1 */
|
|
|
+#include <linux/nospec.h>
|
|
|
+
|
|
|
#include "uid16.h"
|
|
|
|
|
|
#ifndef SET_UNALIGN_CTL
|
|
@@ -1453,6 +1456,7 @@ SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
|
|
|
if (resource >= RLIM_NLIMITS)
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ resource = array_index_nospec(resource, RLIM_NLIMITS);
|
|
|
task_lock(current->group_leader);
|
|
|
x = current->signal->rlim[resource];
|
|
|
task_unlock(current->group_leader);
|
|
@@ -1472,6 +1476,7 @@ COMPAT_SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
|
|
|
if (resource >= RLIM_NLIMITS)
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ resource = array_index_nospec(resource, RLIM_NLIMITS);
|
|
|
task_lock(current->group_leader);
|
|
|
r = current->signal->rlim[resource];
|
|
|
task_unlock(current->group_leader);
|