History

kernel/sys.c: fix UNAME26 for 4.0

There's a uname workaround for broken userspace which can't handle kernel versions of 3.x. Update it for 4.x.

Jon DeVree committed 11 years ago

Commit 39afb5e1 parent d2973691 file · +2 −1Browse files

Unified · Split

kernel/sys.c+2−1
@@ -1108,6 +1108,7 @@ DECLARE_RWSEM(uts_sem); · 1107 unmodified lines
1108/*1108/*
1109 * Work around broken programs that cannot handle "Linux 3.0".1109 * Work around broken programs that cannot handle "Linux 3.0".
1110 * Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.401110 * Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.40
1111 * And we map 4.x to 2.6.60+x, so 4.0 would be 2.6.60.
1111 */1112 */
1112static int override_release(char __user *release, size_t len)1113static int override_release(char __user *release, size_t len)
1113{1114{
@@ -1127,7 +1128,7 @@ static int override_release(char __user *release, size_t len) · 13 unmodified lines
1127 break;1128 break;
1128 rest++;1129 rest++;
1129 }1130 }
1130 v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;1131 v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 60;
1131 copy = clamp_t(size_t, len, 1, sizeof(buf));1132 copy = clamp_t(size_t, len, 1, sizeof(buf));
1132 copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);1133 copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
1133 ret = copy_to_user(release, buf, copy + 1);1134 ret = copy_to_user(release, buf, copy + 1);