| Kernel v2.6.5 /kernel/sysctl.c |
|---|
 2.6.5
 kernel
 sysctl.c
diff -Nru a/kernel/sysctl.c b/kernel/sysctl.c
--- a/kernel/sysctl.c Sat Apr 3 19:38:41 2004
+++ b/kernel/sysctl.c Sat Apr 3 19:38:41 2004
@@ -736,6 +736,14 @@
.strategy = &sysctl_intvec,
.extra1 = &zero,
},
+ {
+ .ctl_name = VM_MAX_MAP_COUNT,
+ .procname = "max_map_count",
+ .data = &sysctl_max_map_count,
+ .maxlen = sizeof(sysctl_max_map_count),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec
+ },
{ .ctl_name = 0 }
};
@@ -1004,7 +1012,8 @@
* zero, proceed with automatic r/w */
if (table->data && table->maxlen) {
if (oldval && oldlenp) {
- get_user(len, oldlenp);
+ if (get_user(len, oldlenp))
+ return -EFAULT;
if (len) {
if (len > table->maxlen)
len = table->maxlen;
@@ -1303,7 +1312,7 @@
len = 0;
p = buffer;
while (len < *lenp) {
- if(get_user(c, p++))
+ if (get_user(c, p++))
return -EFAULT;
if (c == 0 || c == '\n')
break;
@@ -1470,7 +1479,7 @@
p = (char *) buffer;
while (left) {
char c;
- if(get_user(c, p++))
+ if (get_user(c, p++))
return -EFAULT;
if (!isspace(c))
break;
@@ -1705,7 +1714,7 @@
p = (char *) buffer;
while (left) {
char c;
- if(get_user(c, p++))
+ if (get_user(c, p++))
return -EFAULT;
if (!isspace(c))
break;
@@ -1930,7 +1939,7 @@
return -ENOTDIR;
if (oldval && oldlenp) {
- if(get_user(len, oldlenp))
+ if (get_user(len, oldlenp))
return -EFAULT;
if (len) {
l = strlen(table->data);
@@ -1987,7 +1996,8 @@
for (i = 0; i < length; i++) {
int value;
- get_user(value, vec + i);
+ if (get_user(value, vec + i))
+ return -EFAULT;
if (min && value < min[i])
return -EINVAL;
if (max && value > max[i])
|