--- linux-2.4.27-rc3-pa6mm/kernel/sysctl.c.Orig 2004-06-29 09:03:42.000000000 +0200 +++ linux-2.4.27-rc3-pa6mm/kernel/sysctl.c 2004-07-29 11:41:30.021094824 +0200 @@ -883,14 +883,15 @@ for (; left && vleft--; i++, first=0) { if (write) { + p = buffer; while (left) { char c; - if (get_user(c, (char *) buffer)) + if (get_user(c, p)) return -EFAULT; if (!isspace(c)) break; left--; - ((char *) buffer)++; + p++; } if (!left) break; @@ -1036,14 +1037,15 @@ for (; left && vleft--; i++, min++, max++, first=0) { if (write) { + p = buffer; while (left) { char c; - if (get_user(c, (char *) buffer)) + if (get_user(c, p)) return -EFAULT; if (!isspace(c)) break; left--; - ((char *) buffer)++; + p++; } if (!left) break; @@ -1137,14 +1139,15 @@ for (; left && vleft--; i++, first=0) { if (write) { + p = (char *)buffer; while (left) { char c; - if (get_user(c, (char *) buffer)) + if (get_user(c, p)) return -EFAULT; if (!isspace(c)) break; left--; - ((char *) buffer)++; + p++; } if (!left) break;