Skip to content

Commit a84a79e

Browse files
committed
Avoid using variable-length arrays in kernel/sys.c
The size is always valid, but variable-length arrays generate worse code for no good reason (unless the function happens to be inlined and the compiler sees the length for the simple constant it is). Also, there seems to be some code generation problem on POWER, where Henrik Bakken reports that register r28 can get corrupted under some subtle circumstances (interrupt happening at the wrong time?). That all indicates some seriously broken compiler issues, but since variable length arrays are bad regardless, there's little point in trying to chase it down. "Just don't do that, then". Reported-by: Henrik Grindal Bakken <henribak@cisco.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: stable@kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 8bc03e8 commit a84a79e

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/sys.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ DECLARE_RWSEM(uts_sem);
11721172
static int override_release(char __user *release, int len)
11731173
{
11741174
int ret = 0;
1175-
char buf[len];
1175+
char buf[65];
11761176

11771177
if (current->personality & UNAME26) {
11781178
char *rest = UTS_RELEASE;

0 commit comments

Comments
 (0)