Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.5 /kernel/sysctl.c

Filename:/kernel/sysctl.c
Lines Added:16
Lines Deleted:6
Also changed in: (Previous) 2.6.5-rc3-bk4  2.6.5-rc3-bk3  2.6.5-rc3  2.6.5-rc2-bk9  2.6.5-rc2-bk8  2.6.5-rc2-bk7 
(Following) 2.6.5-bk1  2.6.5-bk2  2.6.6-rc1  2.6.6-rc1-bk1  2.6.6-rc1-bk2  2.6.6-rc1-bk3 

Location
[  2.6.5
  [  kernel
     o  sysctl.c

Patch

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])


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.