|
@@ -54,7 +54,7 @@ extern int cap_inode_removexattr(struct dentry *dentry, char *name);
|
|
|
extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags);
|
|
|
extern void cap_task_reparent_to_init (struct task_struct *p);
|
|
|
extern int cap_syslog (int type);
|
|
|
-extern int cap_vm_enough_memory (long pages);
|
|
|
+extern int cap_vm_enough_memory (struct mm_struct *mm, long pages);
|
|
|
|
|
|
struct msghdr;
|
|
|
struct sk_buff;
|
|
@@ -1125,6 +1125,7 @@ struct request_sock;
|
|
|
* Return 0 if permission is granted.
|
|
|
* @vm_enough_memory:
|
|
|
* Check permissions for allocating a new virtual mapping.
|
|
|
+ * @mm contains the mm struct it is being added to.
|
|
|
* @pages contains the number of pages.
|
|
|
* Return 0 if permission is granted.
|
|
|
*
|
|
@@ -1169,7 +1170,7 @@ struct security_operations {
|
|
|
int (*quota_on) (struct dentry * dentry);
|
|
|
int (*syslog) (int type);
|
|
|
int (*settime) (struct timespec *ts, struct timezone *tz);
|
|
|
- int (*vm_enough_memory) (long pages);
|
|
|
+ int (*vm_enough_memory) (struct mm_struct *mm, long pages);
|
|
|
|
|
|
int (*bprm_alloc_security) (struct linux_binprm * bprm);
|
|
|
void (*bprm_free_security) (struct linux_binprm * bprm);
|
|
@@ -1469,10 +1470,14 @@ static inline int security_settime(struct timespec *ts, struct timezone *tz)
|
|
|
return security_ops->settime(ts, tz);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static inline int security_vm_enough_memory(long pages)
|
|
|
{
|
|
|
- return security_ops->vm_enough_memory(pages);
|
|
|
+ return security_ops->vm_enough_memory(current->mm, pages);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
|
|
|
+{
|
|
|
+ return security_ops->vm_enough_memory(mm, pages);
|
|
|
}
|
|
|
|
|
|
static inline int security_bprm_alloc (struct linux_binprm *bprm)
|
|
@@ -2219,7 +2224,12 @@ static inline int security_settime(struct timespec *ts, struct timezone *tz)
|
|
|
|
|
|
static inline int security_vm_enough_memory(long pages)
|
|
|
{
|
|
|
- return cap_vm_enough_memory(pages);
|
|
|
+ return cap_vm_enough_memory(current->mm, pages);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
|
|
|
+{
|
|
|
+ return cap_vm_enough_memory(mm, pages);
|
|
|
}
|
|
|
|
|
|
static inline int security_bprm_alloc (struct linux_binprm *bprm)
|